[Contents] [Prev] [Next] [Index] [Report an Error] [No Frames]


Workflow Language

The workflow language is a visual language that specifies the rules for connecting components to produce workflows. Each component has an input and two outputs. The input receives tokens from a predecessor component; the outputs send tokens to successor components. Receipt of a token from a predecessor triggers the component to perform its task. When the task is complete, that component generates a token at each output, along with a result from the task. Successor components perform their task depending on the value of the result and the output from which they receive the token. Any number of components can be connected to each output.

The two outputs, named OK and NOK (not OK), send generated tokens with complementary results (Figure 2). For example, if the task was completed successfully, a token with a proceed result is generated at the OK output and another token with a not proceed result is generated at the NOK output. If the task was not completed successfully, the OK output sends a not proceed token and the NOK output sends a proceed token. A component that receives a token with a proceed result performs its task. A component that receives a token with a not proceed result does not perform its task and forwards a token with a not proceed result to both of its outputs, thus preventing all successors from performing their tasks.


Figure 2: Workflow Fragment
 

A special kind of component, the synchronization work item, allows more than one predecessor. This type of component does not have an associated task. It waits until all predecessors are complete, and then performs a logical operation with the results to create the output token, such as the following:

The Start State component is always the first component in a workflow. It has no predecessor component. The End State component is the last component in a workflow. It has no successor components. A workflow has only a single instance of each of these components.

The workflow token carries other data besides the task result, but this data does not influence whether tasks are performed. Thus, there is no distinction between the data path and the control path for a workflow. The data in the token is stored as a list of parameters and values. Parameters can have any name and any value. It is the responsibility of the components that use them to agree in their names and formats. A translation table lists a set of predefined parameter names that correspond to attributes of the objects that triggered the execution of the workflow. The meaning and valid values for each attribute are defined in the directory schema. See Chapter 17, Workflow Translation Table.


[Contents] [Prev] [Next] [Index] [Report an Error] [No Frames]