Script activities are typically used to perform automated steps in a workflow process. A Script activity is defined by a Script module created in Active Roles. Each Script module contains script code implementing certain functions. New Script modules can freely be added and the Script contained in a Script module can be developed and revised as necessary. This provides a mechanism for creating custom functions, enabling the extensibility of actions performed by a workflow.
Script activity has the following basic configuration settings:
- Script to use. Identifies the Script module to be used by the activity. Normally, the script held in the Script Module implements at least two functions: the function that will be run by the activity and the function that defines the activity parameters.
- Function to run. Identifies the script function that will be run by the activity.
- Function to declare parameters. Identifies the Script function that defines the activity parameters. For each parameter, this function defines the name of the parameter and other characteristics, such as a description, a list of possible values, the default value, and whether a value is required. Normally, the parameters are declared by a function named onInit.
- Parameter values. When Active Roles executes a Script activity, it passes the parameter values to the script function being run by that activity. The actions performed by the activity, and the results of those actions, depend upon the parameter values.
More information and instructions that apply to designing, implementing and using scripts, script modules, and script activities can be found in the Active Roles SDK documentation.
You can configure a Script 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).
When configuring a Script activity, you can choose whether to suppress errors encountered by that 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 activity encounters an error condition.
An If-Else activity is used to conditionally run one of two or more alternative branches depending on the conditions defined on the branches. It contains an ordered set of branches and runs the first branch whose condition evaluates to TRUE. You can add as many branches as you want to an If-Else activity, and you can add as many activities as you want to every branch.
Each branch of an If-Else activity may have an individual condition set on it. When an If-Else activity starts, if evaluates the condition on its first (leftmost) branch. If the condition if fulfilled, the activities that are contained in the branch are executed; otherwise, the condition on the next branch (from left to right) is evaluated, and so on.
When configuring If-Else branch conditions, consider that:
- Only the first branch whose condition evaluates to TRUE is executed.
- An If-Else activity can finish without having run any of its branches, if the condition on each of the branches evaluates to FALSE.
The situation where no condition is defined on a branch is treated as if the branch had a constant TRUE condition. Therefore, the final (rightmost) branch should normally have no condition, which means it always evaluates to TRUE. In this way, the final branch acts as the Else branch that runs if the conditions on the other branches are not fulfilled. It is advisable to define a condition on each branch in an If-Else activity except the last branch, to ensure that the activity always executes a certain branch.