About workflow processes
The logic of an automated management process can be implemented by using administrative policies in Active Roles. Yet creating and maintaining complex, multi-step processes in that way can be challenging. Workflows provide a different approach, allowing IT administrators to define a management process graphically. This can be faster than building the process by applying individual policies, and it also makes the process easier to understand, explain, and change.
The figure below shows a workflow process created in the Active Roles Console. In this simple example, upon a request to add a user to a certain group, the workflow first checks to see if the group has an owner. If the group has no owner, the requested changes are denied and the workflow is complete; otherwise, the changes are submitted to the group owner for approval.
When approval is received, Active Roles applies the changes, adding the user to the group. On the process diagram, this step is referred to as Operation execution. If the owner rejects the changes, the workflow finishes on the previous (approval) step so that the changes are not applied. After the changes are made, the workflow sends an email notification to the person who requested the changes, and then finishes.
Figure 100: Workflow process in Active Roles
In the above example, the workflow manages the process of adding a user to a group according to the rules defined at design time. The rules constitute the workflow definition, and include the activities that occur within the process and the relationships between activities. An activity in a process definition can be a pre-defined function available out of the box, such as a request for approval or a notification of conditions that require user interaction, or it can be a custom function created using script technologies.
A workflow process starts when the requested changes meet the conditions specified in the workflow definition. In the above example, the conditions may be set up so that the workflow starts whenever an Active Roles user makes changes to the membership list of a certain group. Once the conditions are fulfilled, the workflow process starts to drive the changes through the workflow definition, performing automated steps and, if necessary, requesting human interaction such as approval.
Workflow processing overview
In Active Roles, directory objects such as users, groups, or computers are managed by the Administration Service. These objects can be created, changed, or deleted through requests made to the Administration Service. Every request initiates an operation to make the requested changes to directory data. For example, a request to create a user or group initiates the Create operation with the target object type set to User or Group, respectively; a request to add users to a group initiates the Modify operation on that group.
Once an operation has been initiated, the Administration Service starts processing the operation. Each operation is represented by a single object, usually referred to as the Request object, which contains all information necessary to perform the operation. Therefore, operation processing takes the form of passing the Request object through a number of phases within the Administration Service.
The operation processing model in Active Roles is composed of four main phases: access check, pre-run, run, and post-run. The Request object passes through these phases in the following order:
-
Access check: In this phase, the Administration Service checks to see whether the user or system that issued the request has sufficient rights to make the requested changes. If there are insufficient rights, the operation is denied.
-
Pre-execution: During this phase, the Administration Service first runs the pre-run workflow activities. These are the activities located in the upper part of the workflow process diagram, above the Operation execution line. A typical example includes Approval activities: It is at this point that approvers can permit or reject the operation.
Then, after the pre-run activities are completed so that the operation is not rejected, the Administration Service runs the pre-run policies. Typical examples of such policies include property generation and validation rules and the functions implementing so-called pre-event handlers in script policies.
-
Execution: In this phase, the Administration Service performs the operation, making the requested changes to directory data. For example, when the creation of a user is requested, the user is actually created during this phase.
-
Post-execution: During this phase, the Administration Service first runs the post-run policies. For example, upon creation of a user, the provisioning of a home folder or group memberships for that user occurs at this point. The functions that implement post-event handlers in script policies are also run in this step.
Finally, after the post-run polices finish running, the Administration Service runs the post-run workflow activities. These are the activities located in the lower part of the workflow process diagram, beneath the Operation execution line. A typical example is Notification activities that send out emails informing of the operation completion.
The Administration Service runs the workflow activities one by one, in sequential order as shown on the workflow process diagram, until the last activity finishes. If-Else activities can be used to achieve conditional branching in workflows, which makes it possible to switch the sequence of activities depending on the data involved in the request.
At the beginning of the pre-run phase, the Administration Service determines the workflows to start. The request is compared to all the existing workflow definitions. In order for a workflow to start, the requested operation needs to satisfy the start conditions defined for that workflow. If the start conditions are satisfied, the workflow is matched to the request.
For a workflow that is matched to the request, the Administration Service runs the activities found in that workflow during the corresponding phases of the operation processing. One workflow or multiple workflows can be matched to a single request. In case of multiple workflows, the Administration Service starts each of them one by one, and first runs all the pre-run activities included in those workflows. Then, during the post-run phase, the Administration Service runs all the post-run activities included in those workflows.
If multiple workflows are matched to a single request, then Active Roles uses the edsaWorkflowPriority attribute of the workflow definition object to determine the order in which to run the workflows. The activities of the workflow with a lower value of that attribute are initiated prior to the activities of the workflow with a higher value of that attribute. The workflows with the same priority value are initiated in ascending order of workflow names. The edsaWorkflowPriority attribute is set to 500 by default. If the edsaWorkflowPriority attribute is not set, Active Roles assumes that the workflow has the priority value of 500.
You can change the value of the edsaWorkflowPriority attribute to ensure that a given workflow takes precedence over other workflows. A lower value of that attribute indicates a higher priority whereas a higher value indicates a lower priority. To view or change the edsaWorkflowPriority attribute, use the Advanced Properties command on the workflow definition object in the Active Roles Console.
About workflow start conditions
To deploy a workflow in Active Roles, you create a workflow definition, configure the start conditions for that workflow, then add and configure workflow activities. When configuring workflow start conditions, you specify:
-
A type of operation, such as Create, Rename, Modify or Delete; the workflow is matched to the request only if an operation of that type is requested.
-
A type of object, such as User, Group or Computer; the workflow is matched to the request only if the operation requests changes to an object of that type.
-
For the Modify operation type, a list of object properties; the workflow is matched to the request only if the operation requests changes to any of those properties of an object.
-
The identity of an operation requestor (initiator), such as a user, group, or service; the workflow is matched to the request only if the operation is requested on behalf of that identity.
-
A container, such as an Organizational Unit or Managed Unit; the workflow is matched to the request only if the operation requests changes to, or creation of, an object in that container.
-
(Optional) A filter that defines any additional conditions on entities involved in an operation; the workflow is matched to the request only if the operation satisfies those conditions. If no filter is set, then no additional conditions are in effect.
Upon a request for any operation that meets all the start conditions specified on a workflow, the Administration Service matches the workflow to the request and runs the activities found in the workflow.
Workflow activities overview
Activities are units of work, each of which contributes to the accomplishment of a workflow process. Active Roles offers a default set of activities that provide pre-defined functionality for approval, notification, control flow, and conditions. Scripting can be used to have an activity perform custom functions.
Activities are the primary building blocks for workflows. A workflow is a set of activities organized in a process diagram. When you construct a workflow using the Workflow Designer, you drag activities from the activities panel onto the process diagram and then configure them there. The configurable settings common to every activity are:
-
Name: The name is used to identify the activity on the workflow diagram.
-
Description: This optional text can be helpful to distinguish the activity. The description is displayed when you point with the mouse to the activity on the process diagram.