Concepts - OptimalBPM/optimalbpm GitHub Wiki

There are several important concepts of Optimal BPM.


In Optimal BPM, a process is a collection of ordered steps like those in a computer program. It is basically like a list of things to do. In that sense, it differs from the usual approach of BPM system, where the process is designed as a graph with connectors and directions.

However, a step may be a task set, which means unordered list, where one tasks may depend on the state of another. Keeping it separate from the rest of the process make the process far more easy to understand and describe.

The reason for this is simplicity. A business process is usually the result of something that has been worked out by employees or is a result of regulation, not something that is magically created by a consultant. Therefore, it may be an unnecessary step to make it into a graph, and then, usually, back into a list.

In Optimal BPM, a process stays a list. Granted, it is more a tree than a list, but still it is a far simpler construct.

Flow control

Flow control is about controlling the execution of a process, if something should happen, or how many times. As Optimal BPM is structurally mimicking actual programming code, this is controlled via statements that dictate what should happen with the blocks they contain.

There are two major statements used for this purpose:

IF condition is true/ELSE

If the condition is true, then do what is in the block, if not, don't. If the IF is followed by an ELSE statement, then what is in that block should happen instead.

Loop collection

Once each item in the collection, do what is in the block. If it is about sending e-mails to a list of contacts, for each contact, the block may be just one command, "send an email to".