By default, any CRUD activity is executed under the user account specified by the “run as” setting in the workflow options and start conditions. This could be the service account of the Active Roles Administration Service or the account of the user who caused the workflow to start. You can configure the activity to override the default “run as” setting by choosing to run the activity under the service account or the account of the user who caused the workflow to start. The account under which the activity is running determines the access rights of the activity in the directory.
One more option determines whether to apply approval rules to the operation requested by the activity if the activity is executed under a privileged account, such as the Active Roles service account, an Active Roles Admin account, or the account of the user who is designated as an approver. By default, the activity uses the option setting specified in the workflow options and start conditions. However, the workflow-wide option setting can be overridden on a per-activity basis.
When you configure a CRUD activity, you can enable or disable the Enforce approval option for that activity. When enabled, this option causes the approval rules to be applied, submitting the operation for approval regardless of the account under which the activity is executed. Otherwise, the operation requested by the activity bypasses approval rules if the activity is executed under the Active Roles service account, an Active Roles Admin account, or the account of the user who is designated as an approver, so the operation is not submitted for approval.
A CRUD activity has the following additional configuration options:
- Use this text instead of the original operation reason text. If the operation requested by the CRUD activity is subject to approval, you can specify the operation reason text to be shown to the approver instead of the reason text specified in the operation request that started the workflow. The Use only if the operation reason is not originally specified sub-option configures the activity to replace the reason text only if the operation request that started the workflow does not have any reason text specified.
- Allow the request created by this activity to start a new instance of the workflow containing this activity. This option is normally disabled to prevent recurrent execution of the CRUD activity in the situation where the operation requested by that activity within a given workflow matches the start conditions of that same workflow. Enabling this option could result in a loop of workflow instances executing the same activity again and again, and eventually would cause an overflow condition.
- Exclude or include request controls from the activity operation request. Request controls are certain pieces of data in an operation request that can be used to pass additional information to Active Roles on how to process the request. Request controls are optional. If no request controls are added to a request, then Active Roles determines how to process the request based solely on the type of the request. You can configure the activity to add certain controls to its operation requests (include request controls) or to ensure that certain controls never occur in the activity operation requests (exclude request controls). For information about Active Roles request controls, see the Active Roles SDK documentation.
Save Object Properties activity is intended to save properties of a particular object at workflow execution time. The properties are saved in the workflow data context, and can be retrieved by other activities before or after the object has changed. This capability is instrumental in situations that require knowing not only the changed object state or properties but also the previous or old values of certain properties. Old values may be required to determine the previous state of an object in order to make some decision or perform a certain action based on those values. For example, to notify of object deletions, you can create a workflow that starts when deletion of an object is requested, saves the object’s name, and then, after the object is deleted, sends a notification message that includes the saved name of the deleted object.
This activity has the following configuration options:
- Activity target. This option lets you specify the object whose properties you want the activity to save. You can choose to specify:
- Workflow target object. In a change workflow, the target object of the request that started the workflow. For example, in a workflow that starts upon a deletion request, this choice causes the activity to save the properties of the object whose deletion is requested.
- Fixed object in directory. A particular object you select from Active Directory.
- Object identified by workflow parameter. The object specified by the value of a certain parameter of the workflow. You can choose the desired parameter from the workflow definition.
- Object from workflow data context. The object will be selected by the activity on the basis of the data found in the workflow environment at the time of executing the workflow. You can specify which object you want the activity to select at workflow execution time.
- Object identified by DN-value rule expression. The object whose Distinguished Name (DN) is specified by 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 executing the workflow. You can create the desired rule expression when you configure the activity.
- Target properties. This option lets you specify the object properties you want the activity to save. The workflow designer proposes the default list of properties, and allows you to change the list as needed. By default, the activity saves all single-value non-constructed attributes found in the directory schema for the target object, including custom virtual attributes added to the directory schema by Active Roles.
- Notification. You can configure the activity to subscribe recipients to the notifications of the following events:
- Activity completed successfully. When configured to notify of this event, the activity causes Active Roles to send a notification e-mail if no significant errors occurred during execution of this activity.
- Activity encountered an error. When configured to notify of this event, the activity causes Active Roles to send a notification e-mail if any significant errors occurred during execution of this activity.
The notification settings specify the event to notify of, and notification recipients. When executed by the workflow, the activity prepares a notification message appropriate to the specified event. Active Roles retains the message prepared by the activity, and sends the message to the specified recipients upon occurrence of that event. The notification settings are similar to the notification settings of a Notification activity (see Notification activity earlier in this document).
- Error handling. You can choose whether to suppress errors encountered by the activity. The following option is available: Continue workflow even if this activity encounters an error. If this option is not selected (default setting), then an error condition encountered by the activity causes Active Roles to terminate the workflow. If you select this option, the workflow continues regardless of whether or not the encounters an error condition.
In a workflow that includes an activity of the Save Object Properties type, you can configure other activities to retrieve object properties saved by that activity:
- By using the following expression in a Script activity:
$workflow.SavedObjectProperties("activityName").get("attributeName")
In this expression, activityName stands for the name of the Save Object Properties activity and attributeName
is the LDAP display name of the attribute representing the property you want the script to retrieve. You should specify an attribute listed in the Target properties setting of the Save Object Properties activity; otherwise, this expression returns no property value at workflow execution time.