Policy Workflow Rules
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 automation RBA jobs as well as complex data
processing policies. It is recommended to 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 abundent set of utilities to manipulate the
workflows to create the widest available options of workflow
configuartion.
Databus 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 Databus 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 Databus modes.
Note: 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
it.
Objects incompatible with
the Pipeline Databus:
Objects incompatible with
the Legacy Databus:
Note: The following rules apply to the
Pipeline Databus mode.
Starting points
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 palette.
Monitor objects behave differently to other objects.
When a policy runs a Monitor object
will be loaded into the PolicyModule process that hosts the
workflow runtime. The Monitor object continues running after it is
has fired events. This means that the PolicyModule process will not
stop running during normal processing of the policy. It is
recommended to 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.
Databus
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
Links provide precedence between two
objects. However, links also provide filtering capabilities for the
Databus that allows you to limit the data arriving to 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.
|
Note: An
object can only subscribe to Published Data from an object that is
linked before it in the Policy.
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.
To add Published Data to an
object:
1.
|
When configuring an object,
right-click in the location where you want to insert the Published
Data.
|
2.
|
Click Insert 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 are subscribing
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 that
you want to insert 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 are subscribing
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.
|
Copying and Pasting Published
Data Items
Opalis Integration Server enables
you to copy and paste Published Data items. You can copy Published
Data items within Opalis Integration Server, or you can copy them
to a word processing application and paste them back into Opalis
Integration Server at a later time.
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 on your keyboard, or right-click
on 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 on your keyboard, or right-click
at the insertion point and select Paste. The Published Data item
appears.
|
Note: After you have copied Published
Data items into a word processing document, you can copy the text
from the word processing document and paste it into fields on
Opalis Integration Server dialogs.
Transforming Published Data
Items
Opalis Integration Server enables
you to transform the existing content of Published Data or Variable
item 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 that the
object belongs to.
|
Policy Process ID
|
The process ID of the
PolicyModule.exe that is running on the Action Server.
Note: 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.
|