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, click Add entry and then click Value generated by script.
-
Use the Configure Entry dialog to select the appropriate script module and script function.
-
Click OK to close the Configure Entry dialog.
-
Click OK to close the Configure Rule Expression dialog.
-
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, under Text string, type TRUE.
-
Click OK to close the Configure Entry dialog.
-
Click OK to close the Change Workflow Options and Start Conditions dialog.
-
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.
"Run as" options
The “Run as” options determine the user account that the workflow runs under. Click the “Run as” options link on the Workflow Options and Start Conditions page to view or change the account setting. You can choose from the following options:
-
The service account of Active Roles: The workflow runs under the service account of the Administration Service that runs the workflow.
-
The account of the user who started the workflow: The workflow runs under the Windows account of the user who requested the operation that started the workflow.
All activities within the workflow normally run under the account identified by the “run as” options for the workflow. However, each activity can be configured to use individual “run as” options. The property page for the activity contains the “Run as” options link allowing you to override the workflow “run as” setting on a per-activity basis.
When running under the account of the Administration Service, the workflow activities have the same rights and permissions as the Administration Service itself and thus can perform any tasks allowed for the Administration Service.
When running under the account of the user who started the workflow, the activities can perform only the tasks that Active Roles allows for that user account. The Administration Service processes the activity operation requests as if they were submitted by that user via Active Roles, so the activities have the rights and permissions the user account is given in Active Roles.
Enforce approval
The Enforce approval option determines whether to apply approval rules to the changes requested by the workflow running under a privileged account. When selected, this option causes the approval-pending changes requested by the workflow activities to be submitted for approval regardless of the account under which the workflow is running. Otherwise, the changes are applied without waiting for approval if the workflow is running under the service account of Active Roles, under the account of the approver, or under the account of an Active Roles administrator. This option setting can be overridden on a per-activity basis.
Configuring workflow parameters
Workflow parameters are intended for the purpose of passing their value to workflow activities at run time. You can specify parameter values when you configure a workflow. In this case, Active Roles stores the parameter values as part of the workflow definition, and retrieves them as needed when running the workflow. Another option is to use a script for generating the value of a workflow parameter at run time.
You can use parameters to increase the reusability of a workflow; for example, if a value is specified in the configuration of a workflow activity, then you need to reconfigure that activity if you want to change the value. With workflow parameters, you can reuse the existing configuration of the activity by passing the appropriate value through a parameter. Here are some examples of workflow parameter usage:
-
Workflow start conditions: When configuring workflow start conditions, you can create a filter that causes the workflow to start if the properties of the operation request match the value of a certain parameter.
-
If-Else branch conditions: When configuring conditions for an If-Else Branch, you can set up a condition that causes the workflow to choose that branch if a certain parameter has a particular value.
-
Search container: When configuring a Search activity, you can choose the option that causes the activity to search in the Organizational Unit or container identified by the value of a certain parameter.
-
Search filter: When configuring a Search activity, you can set up a search filter condition that causes the activity to search for objects whose properties match the value of a certain parameter.
-
Creation container: You can configure a Create activity with the option to create objects in the Organizational Unit or container identified by the value of a certain parameter.
-
Setting object properties: You can configure a Create activity or Update activity with the option to set or change the properties of the object based on the value of a certain parameter.
-
Selecting target object: You can configure an activity to make changes to the object identified by the value of a certain parameter. This applies to activities intended to make changes to objects in Active Directory, such as Update activity, Add to group activity, Move activity, and so on.
-
Destination container: You can configure a Move activity to move the object to the Organizational Unit or container identified by the value of a certain parameter.
Each parameter has a number of properties that define the parameter, including:
-
Name: Each parameter must have a unique name in the workflow definition.
-
Description: You can use this property to describe the purpose of the parameter.
-
Display name: This property specifies the user-friendly name of the parameter.
-
Syntax: This property determines the data type of the parameter value.
-
String: This syntax indicates that the parameter value is a string of characters. You can type the string when you set the value of the parameter.
-
DateTime: This syntax indicates that the parameter stores a date and time value. You can use the date and time picker to supply the parameter value.
-
DN: This syntax indicates that the parameter value is the Distinguished Name of a certain object. You can use the object picker to supply the parameter value.
-
ObjectGUID: This syntax indicates that the parameter value is the Globally Unique Identifier (GUID) of a certain object. You can use the object picker to supply the parameter value.
-
SID: This syntax indicates that the parameter value is the Security Identifier (SID) of a certain object. You can use the object picker to supply the parameter value.
-
SecureString: This syntax indicates that the workflow definition stores the parameter value in encrypted form using an encryption key provided by the Active Roles service. You can use this syntax to handle sensitive data such as passwords.
-
AttributeName: This syntax indicates that the parameter value is the name of a certain attribute from the directory schema. You can use the attribute picker to supply the parameter value.
-
Number of values: By default, a parameter can store a single value. You can configure a parameter to store a collection of multiple values.
-
Value is required: By default, a parameter may have no value. You can configure a parameter so that the workflow designer does not allow the workflow definition to be saved if no value is assigned to that parameter.
-
List of acceptable values: This property specifies a list of values that are allowed to be assigned to the attribute. If a given parameter has this property, then the Workflow Designer requires a value for that parameter to be selected from the list when you supply the parameter value. When you configure a parameter, you can specify a list explicitly, or you can configure the parameter to use a script that will generate a list of acceptable values or a single value for that parameter at workflow run time.
To add a parameter to a workflow definition
-
In the Active Roles Console tree, expand Configuration > Policies > Workflow, and select the workflow you want to configure.
This opens the Workflow Designer in the Details pane, representing the workflow definition as a process diagram.
-
In the Details pane, click Workflow options and start conditions to expand the area above the process diagram, and then click Configure.
-
Click the Parameters tab in the dialog that opens.
-
On the Parameters page, click Add to open the Parameter Definition dialog.
-
In the Parameter Definition dialog, complete the following fields:
-
Name: In this box, type the name you want to assign to the parameter. The name must be unique in the workflow definition.
-
(Optional) Description: Use this box to type a description of the parameter.
-
Display name: In this box, type the user-friendly name you want to assign to the parameter.
-
Syntax: From this list, select the syntax you want to the parameter to have. See a list of syntax options earlier in this topic.
If you select the AttributeName syntax option, you are prompted to configure the attribute picker for this parameter. Select the object class whose attributes you want the attribute picker to list by default, and specify whether you want the attribute picker to allow selecting a different object class. You can also specify whether you want the attribute picker to allow selecting a single attribute or multiple attributes.
-
If you want the parameter to store a collection of multiple values, select the This parameter is multivalued check box.
-
If you want the Workflow Designer to require that a value be assigned to the parameter, select the This parameter must have a value check box.
-
If you want to specify a list of acceptable values for the parameter, do one of the following:
-
Configure an explicit list of values by using the Add, Change, and Remove buttons below the Acceptable values box.
-
Click Use script to determine parameter values below the Acceptable values box if you want a list of acceptable values to be generated by a script at workflow run time. Then, click the button next to the Script name box to select the script module containing the desired script. The Script Module must be created beforehand. After you have selected a Script Module, in the Function to define a list of acceptable values list, click the name of the script function. You can choose from the script functions that exist in the Script Module. The function must be designed to return a collection of values that match the syntax of the parameter.
-
If you want to use a script to assign a value to the parameter at workflow run time, click Use script to determine parameter values below the Acceptable values box. Then, click the button next to the Script name box to select the script module containing the desired script. The Script Module must be created beforehand. After you have selected a Script Module, in the Function to assign a value to this parameter list, click the name of the script function. You can choose from the script functions that exist in the Script Module. The function must be designed to return a value that matches the syntax of the parameter.
Parameters are used to specify certain data when configuring or starting the workflow and then pass that data to workflow activities when the workflow is running. The data is represented as parameter values. To assign a value to a given parameter, select the parameter from the list on the Parameters tab, and then click View or change parameter value.