Workflow represents a series of changes to the state of a certain card entity in accordance with a specified process, which involves both users and automatic operations. A typical example is the process where a certain document is approved by employees in an organization.
Below is the structure of the Workflow subsystem of the CUBA platform.
The main structural elements are:
-
Process Design - a process schema, as well as a collection of related scripts, variables, notification and message localization settings. The design defines the process, which is created and updated as a result of design deployment in the application.
-
Process - an executable description of the business process. The execution mechanism is based on the jBPM 4 framework, so the main element of the process is the descriptor of the state graph in jPDL. Furthermore, the process includes descriptors of user interface forms, lists of users assigned to execute process roles, localized messages, etc.
-
Card - a data model entity that is directly linked to the process instance. In most cases, the process card is a domain object with a state that may vary in accordance with the process. An example is a document awaiting approval or a ticket in the bug tracking system. If such a domain object does not exist, the card can be an artificial entity that simply reflects the current state of the process instance.
In a manner of speaking, the process defines the type of business process, while the card represents a single instance of this business process.
The process defines a set of states (nodes) and transitions between them, as well as the following associated objects:
-
Activities - the software code that is executed when transitioning to a particular state.
-
Forms - interactive screens that allow users to choose transitions.
-
Timers - the software code that is automatically triggered when a certain amount of time has passed after entering a certain state.
Assignment objects appear in course of process execution. They indicate that the user should take some action concerning the process.
The Workflow subsystem of the platform has an integrated visual process editor, Visual Designer, which allows designing processes and deploying them at application runtime. The set of possible states, actions, forms, and timers that make up processes is configured in the application at the development stage.