Workflow actions and execution options
You define workflow by specifying the actions that active links, filters, and escalations should perform under specified circumstances. The circumstances are called execution options.
The basic questions about workflows are What can I do, and when can I do it?. The actions that workflows can take are the what, and the execution options are the when. For example, users could click a button labeled Display My Active Cases to display a list of all requests assigned to the user. The following image shows an example of a basic workflow:
You can refine execution options by specifying a qualification that must be met before an action is taken. Qualifications are often required to ensure that workflow actions apply only to certain requests. In addition, carefully designed qualifications make workflow components more efficient and powerful.
You can specify a primary action and an alternative action. If an operation meets the qualification, the primary if action is performed; if not, the alternative else action is performed, as shown in the following figure. The following image shows an example of a workflow with qualification:
Workflow actions
The following table lists some of the actions that active links, filters, and escalations can perform. For a complete list, see the Types-of-workflow-actions topic.
Action | Description | Active link | Filter | Escalation |
---|---|---|---|---|
Change Field | Changes the appearance of fields. For example, a Change Field action can perform one or more of these actions:
| ✅️ | ||
Close Window | Closes the current window. | ✅️ | ||
Message | Prompts with advice, gives reactive information, warns of a particular situation, or presents an error message and stops the processing of current workflow. Active links run on the client, so they can display messages immediately. For example, when users fill in a particular field, an active link could warn that a related field must be filled in first. Active link messages can appear in different display formats, such as a dialog box, the Prompt Bar, or a tooltip. Filters run on the server, so they are useful for checking entire transactions and sending error messages or informational messages. For example, a filter could display a message indicating that the support staff has been notified about a problem. | ✅️ | ✅️ | |
Notify | Sends event notifications to users or groups by email, or a custom mechanism, such as a Windows service that notifies users. For example, a filter might notify support staff when they are assigned a request. Or an escalation might notify the service department when an asset warranty has expired. | ✅️ | ✅️ | |
Open Window | Opens a window of any type in the client. The action can open a New window and load some default data. Or it can open a Modify window with requests matching a specified qualification. This action can also open a dialog box. Data can be passed between the dialog box and the window that calls it. Processing of active links from the calling window is suspended until the dialog box interaction is completed. | ✅️ | ||
Push Fields | Changes the values of fields in another request to the values in the current request; that is, it pushes the values from the current request to another request. This action can also change the value to a keyword or a function. You can use Push Fields to set values in related requests or to create requests that are associated with the current one. For example, you can use this action to create multiple work orders for a telephone connection, a network address, and new furniture when an employee is hired. | ✅️ | ✅️ | ✅️ |
Run Process | Runs a separate process or program on the server for filters and escalations or on the Windows client or server for active links. For example, a filter can send a notification, or an active link can launch a browser on a user's desktop. | ✅️ | ✅️ | ✅️ |
Service | Works with a AR System web service to obtain external services or with a Set Fields filter action to consume an internal AR System service. | ✅️ | ✅️ | ✅️ |
Set Fields | Sets fields on a form to specified values. For example, a filter can automatically set the Status field to Assigned every time a name is entered in the Assigned To field. The value set in a field can be static, a keyword value, or a value retrieved from another data source. | ✅️ | ✅️ | ✅️ |
Workflow execution options
Execution options determine when workflow runs. For active links and filters, you specify what event triggers the workflow. For escalations, you specify the execution schedule for the workflow. For all workflow components, you can refine the execution option by adding a qualifying statement that tells the system which set of actions to run if the additional criteria are met and which set to run if the criteria are not met.
Active link and filter execution options
The following table lists examples of execution options for active links and filters. For a complete list, see Creating-workflow-objects.
Execution option | Description | Active link | Filter |
---|---|---|---|
Button/Menu Field | Runs when a user selects the button or menu item associated with the active link. | ✅️ | |
Gain Focus | Runs when a user or a Change Field action moves the cursor to a field. | ✅️ | |
Display | Runs after a request is loaded into a form but before the request appears in the Details pane. | ✅️ | |
Hover on Field | Runs when a user hovers the mouse pointer over a field, field data, or a field label. To display tooltips, use a Hover execution option to trigger a Message action. | ✅️ | |
Lose Focus | Runs when a user or a Change Field action moves the cursor out of a field. | ✅️ | |
Menu Choice | Runs when a user chooses an item from a character menu associated with a specified field. | ✅️ | |
Modify | Runs after a user modifies an existing request but before the request is sent to the AR System server for active links or to the database for filters. An active link with this execution option does not run during a Modify All operation. | ✅️ | ✅️ |
Service | Enables filters to be called by the Service action. | ✅️ | |
Submit | Runs after a user submits a new request but before the request is sent to the AR System server for active links or to the database for filters. | ✅️ | ✅️ |
Table Refresh | Runs when a user updates a table's contents by loading the field, sorting, refreshing, or displaying the previous or next part or chunk of the table. | ✅️ | |
Window Open | Runs when a user opens a form or dialog box or changes a form to a different mode. This option is especially useful for establishing initial environments. It runs before any data is loaded into the window. | ✅️ |
Execution options and user actions
Some execution options depend on how a user interacts with fields on the form. For example, if the user does not click a particular button, that active link does not run the user controls whether the active link runs. Use user-controlled execution options to provide additional helpful information, such as a list of nearby printers.
Active links that are not under a user's control, however, run whenever the user finishes a task. That is, if the user follows the normal steps, from opening a window through closing the window, the active links not under explicit user control always run. If a user does not submit or modify the request, the active links that run on Submit or Modify do not run.
To ensure that consistent, complete data is maintained regardless of whether users perform certain actions, use execution options that are not controlled by users . For example, to guarantee that every submitted request includes the host name, an active link could retrieve the host name of the client and copy it to a field on the form whenever a request is submitted.
Execution order of active links and filters
Active link execution options have an implicit order in relation to one another and to the interaction between the client and server. You can use this order to control when the active link runs. For example:
- If field values are required for workflow processing before a request is displayed, you would set them on Window Open. However, to set any values that you want the user to see when a request is displayed, you would use the Display execution option.
- An active link that runs on Window Open might check the user's permission to open a Modify All window and, if the user does not have permission, generate an error message, preventing the window from opening.
More than one active link or filter can run on the same execution option. In this case, you can specify the order that you want it to run in relation to the other active links or filters. One reason to do so is that the output of one active link can affect another active link. By carefully ordering a group of active links, you can perform complex operations.
When active links and filters are bundled into guides, the execution order within the guides is ignored. Instead, the workflow runs in a positional order within a guide. This process enables a guide procedure to run without affecting the order of the workflow outside the guide.
Escalation execution options
In contrast to active links and filters, which react to events, escalations respond to the passage of time. You can trigger an escalation at a specific time, such as every Monday at 6 A.M., or at a time interval, such as 8 hours after each run of the escalation.
When the specified time arrives, the server searches for requests in the database that meet the escalation's qualification. If it finds any, the server runs the escalation's primary if actions for each matching request. If no requests meet the qualification, the server runs the escalation's alternative else actions, if any. The following figure illustrates how escalations work:
An alternative else action for this example might be to notify the manager that all requests comply with the assignment rule. This action would run only if no requests meet the escalation qualification.
An escalation does not process records on a form according to its execution order. Because the AR System server follows the chunking approach to process the matching records.
Where to go from here