Initiator conditions
The initiator conditions specify:
- The identity of an operation requestor (initiator), such as a user or group; the workflow starts only if an operation is requested by that identity.
- A container, such as an organizational unit or Managed Unit; the workflow starts only if an operation requests changes to, or creation of, an object in that container.
To view or change the initiator conditions
- In the Change Workflow Options and Start Conditions dialog box, go to the Conditions tab, and observe the list in the Initiator Conditions area.
Each entry in the list represents a single initiator condition, with the first field identifying the operation requestor and the second field identifying the container. If the list is missing, no initiator conditions are defined.
- To define an initiator condition:
- Click Add in the Initiator Conditions area.
- Populate the list of operation requestors.
- Select the container.
- To delete an initiator condition, select the corresponding entry from the Initiator Conditions list, and click Remove.
If multiple initiator conditions are defined, the workflow starts if any one of them is fulfilled.
If multiple operation requestors are defined within a single initiator condition, the condition is considered fulfilled if the operation is requested by any one of those identities.
Filtering conditions
A filter can be used to define any additional conditions on objects involved in an operation. The workflow starts only if the operation satisfies those conditions. If no filter is set, then no additional conditions are in effect.
When you configure a filter, you need to add at least one condition, but you are not limited in the number of conditions that you can add. You can add, delete, and group conditions using various operators. It is possible to nest condition groups within other condition groups to achieve the results that you want.
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.
By default, a single condition group is created when you add a condition. You can create additional condition groups to group a set of conditions and nest grouped conditions within other condition groups.
In a condition group, conditions are connected using the AND, OR, NOT AND, or NOT OR logical operator:
- AND group evaluates to TRUE if all conditions in the group are TRUE.
- OR group evaluates to TRUE if any condition in the group is TRUE.
- NOT AND group evaluates to TRUE if any condition in the group evaluates to FALSE.
- NOT OR 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.
When you add a condition, the workflow designer first prompts you to specify what you want the condition to evaluate. The following options are available:
- Property of workflow target object. This option is intended to evaluate the value of a certain property of the target object of the request that started the workflow. You can select the desired property when you configure a condition.
- Property of workflow initiator. This option is intended to evaluate the value of a certain property of the user whose request started the workflow. You can select the desired property when you configure a condition.
- Changed value of workflow target object property. This option is intended to 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. You can select the desired property when you configure a condition.
- Workflow parameter value. This option is intended to evaluate the value of a certain parameter of the workflow. You can select the desired parameter from the workflow definition when you configure a condition.
- Property of object from workflow data context. This option is intended to evaluate the value of a certain property of the object that will be selected on the basis of the data found in the workflow environment at the time of evaluating the workflow start conditions. When you configure a condition, you can choose the desired property and specify which object you want the workflow engine to select upon evaluating the condition at workflow start time.
- Value generated by rule expression. This option is intended to evaluate the string value of a certain 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 evaluating the workflow start conditions. The workflow engine calculates the value of your rule expression upon evaluating the condition at workflow start time.
Once you have specified the entity or field that you want the condition to evaluate, you can choose a comparison operator and specify a comparison value. The comparison operator determines the operation of comparing the entity or field to evaluate with the comparison value you specified, and causes the condition to evaluate to TRUE or FALSE depending on the outcome of that operation.
You can choose from the following options to specify a comparison value:
- Text string. Performs comparison with a literal string of characters. You can type the desired string when you configure a condition.
- Property of workflow target object. Performs comparison with the value of a certain property of the target object of the request that started the workflow. You can select the desired property when you configure a condition.
- Property of workflow initiator. Performs comparison with the value of a certain property of the user whose request started the workflow. You can select the desired property when you configure a condition.
- Changed value of workflow target object property. Performs comparison with 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. You can select the desired property when you configure a condition.
- Workflow parameter value. Performs comparison with the value of a certain parameter of the workflow. You can select the desired parameter from the workflow definition when you configure a condition.
- Property of object from workflow data context. Performs comparison with the value of a certain property of the object that will be selected on the basis of the data found in the workflow environment at the time of evaluating the workflow start conditions. When you configure a condition, you can choose the desired property and specify which object you want the workflow engine to select upon evaluating the condition at workflow start time.
- Value generated by rule expression. Performs comparison with the string value of a certain 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 evaluating the workflow start conditions. The workflow engine calculates the value of your rule expression upon evaluating the condition at workflow start time.
Steps to configure filtering conditions
The Change Workflow Options and Start Conditions dialog box provides a condition builder for configuring a filter specific to workflow start conditions, located in the Filtering Conditions area on the Conditions tab. You can access the condition builder in the box under the Workflow starts only if these conditions are fulfilled heading.
When you configure a filter, you need to add at least one condition. Initially, you add a condition to the default condition group. 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 condition builder, 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 condition builder.
To add a condition group into another condition group
- 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:
- Click Property of workflow target object to evaluate a certain property of the workflow target object. Then, click to choose the target property.
- Click Property of workflow initiator to evaluate a certain property of the workflow initiator. Then, click to choose the target property.
- Click Changed value of workflow target object property to evaluate requested changes to a certain property of the workflow target object. Then, click to choose the target property.
- Click Workflow parameter value to evaluate the value of a certain parameter of the workflow. Then, click to choose the desired parameter.
- Click Property of object from workflow data context to evaluate a certain property of a certain object involved in the workflow. Then, click to choose the target object and the target property.
- Click Value generated by rule expression to evaluate the string value generated by a certain rule expression. Then, click to add entries to the rule expression.
- Click the current comparison operator, if needed, and then click the operator you want the condition to use.
By default, a condition is configured to use the equals operator.
- Click Define value to compare to, and then choose from the following options to specify the desired comparison value:
- Click Text string to performs comparison with a literal string of characters. Then, type the desired string.
- Click Property of workflow target object to perform comparison with the value of a certain property of the workflow target object. Then, click to choose the target property.
- Click Property of workflow initiator to perform comparison with the value of a certain property of the workflow initiator. Then, click to choose the target property.
- Click Changed value of workflow target object property to perform comparison with the value that is requested to be assigned to a certain property of the workflow target object. Then, click to choose the target property.
- Click Workflow parameter value to perform comparison with the value of a certain parameter of the workflow. Then, click to choose the desired parameter.
- Click Property of object from workflow data context to perform comparison with the value of a certain property of a certain object involved in the workflow. Then, click to choose the target object and the target property.
- Click Value generated by rule expression to perform comparison with the string value generated by a certain rule expression. Then, click to add entries to the rule expression.
Configuring script-based conditions
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 start the workflow. The function may 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 workflow starts if the function returns TRUE.
To apply a script-based condition
- In the condition builder, click the name 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 condition builder, 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 Change Workflow Options and Start Conditions dialog box.
- Save your changes to the workflow definition.
As a result of these steps, the workflow will start if the function specified in Step 4 returns TRUE upon evaluating the condition at workflow start time.
For more information and instructions, see “Developing Script Condition Functions” in the Active Roles SDK documentation.