Policy Workflow Rules

Applies To: Opalis 6.3

When building policies, it is important to understand the rules of the workflow engine that lies beneath it. By following these rules you will be able to easily create workflows to automate resource-based jobs as well as complex data processing policies. We recommend that you understand this section of the documentation and use it in your test environment to learn how the workflow rules behave. Opalis provides a small set of simple rules with an abundant set of utilities to manipulate the workflows to create the widest available options of workflow configuration.

Data Bus Modes

Opalis Integration Server has two modes for running workflows: Pipeline and Legacy. Pipeline mode is the recommended mode for all users creating new policies using Opalis Integration Server. Legacy mode is provided for previous users of Opalis Integration Server 5 and 6 that have existing workflows. All new policies created in Opalis Integration Server will automatically have Pipeline mode enabled.

The two data bus modes behave differently in how they correlate and pass data throughout the workflow. Also, some workflow control objects are not cross-compatible with each of the data bus modes. If you are updading to Opalis Integration Server from version 6.1 or previous, all of your policies will continue to run in Legacy mode until you switch them.

Objects that are Incompatible with the Pipeline Data Bus

Wait

Read Email

Filter Email

Process Email

Read Exchange Email

Filter Exchange Email

Process Exchange Email

Objects that are Incompatible with the Legacy Data Bus

Junction

Pipeline Data Bus

The following rules apply to the Pipeline data bus mode.

Start Point

A policy can only have one start point. This start point can consist of a Monitor object, the Custom Start object, or any other Action object in the Objects pane.

When a policy runs a Monitor object will be loaded into the Policy Module process that hosts the workflow runtime. The Monitor object continues running after it is has generated events. This means that the Policy Module process will not stop running during normal processing of the policy. We recommend that you choose carefully when deciding how to Monitor systems and to keep Monitor objects consolidated for better administration as well as better design for re-usable policies.

Data Bus

When a Policy runs, each object publishes data that describes the results of its execution. Subsequent objects are automatically provided with and can subscribe to this Published Data and use it in their configuration. Link Conditions also use this information to add filtering and decision making capabilities to Policies.

When an object runs it can produce any number of data items. Each data item will be passed to the following object, after going through Link Conditions filtering. When the next object in the workflow runs, it will run once for each item of data that the previous object produced. For example, the Query Database object runs and retrieves 3 rows from the database. These 3 rows of data will make the following object run 3 times, once for each row returned. The following object does not need to subscribe to the data for this execution to happen.

Links provide precedence between two objects. However, links also provide filtering capabilities for the data bus that allows you to limit the data arriving at the following object in the policy. Link Conditions provide sophisiticated sets of functions for complex rules building.

Embedded Loops

Each object can loop over itself to allow you to retry operations if they fail or to test the output information of the object for valid data. You can also use these mechanisms to build Wait conditions into your workflows.

When a Loop is configured for an object it will be run with the same input data until a desired exit condition is reached. The exit condition is built in a similar way to Link Conditions. You can test any published data item as part of the Exit or Do Not Exit conditions. There are special loop-specific items such as “Number of attempts” and “Amount of time spent in the loop” that will allow you to build timeout and maximum retries into looping conditions.

Published Data Types

When selecting Published Data, you will notice an icon beside each name. The icon represents the type of data that will be found in the value. Each icon corresponds to the following:

String value. Text information. For example, a description of an error.

Date value. Date and time information. For example, the date and time that the error occurred.

Number value. Numeric information. For example, the number of rows returned by a database query.

Boolean value. True/false information. For example, command completed.

Adding Published Data to Object Configurations

Many configuration fields within objects have the ability to subscribe to Published Data. When an object has subscribed to Published Data a placeholder is inserted where the value of the data will be added. An object can only subscribe to Published Data from an object that is linked before it in the Policy.

To add Published Data to an object

  1. When configuring an object, right-click the location where you want to insert the Published Data.

  2. Click Subscribe and then click Published Data. The Published Data dialog appears.

  3. From the Object drop-down list, select the object that publishes the Published Data that you want to subscribe to. By default, the dialog only displays Published Data that is specific to that object. To include Published Data that is common to all objects, select Show Common Published Data.

  4. Select the Published Data item that you want to use and click OK. The Published Data placeholder will be inserted into the text of the field.

To change the Published Data subscription

  1. Click the Published Data placeholder. The Published Data dialog appears.

  2. From the Object drop-down list, select the object that publishes the Published Data that you want to subscribe to. By default, the dialog only displays Published Data that is specific to that object. To include Published Data that is common to all objects, select Show Common Published Data .

  3. Select the Published Data item that you want to use and click OK. The Published Data placeholder will change to reflect the new object and Published Data that you selected.

To copy and paste Published Data items

  1. Find a Published Data item that has already been inserted into a field in a Properties dialog in Opalis Integration Server.

  2. Highlight the Published Data item that you want to copy.

  3. Click CTRL-C, or right-click the highlighted item and select Copy.

  4. Open the Properties dialog or word processing document that you want to copy the Published Data item into.

  5. Place your cursor where you want the Published Data item to appear and click CTRL-V, or right-click at the insertion point and select Paste. The Published Data item appears.

Transforming Published Data Items

Opalis Integration Server enables you to transform the existing content of Published Data or Variable items into new content according to rules that you specify, using the Map Published Data object. See Map Published Data for information and instructions.

Common Published Data

This list describes the Published Data items that are common to all objects.

Name Description

Loop: Delay between attempts

The amount of time (in seconds) between each loop attempt.

Loop: Enabled

Determines whether per-object looping is enabled for the object.

Loop: Loop error message

The error message if the loop is not successful.

Loop: Number of attempts

The number of iterations that the loop has been through.

Loop: Total duration

The total amount of time (in seconds) that the looped object has executed.

Object name

The name of the object as it appears in the Workspace. If you customize the name of an object in the Workspace, the customized name appears here.

Object type

The default name of the object. This does not change from the default even if you rename the object in the Workspace and can be useful in identifying an object in Policies where object names and display icons have been changed.

Object ID

The unique identifier of the object, for example, {4BD3F27A-8F1B-4F60-8245-F69469075EF1}

Object Process ID

The process ID of the Policy Module where the object runs.

Object status

The result status of the execution of the object, for example, Success.

Object start time

The time when the execution of the object started.

Object end time

The time when the execution of the object finished.

Object end time(year)

The year when the execution of the object finished.

Object end time(month)

The month when the execution of the object finished.

Object end time(day)

The day when the execution of the object finished.

Object end time(weekday)

The day of the week when the execution of the object finished.

Object end time(hours)

The hour when the execution of the object finished.

Object end time(minutes)

The number of minutes past the hour when the execution of the object finished.

Object end time(seconds)

The number of seconds past the minute when the execution of the object finished.

Object duration

The total time that object was executing.

Policy name

The name of the Policy to which that the object belongs.

Policy Process ID

The process ID of the PolicyModule.exe that is running on the Action Server.

The PolicyModule contains the logic for the object’s workflow execution. It is started when the Action Server starts the Policy, and is terminated when the Policy is stopped. Each Policy runs in its own PolicyModule.

Server name

The name of the Action Server where the Policy is running.

Error summary text

A summary of the error information returned by the object.