A new workflow model can be created in the Workflow Models area. The only required information at creation is a name that is unique in the repository.
The steps of the workflow model are initialized with a single transition. In order to fully implement the workflow model, you must define the sequence of steps beyond this initial transition.
A workflow model defines steps that correspond to different operations that must be performed on data, and associated conditions. The following types of steps exist:
User task
Script task
Condition
Sub-workflow invocation
Wait task
A data context is linked to each data workflow. This data context can be used to define variables that can be used as input and output variables in the steps of the workflow.
For each step type (excluding sub-workflows invocations), a property is available to define which progress strategy has to be applied for the next step. Upon step completion, this strategy is evaluated in order to define the navigation when the workflow is executed. By default, the progress strategy is set to 'Display the work items table'. In that case, after the step has been executed, the work items table (work items inbox or monitoring > work items) is automatically displayed, in order to select the following work item.
Another strategy can be selected: 'Automatically open the next step'. This strategy allows the user to keep working on this workflow and to directly execute the next step. If, following to this execution, a work item is reached and the connected user can start it, then the work item is automatically opened (if several work items are reached, the first created is opened). Otherwise, the next step progress strategy is evaluated. If no work item has been reached, the work items table will be displayed.
This strategy is used to execute several steps in a row without going back to the work items inbox.
There are some limitations that will lead to disregard this strategy. In that case, the work items table is automatically displayed. This property will be disregarded when: the next step is a sub-workflow; or the current step is a user task with more than one work item.
In the case of conditions, two other strategies are available: 'If true, automatically open the next step' and 'If false, automatically open the next step'. These strategies allow choosing which strategy will be applied according to the condition result.
For each step type, a property is available to define which steps must be hidden in the workflow progress view by default.
If this property is enabled, the step will be automatically hidden in the workflow progress view for non-administrator users (neither built-in administrator nor workflow administrator). Hidden steps can be displayed on demand.
User tasks are steps that involve actions to be performed by human users. Their labels and descriptions can be localized.
For backward compatibility reasons, two user task modes are available: the default mode and the legacy mode.
By default, a user task generates a single work item. This mode offers more features, such as offering a work item to a list of profiles or directly displaying the avatars in the workflow progress view.
In the legacy mode, a user task can generate several work items.
By default, the user task creation service is hidden in legacy mode. To display it, a property should be enabled in the ebx.properties
file. For more information, see Disabling user task legacy mode.
The definition of the profiles of a user task may vary depending on the user task mode.
The defined profiles are the roles or the users to whom the user task is being offered. When executing the user task, a single work item is generated. If a single user is defined, the work item is automatically assigned to this user. If a role is defined, the work item is offered to the members of the role. If several users and roles are defined, the work item is offered simultaneously to these users and to the members of these roles.
The participants are the roles or the users to whom the user task is intended. By default, when executing the user task, a work item is generated by profile. If a profile refers to a user instead of a role, the work item is directly allocated to that user. If a profile is a role, the work item is offered to the members of the role.
TIBCO EBX® includes the following built-in services:
Access a dataspace
Access data (default service)
Access the dataspace merge view
Compare contents
Create a new record
Duplicate a record.
Export data to a CSV file
Export data to an XML file
Import data from a CSV file
Import data from an XML file
Merge a dataspace
Validate a dataspace, a snapshot or a dataset
By default, only the accept action is offered to the user when saving a decision.
It is possible to also allow users to reject the work item by setting this field to 'Yes'.
By default, a confirmation request is displayed after user task execution when the user saves the decision by clicking the 'Accept' or 'Reject' button.
To disable this confirmation prompt, set this field to 'Yes'.
By default, comments are enabled. When a work item is open, a 'Comments' button is displayed and allows the user to enter a comment.
It is possible to hide this 'Comments' button by setting this property to No.
By default, it is optional to submit a comment associated with a work item.
It is possible to require the user to enter a comment before saving the decision by setting this field to the desired validation criteria. Comments can be set to be always required, required only if the work item has been accepted, or required only if the work item has been rejected.
When the user task is run, the user can accept or reject the work item by clicking the corresponding button. In the workflow model, it is possible for a user task to define a customized label and confirmation message for these two buttons. This can be used to adapt the buttons to a more specific context.
A single user task could be assigned to multiple participants and thus generate multiple work items during workflow execution. When defining a user task in the workflow model, you can select one of the predefined methods for determining whether the user task is finished, based on the statuses of its component work items. When the user task's exit requirement has been satisfied, the data workflow will move on to the next step defined in its model.
For example, for the case of a user task where a product record needs to be approved, you could designate three potential participants. The task termination criteria can specify whether the product record needs to be approved by all three users, or only the first user to respond.
The default user task termination criteria is 'When all work items have been accepted.'
If you specify a service extension overriding the method UserTask.handleWorkItemCompletion
to handle the determination of the user task's completion, it is up to the developer of the extension to verify from within their code that the task termination criteria defined through the user interface has been met. See UserTask.handleWorkItemCompletion
in the JavaDoc for more information
By default, if a user rejects a work item during workflow execution, the user task is placed into an error state and the workflow progress is halted. When the user task is in an error state, a workflow administrator must intervene by replaying the step where the error occurred in order to continue the workflow execution.
In order to change this default behavior, it is possible to define a certain number of work item rejections to tolerate. While within the limit of tolerated rejections, no error will occur and it is the task termination criteria that determines when to end the user task.
The following task termination criteria automatically tolerate all rejections:
'When all work items have been either accepted or rejected'
'Either when all work items have been accepted, or as soon as one work item has been rejected'
A custom class can be specified in order for the task to behave dynamically in the context of a given data workflow. For example, this can be used to create work items or complete user tasks differently than the default behavior.
The specified rule is a JavaBean that must extend the UserTask
class.
If a rule is specified and the handleWorkItemCompletion
method is overridden, the completion strategy is no longer automatically checked. The developer must check for completion within this method.
A notification email can be sent to users when specific events occur. For each event, you can specify a content template.
It is possible to define a monitor profile that will receive all emails that are sent in relation to the user task.
Reminder emails for outstanding offered or allocated work items can be periodically sent to the concerned users. The recipients of the reminder are the users to whom the work item is offered or allocated, as well as the recipients on copy.
The content of the reminder emails is determined by the current state of the work item. That is, if the work item is offered, the notification will use the "Offered work items" template; if the work item is allocated, the notification will use the "Allocated work items" template.
Each user task can have a completion deadline. If this date passes and associated works items are not completed, a notification email is sent to the concerned users. This same notification email will then be sent daily until the task is completed.
There are two deadline types:
Absolute deadline: A calendar date.
Relative deadline: A duration in hours, days or months. The duration is evaluated based on the reference date, which is the beginning of the user task or the beginning of the workflow.
Script tasks are automatic tasks that are performed without human user involvement.
Two types of script tasks exist, which, once defined, can be used in workflow model steps:
Library script task | EBX® includes a number of built-in library script tasks, which can be used as-is. Any additional library script tasks must be declared in a |
Specific script task | Specifies a Java class that performs custom actions. The associated class must belong to the same module as the workflow model. Its labels and descriptions are not displayed dynamically to users in workflow models. |
EBX® includes the following built-in library script tasks:
Create a dataspace
Create a snapshot
Merge a dataspace
Import an archive
Close a dataspace
Set a data context variable
Send an email
Delete records (Note: this script can remove several records)
Library script tasks are classes that extend the class ScriptTaskBean
. Besides the built-in library script tasks, additional library script tasks can be defined for use in workflow models. Their labels and descriptions can be localized.
The method ScriptTaskBean.executeScript
is called when the data workflow reaches the corresponding step.
The method ScriptTaskBean.executeScript
must not create any threads because the data workflow moves on as soon as the method is executed. Each operation in this method must therefore be synchronous.
See the example.
It is possible to dynamically set variables of the library script task if its implementation follows the Java Bean specification. Variables must be declared as parameters of the bean of the library script task in module.xml
. The workflow data context is not accessible from a Java bean.
Some built-in library script tasks are marked as "deprecated" because they are not compatible with internationalization. It is recommended to use the new script tasks that are compatible with internationalization.
Specific script tasks are classes that extend the class Sample of ScriptTask.
The method ScriptTask.executeScript
is called when the data workflow reaches the corresponding step.
The method ScriptTask.executeScript
must not create any threads because the data workflow moves on as soon as the method is executed. Each operation in this method must therefore be synchronous.
See the example.
It is not possible to dynamically set the variables of the bean for specific script tasks. However, the workflow data context is accessible from the Java bean.
Conditions are decision steps in workflows.
Two types of conditions exist, which, once defined, can be used in workflow model steps:
Library condition | EBX® includes a number of built-in library conditions, which can be used as-is. Any additional library script tasks must be declared in a |
Specific condition | Specifies a Java class that implements a custom condition. The associated class must belong to the same module as the workflow model. Its labels and descriptions are not displayed dynamically to users in workflow models. |
EBX® includes the following built-in library conditions:
Dataspace modified?
Data valid?
Last user task accepted?
Value null or empty?
Values equals?
Library conditions are classes that extend the class ConditionBean
. Besides the built-in library conditions, additional library conditions can be defined for use in workflow models. Their labels and descriptions can be localized.
See the example.
It is possible to dynamically set variables of the library condition if its implementation follows the Java Bean specification. Variables must be declared as parameters of the bean of the library condition in module.xml
. The workflow data context is not accessible from a Java bean.
Specific conditions are classes that extend the class Condition
.
See the example.
It is not possible to dynamically set the variables of the bean for specific conditions. However, the workflow data context is accessible from the Java bean.
Sub-workflow invocation steps in workflow models put the current workflow into a waiting state and invoke one or more workflows.
It is possible to include another workflow model definition in the current workflow by invoking it alone in a sub-workflow invocation step.
If multiple sub-workflows are invoked by a single step, they are run concurrently, in parallel. All sub-workflows must be terminated before the original workflow continues onto the next step. The label and description of each sub-workflow can be localized.
Two types of sub-workflow invocations exist:
Static | Defines one or more sub-workflows to be invoked each time the step is reached in a data workflow. For each sub-workflow, it is possible to set its localized labels and descriptions, as well as the input and output variable mappings in its data context. This mode is useful when the sub-workflows to be launched and the output mappings are predetermined. |
Dynamic | Specifies a Java class that implements a custom sub-workflow invocation. All workflows that could be potentially invoked as sub-workflows by the code must be declared as dependencies. The workflow data context is directly accessible from the Java bean. Dynamic sub-workflow invocations must be declared in a This mode is useful when the launch of sub-workflows is conditional (for example, if it depends on a data context variable), or when the output mapping depends on the execution of the sub-workflows. |
Wait task steps in workflow models put the current workflow into a waiting state until a specific event is received.
When a wait task is reached, the workflow engine generates a unique resume identifier associated with the wait task. This identifier will be required to resume the wait task, and as a consequence the associated workflow.
A wait task specifies which profile is authorized to resume the wait task; and a Java class that implements a wait task bean: WaitTaskBean
.
The workflow data context is directly accessible from the Java bean.
Wait task beans must be declared in a module.xml
file.
First, the wait task bean is called when the workflow starts waiting. At this time, the generated resume identifier is available to call a web service for example. Then, the wait task bean is called when the wait task is resumed. In this way, the data context may be updated according to the received parameters.
The built-in administrator always has the right to resume a workflow.
Once a workflow model is defined, one can view the model in a BPMN-like diagram.
This service is available with a dedicated button on the toolbar of the hierarchical view. The icon is the following: .
This service provides a view with limited edition capabilities: it is only possible to modify existing steps, but links edition and creation of steps still need to be done through the hierarchical view. This diagram can help modelers have a clear view of the workflow model they are designing.
Please also note that, although the diagram is derived from BPMN standards, it is not a strict representation of BPMN since EBX® workflow concepts are slightly different.
It is possible to save the modified layout. Please note that this is not a user-based save: it will be shared by all the users.
Export as PNG | Creates a PNG image. |
Export as SVG | Creates an SVG image. |
Export as PDF | Creates a one-page PDF |
Layout > Default layout | Applies the default layout to the diagram. |
Grid > Show/Hide grid | Shows the grid if the grid is not visible, hides it otherwise. |
Save layout | Saves the current layout. |
Save layout and close | Saves the current layout and closes the service. |
Revert | Reverts changes and reloads a previously saved layout. |
Close | Closes the service. |
The diagram view offers useful additional features
Undo last action | CTRL + Z |
Zoom in/Zoom out. | Mouse middle button then mouse wheel / CTRL then mouse wheel. |
Multiple selection | Click on the nodes or links selected holding down the CTRL button / Draw a selection rectangle (you will need to hold down the left click for 1 second before drawing the area). |
Customizing links drawing | When clicking on a link, you can either move the segments by dragging the squares which appear on the corners, or separate a specific segment by moving the circle in the middle. |
Edit a step | Double clicking on a step will display an edition form. |
Overview | A panel is now available with a miniature workflow diagram view which can be used to navigate within it. This panel can be collapsed, expanded and dragged inside the area allocated to the workflow diagram view. |
User guide table of contents