Back Forward Flows — Concepts and terms

Concepts and terms

Show all 

A flow rule — an instance of the Rule-Obj-Flow rule type — is a network of shapes representing tasks and connectors (directed arrows), each with associated parameters and values. Flows govern:

Flows are the fundamental rule instances that represent business processes, identifying who works on a work object in what sequence, what decisions and processing occur automatically, and many other aspects of the business process.

Some applications don't require users to interact with work object forms. Flows that implement straight-through-processing operate without user input. External portals and systems can execute flows through Active Server Pages, JavaServer Pages, Service Portlet or Service JSR94 rules, or other means. Informally, these are known as "headless" BPM applications. A collection of standard activities known as the Process Engine API simplifies building such applications.

 As you build an application

Application developers use Microsoft Visio to create, edit, and evolve a flow. Process Commander uploads the resulting VSD file, including the Shape Parameters details from the workstation. Both the diagram image (a JPG file) and the rule details are saved with the flow rule.

Visio provides an attractive, easy-to-interpret and easy-to-manipulate presentation of the business process.

To start Visio on your workstation, click the Flow Edit toolbar button (Flow Edit). Create and evolve the flow in Visio as needed using familiar Windows techniques such as drag-and-drop. As you work, you can enter the names of utility tasks, decision tasks, assignment tasks, routing tasks, flow actions and other rule instances. If some of the activities and other rules for these tasks do not yet exist, you can leave all or part of the rule in draft mode.

As you exit from Visio, the system uploads the flow diagram (and the extensive data structure that Visio contains), and saves it in the flow rule.

You can't test a flow rule that has Availability set to No/Draft. You can test the flow rule if the Availability is set to Yes, even if the Visio DRAFT mode (Draft Mode) is in force, indicating that not all the activities, properties, or other rules are yet defined.

 Runtime processing — The simple case

At runtime, a user can start the execution of a flow by entering a new work object. The system examines the property pyFlowName, in the model instance for the class, to determine which flow to start. The flow operates on the work object to advance it through the business process that the flow implements, performing automated steps automatically, or creating assignments for users as appropriate.

You can think of a work object as located "on" one shape or arrow of the flow at any one instant, until the work object becomes resolved or the flow ends. Alternatively, you can think of the flow operating on the data (properties) in the work object until the flow finishes or the work object becomes resolved. Both points of view are correct.

A flow may define many optional detours, side trips, and branches reflecting decisions reached along the way. The path that one work object follows through the flow depends on its own requirements, automatic decisions in rules (such as decision tree rules and map value rules) and on available resources. For example:

As a flow rule executes, the following processing often occurs:

 Types of flows

The Process Explorer tool presents — for the currently selected application — starter flow rules and the subflows they call in a graphical form. See Process and Rules category — Processes page.

 Parallel processing with Split-Join

In some business processes, the order of certain tasks is not important if all tasks get done. In other situations, a task can be considered complete when either of two tasks finishes.

The Split/Join facility (Split Join shape) supports such asynchronous operation, by allowing processing of two or more subflows to proceed in parallel. For example, a contract may need approval of both a legal reviewer and a purchasing department reviewer, but order is not important. In the 1980's era of paper forms and in-boxes, only one of these two has the paper — artificial sequencing. With a work-object and a flow that uses Split-Join, each subflow can create an assignment, and the two reviewers can proceed independently.

See Flow rule — Completing the Diagram — Split/Join tasks.

Advanced featureSplit-Join parallel processing occurs only when considered at the business process level. Although two assignments exist, they both belong to a single work object. During the minutes or seconds that either user performs the assignment (thus updating the work object), the system locks the work object and so the work object is not available to the other user.

Similarly, at a more atomic level, if the two users both access a single-node Process Commander system that has a single JVM and single CPU chip, no parallel processing occurs at the Java thread level, even when the two users work on different work objects.

 Parallel processing with Split-forEach

The Split-forEach facility () causes multiple subflows to start, one for each page of a Page List property. Processing can resume after any one, or all, of the subflows end.

See Flow rule — Completing the Diagram tab — Split-forEach task.

 Parallel processing with Spin-off

A Spin-Off task () starts asynchronous execution of a different flow, on the same work object or a different work object. Processing of the current flow does not pause or wait for results from the other flow.

See Flow rule — Completing the Diagram tab — Spin-Off task.

 Parallel processing with Start a NewProcess and flow actions

Process Commander offers ways for a flow execution to be started for an existing (open) work object. These are alternatives to calling a subflow, using a Split-Join task, or using a Split-forEach task:

 Data structure for flow executions

Several system-maintained properties in a work object record the current state of flow executions in process. For example, the integer property @baseclass.pxFlowCount indicates how many flow executions are in process for the work object.

The Page Group property @baseclass.pxFlow contains a page of facts about each execution:

Definitions Business Process Management, customer process management, draft mode, exceptions management, flow model, headless application, Process category, Process Explorer gadget
Related topics About Flow rules
How to set up Visio
Understanding transactions and locking in flow executions
Standard rules Atlas — Standard Activities — Process Engine API
Atlas — Standard Flow rules

UpConcepts