Summary There are two ways that flow can be executed from an external application: (1) via call to a generated service (specific to this flow), or (2) via call to a generic Flow Execution Service. Example CALLING...
[crayon-64739ed9844d1270806785/] Multiple Approaches: 1. Rest / POST / GET // Run rule as GET Stopwatch ruleGET = newStopwatch(); for (int i = 0; i < iterations; i++) ...
Summary A rule can be made into a REST web service that supports either HTTP GET or POST methods. REST calls to a rule require either (1) valid user session ID, or (2) valid user authentication ID. The...
Summary A flow can be made into a REST web service that supports either HTTP GET or POST methods. REST calls to a flow require either (1) valid user session ID, or (2) valid user authentication ID. The...
Summary Calls into Decisions may require being authentication by a sessionId . An example of such a call is calling a flow via REST service. This example shows how to get a session Id using a set of...
Summary If your application requires its own set of settings, you can create new settings via code. After creating these settings, the values of these settings can be fetched and set via code (see Accessing...
Custom Folder Entities are special objects that can 'reside' in a Decisions folder. If you are just looking to easily store data in a table a simple ORM object (described i) may be all you need. However,...
Typesafe vs. non typesafe ORM accessors There are 2 classes that represent access to the ORM storage - ORM<T> - DynamicORM The difference between these classes is the generic one adds...
Adding index to field Like marking up fields to be stored by the ORM, indexes can also be declared on fields. An index name and a flag to say if index is unique can be added to this. Below is an example...
Using overrides to the [crayon-64739eda54246930442332-i/] attribute, you can set what database type is used to store a field. For more on writing ORM types see ORM Basics Here is an example showing...
ORM BASE CLASSES There are three ORM base classes that you can inherit from to create an ORM object. They are as follows. [crayon-64739eda544e6612995477-i/] - adds logical delete functionality to...
What is a settings object A settings object is a collection of values that a portal user can edit and which can be used by code. Many times these settings are used to store things like connection information...
The system settings are stored in the settings.xml file which is found at [crayon-64739ed98522f430390333-i/] in a default Decisions installation. Any of the values of this file can be accessed and...
Summary New folder behaviors can be created to modify the default folder behavior. Many aspects of a folder's behavior can be modified. All the overridable methods for a folder's default behavior are...
There are 2 mechanisms for adding 'add actions' to a folder. 1. Adding this interface to a 'service' that is created. if you want users to be able to create these entities in any folder, create actions.... [crayon-64739eda5724a685670944/] 2....
The primary difference between a Custom Datasource and a SQL Datasource is that a Custom Datasource is responsible for producing the data needed for reporting engine while a SQL Datasource produces a...
Custom reporting data filters involve deciding which rows to include... example: Common types filter. Custom reporting filters are used in conjunction with custom data sources. Usually a custom...
Custom data sources can also be created via interfaces/subclassing - specifying resulting cols - specifying when they apply - generating data To write your own custom data source, create a class...
Summary Report data sources can be easily created for use in Decisions by tagging public classes with an attribute. Example Create a new Class Library project is Visual Studio. Add a reference...
In addition to marking up the object with attributes, there are a few interfaces that allow for customization of the storage and hooking events around the storage. 1. specifying custom serialization ...
Serialization of elements (like flow steps, page elements) is handled by a mechanism called 'Writable'. This mechanism has 2 ways of being accessed: - attributes marking up an object - IWritable...
Summary The way that step properties show up in the designer can be modified using the [crayon-64739eda5d24e826134226-i/] attribute. This document shows how to use this attribute. The following...
- editors can be created Summary Normally step properties show up in the designer as text box inputs. This default UI can be changed by decorating properties with property editor attributes. Example For...
Summary Using the techniques described below, you can cause validation messages to appear on the properties and inputs of your steps at design time. These validations can evaluate only the value of a...
Summary One of the primary reasons to create custom step is to be able to setup the initial state of an element right. This often means setting up the right types of mappings. This document shows how...
When writing an advanced step, your class must inherit from [crayon-64739eda5e02d218715805-i/] if you want your step to have input data that you can map in at run time. The below line of code illustrates...
Although it is easier to write simple rules (see Rule steps (simple)) for instructions on registering simple public bool methods as rules), you may want to take the time to write an advanced rule which...
Summary While creating simple steps using the Public Static method is easier, you may want to write a full Decisions step if you need to do complex things like have multiple outcome paths or validate...
Summary You can easily create new datatypes to be used in Decisions by creating classes in a class file project. This article will show you how to accomplish this. Example Create a new Class...
Summary When creating simple decisions steps by registering public methods, you may also set default values for the inputs of those methods. This allows Designers to still change these input values, but...
Summary You can easily create new rules to be used in Decisions by creating public methods in a class file project. This article will show you how to accomplish this. Example Create a new Class...
Summary You can easily create new steps to be used in Decisions by creating public static methods in a class file project. This article will show you how to accomplish this. Example Create a new Class...
After writing your own code for Decisions, you'll often want to debug this code. To do so follow the steps outlined below Build and deploy your code on the same machine. Run Visual Studio as Administrator In...
Summary The Decisions server logs are stored in a csv file on the server at [crayon-64739ed985669444515177-i/]. Utilizing these logs can be extremely important to debugging code that you've written....
There are 2 ways that additional functionality can be added to the platform through the SDK. Deploy a dll into the ‘Local’ module Create and deploy a module DEPLOY A DLL INTO THE 'LOCAL'...
This is a blank project with references setup correctly. Also, the following build file and bat files have been included: build.proj - This file is called by the bat files. It is configured to...
Most of the examples and sdk functionality described in this document involve providing a DLL (library) that has additional functionality in it. This DLL can be built in any tool or language that can...
Intro How to setup Decisions to work with a messaging system. Decisions Messaging is a pluggable system that can be extended via our SDK. It is available in the Decisions Platform 3.2.x. The built...
Decisions Services have Integration Details Page that contain an assisting information about how to implement a desirable operation. To view this page we navigate to System > Administration > Modules...
SummaryA module is a zip file that contains files and folders Service Host Manager interprets and places in the correct places. This zip file can either be created manually or using the [crayon-64739eda64b9e528988054-i/] tool...
Decisions includes a number of built-in text merge fields like "Capitalize," "Lower," and "Insert Current Date." These merge fields can be used to dynamically manipulate strings or insert data from other...
Similar to Flow Behavior and Folder Behavior, Text Merges can be given a behavior which can be used to create Text Merges with predefined inputs, limit whether or not inputs are visible to the user,...
Summary Decisions flows can be assigned something called a Flow Behavior. This Flow Behavior acts like an interface definition for a flow. It can enforce expected inputs and outputs as well as create...
Get String Get String (Long) Get String (Rich) Title/Description Title/Description/File Get Boolean Get DateTime Get File Navigate Navigate to URL Edit Object Simple Confirm
The following is a list of the most commonly used property attributes: (in namespace DecisionsFramework.Design.Properties.) LongTextPropertyEditorAttribute SelectStringEditorAttribute NumericEditorAttribute ...