Configuring an If-Else activity
An If-Else activity is a composite activity. It is composed of several branches, each of which has individual conditions specified. An If-Else branch may contain any number of other activities. Every operation that satisfies the conditions specified on a given branch causes Active Roles to run the activities included in that branch. Only one branch of a single If-Else activity can be run even though an operation may satisfy the conditions on more than one branch.
Typically, an If-Else activity has two branches, with certain conditions specified on the first (leftmost) branch. The second branch has no conditions specified on it, so as to act as the Else branch. If an operation satisfies the conditions, the activities included in the first branch are run; otherwise, the operation flows through the activities found in the second branch.
Configuring an If-Else activity involves the following tasks:
To add a branch to an If-Else activity
- In the Active Roles console tree, expand Configuration | Policies | Workflow, and select the workflow containing the If-Else activity you want to configure.
This opens the Workflow Designer window in the details pane, representing the workflow definition as a process diagram.
- In the process diagram, right-click the name of the If-Else activity and click Add Branch.
This adds a branch with the default name of If-Else Branch. Right-click the name of the branch and click Properties to change the name as necessary. You can delete a branch by clicking the name of the branch and then clicking Delete.
To add an activity to an If-Else branch
- Drag the activity from the left panel onto the branch.
If you add an activity to the upper part of the diagram (above the Operation execution line), the activity will be run in the pre-execution phase of operation processing (see Workflow processing overview earlier in this chapter).
If you add an activity to the lower part of the diagram (beneath the Operation execution line), the activity will be run in the post-execution phase of operation processing. Certain activities, such as an Approval activity, which are intended to run in the pre-execution phase, cannot be added to the lower part of the diagram.
You can delete an activity from a branch by clicking the name of the activity and then clicking Delete.
The following topic provides instructions on how to configure conditions for an If-Else branch: Configuring conditions for an If-Else branch.
Steps to configure error handling
When configuring an If-Else activity, you can configure error handling to suppress errors encountered by that If-Else activity and all activities included in that If-Else activity.
To configure error handling for an If-Else activity
- In the process diagram, right-click the name of the If-Else activity and click Properties.
- Go to the Error handling tab in the If-Else Activity Properties dialog box, and select or clear the Continue workflow even if this activity encounters an error check box on that tab.
If the Continue workflow even if this activity encounters an error check box is not selected (default setting), then an error condition encountered by the activity causes Active Roles to terminate the workflow. If you select this check box, the workflow continues regardless of whether or not the If-Else activity or any activity within the If-Else activity encounters an error condition.
Configuring conditions for an If-Else branch
An If-Else activity is intended to select exactly one branch of the activity from a given set of branches. For each branch, the activity checks the branch conditions and executes the first of the branches whose condition evaluates to TRUE.
The workflow designer provides a condition builder for configuring branch conditions, located in the If-Else Branch Activity Properties dialog box.
To access the condition builder for an If-Else branch
- Right-click the name of the branch and click Properties.
- Go to the Conditions box in the If-Else Branch Activity Properties dialog box that opens.
When you configure an If-Else branch, you need to add at least one condition. By default, a single, implied condition group is created when you add a branch condition. You can create additional condition groups to group a set of conditions and nest grouped conditions within other condition groups.
A condition group contains one or more conditions connected by the same logical operator. By grouping conditions, you specify that those conditions should be evaluated as a single unit. The effect is the same as if you put parentheses around an expression in a mathematical equation or logic statement.
To add a condition to a condition group
- In the Conditions box, click the name of the condition group and then click Insert condition.
Click the plus sign (+) next to the name of the condition group.
You can remove a condition, if needed, by clicking the Delete condition button labeled X on the right side of the list item representing the condition in the Conditions box.
To add a condition group into another condition group
- In the Conditions box, click the name of the condition group, point to Insert condition group, and then click an option to specify the logical operator:
- AND group. The condition group evaluates to TRUE if all conditions in the group are TRUE.
- OR group. The condition group evaluates to TRUE if any condition in the group is TRUE.
- NOT AND group. The condition group evaluates to TRUE if any condition in the group evaluates to FALSE.
- NOT OR group. The condition group evaluates to TRUE if all conditions in the group evaluate to FALSE.
By default, AND is the logical operator between the conditions in a condition group. It is possible to change the logical operator by converting the condition group to a different group type: Click the name of the group, point to Convert condition group to, and then click the option appropriate to the desired logical operator.
You can remove an entire condition group, if needed, by clicking the name of the group and then clicking Delete condition group.
Once you have added a condition to a condition group, you can use the following steps to configure the condition.
To configure a condition
- Click Configure condition to evaluate, and then choose from the following options to specify the entity or field you want the condition to evaluate:
- Property of workflow target object. Evaluate the value of a certain property of the target object of the request that started the workflow. The condition builder prompts you to choose the desired property. This option is unavailable in case of automation workflow.
- Property of workflow initiator. Evaluate the value of a certain property of the user whose request started the workflow. The condition builder prompts you to choose the desired property.
- Changed value of workflow target object property. Evaluate the value that is requested to be assigned to a certain property of the workflow target object, which represents the requested change to the property of the target object of the request that started the workflow. The condition builder prompts you to choose the desired property. This option is unavailable in case of automation workflow.
- Activity execution status. Evaluate whether or not Active Roles encountered an error when executing a certain activity. The condition builder prompts you to select the desired activity. Note that this option requires the activity configuration to allow the workflow to continue even if the activity encounters an error.
- Approver action choice. Evaluate the name of the action button applied by the approver to complete the approval task created by a certain Approval activity. Use this option to determine which action button the approver applied to allow the operation that was subject to approval. The condition builder prompts you to select the desired Approval activity. This option is unavailable in case of automation workflow.
- Workflow parameter value. Evaluate the value of a certain parameter of the workflow. The condition builder prompts you to select the desired parameter from the workflow definition.
- Property of object from workflow data context. Evaluate the value of a certain property of the object that will be selected by the If-Else activity on the basis of the data found in the workflow environment at the time of executing the workflow. The condition builder prompts you to choose the desired property and specify which object you want the activity to select upon evaluating the condition at workflow run time.
- Value generated by rule expression. Evaluate the string value of a certain rule expression. The condition builder prompts you to configure a rule expression. By using a rule expression you can compose a string value based on properties of various objects found in the workflow environment at the time of executing the workflow. Active Roles calculates the value of your rule expression upon evaluating the condition at workflow run time.
- Click the current comparison operator, if needed, and then click the operator you want the condition to use.
- Click Define value to compare to, and then choose an option to specify the desired comparison value.
The list of options that are available to specify a comparison value depends upon the entity or field you have configured the condition to evaluate. The following table summarizes the comparison value options.
Table 59: Comparision value options
Property of workflow target object
- OR -
Property of workflow initiator
- OR -
Changed value of workflow target object property
- OR -
Workflow parameter value
- OR -
Property of object from workflow data context
- OR -
Value generated by rule expression |
- Text string
- Property of workflow target object
- Property of workflow initiator
- Changed value of workflow target object property
- Workflow parameter value
- Property of object from workflow data context
- Value generated by rule expression
|
Activity execution status |
- Not executed
- Completed successfully
- Encountered an error
|
Approver action choice |
- The name of an action button
- Value generated by script
|
For a brief description of comparison operators and comparison value options, see Search filter.
Configuring a script-based condition
To configure a script-based condition, you need to create and apply a script module containing a function that analyzes the requested operation to determine whether to run the branch. The function could use the Active Roles ADSI Provider to access properties of objects involved in the operation, analyze the properties, and return TRUE or FALSE depending on the result of the analysis. The branch runs if the function returns TRUE.
To apply a script-based condition
- Right-click the name of the branch and click Properties.
- In the If-Else Branch Activity Properties dialog box, under Conditions, do the following:
- Click the title of the condition group and then click Insert condition.
- Click Configure condition to evaluate and then click Value generated by rule expression.
- In the Configure Rule Expression dialog box, click Add entry and then click Value generated by script.
- Use the Configure Entry dialog box to select the appropriate script module and script function.
- Click OK to close the Configure Entry dialog box.
- Click OK to close the Configure Rule Expression dialog box.
- In the If-Else Branch Activity Properties dialog box, under Conditions, do the following:
- Verify that comparison operator equals is selected.
- click Define value to compare to, and then click Text string.
- In the Configure Entry dialog box, under Text string, type TRUE.
- Click OK to close the Configure Entry dialog box.
- Click OK to close the If-Else Branch Activity Properties dialog box.
- Save your changes to the workflow definition.
As a result of these steps, the If-Else branch you have configured will be selected if the function specified in Step 4 returns TRUE at workflow run time. For more information and instructions, see “Developing Script Condition Functions” in the Active Roles SDK documentation.