A Decision Activity is a type of Interactive Activity that presents the end users with a list of business values (taken from the Process Instance) and prompts them to make a decision (i.e. what to do next) while suggesting the right answer based on past experience.
The Decision Activity is ideal in situations where a user needs to make a decision to route a process instance to one of multiple possible out-going transitions. By implementing the Decision Activity within a process model, you can assist your users in making a decision based on specific process variables.
For example, a Car insurance policy could be classified as low, medium or high risk depending on input variables like insured age, geographic area. This classification could be done with a Decision Activity, and over time the system will learn and suggest the most probable answer for each new policy.
The Process Execution Engine records end-user decisions and does statistical analysis in order to come up with suggestions for future decisions. This algorithm is based on Support Vector Machines (SVMs) methods.
Recorded decisions are evaluated and presented to end-users as a set of probability percentages. This allows users to make decisions based on the actions of previous users.
Decision Activities use standard component Fuego.Bis.DecisionProblem behind the scenes in order to record end-user decisions and present the suggested probabilities. For advanced use cases this component may be used directly from PBL, which allows you to feed the statistical algorithm and leverage the Process Engine analysis from any type of activity or BPM Object.
| WorkSpace | The Decision activity is visible in WorkSpace, but only to the participant(s) assigned to the role where the Decision activity exists. |
| Roles | Decision activities must reside in user-defined
roles. Note: If you add a new Decision activity and drop it in an automatic
role, the BPM system will allow you to select an existing user-defined role
or generate a new one (the Role dialog box populates.) The column-role is
added to the design and the new Decision activity will automatically appear
in the selected role.
|
| Variables | Decision activities can access instance, and predefined variables. |
| Pre-conditions |
An Incoming instance from another activity in the process with the necessary instance variables set. Decision activities can also be used as an exception handler. |
| Post-conditions | Instance moves to the next activity in the process via one of the outgoing transition lines. |
| Transitions | One or more incoming and outgoing transitions are required. |
| Tasks |
The default behavior for Decision Activities consists in having one single Implementation or task. This greatly simplifies the understanding of Decision Activities. Furthermore, this simplifies the operation of WorkSpace, since executing an instance is ALWAYS executing its implementation. However, you can have Optional (or support) tasks that the participant may need to execute in some cases in order to help him do the required work (that is, executing the main task.) But if you look at optional tasks in this way, they make sense ONLY if you allow the user to execute them while executing the main task. To do so, these optional tasks must be read-only, meaning that they must not modify the instance data in order to avoid inconsistencies. The tasks have to be defined by the developer. The Decision activity has then a main task. Moreover, optional tasks can be added. |
| Business Process Methods |
Decision activities can have one or more BP-Methods defined as tasks. Applications invoked from Decision activities are sent incoming parameters (set by BP-Method variables) and return outgoing parameters (which set BP-Method variables). Note: Human participants are unpredictable. If an end user begins a task in WorkSpace but does not complete it, a thread for that task remains open in the Engine. Too many open threads can cause poor server performance.To ensure that end users do not lock threads, use relay to in your BP-Method to immediately close threads and relay end user's response to another BP-Method task when the end user completes a task. See Controlling threads with relay to for further information. |