Token is a set of data to manage "tasks flowing in business process (business flow)." It can be considered as a kind of a control number.
Overview of Token
Especially, in telecommunication network and security area, "token" means "transmission privilege, access privilege, ticket, and so on" and, in many cases, "token" implies reference number, control tag, and control number that are used to control something in any way. In order to manage enormous tasks in a company, BPM engines (workflow engines) implemented in many BPM suite and BPM software products attach data called token to control each task.
In addition, it means "lexical token or character," which is a unit to analyze program codes, in software programming area.
Split of Token
On the other hand, in case of XOR-Split, at which "only one route" must be chosen, the token is never split.
In the right diagram, the following possibilities can be considered as a timing at which "C1" starts.
- "C1" starts after joining the results of "A2" and "B1."
- "C1" starts after receiving one of the results of "A2" and "B1."
- "C1" starts upon receiving the result from each of "A2" and "B1" respectively. ("C1" is executed twice.)
However, according to the basic rule defined in BPMN1.1, the third option above is expected. (Some products adopt the first option.)
(*)In order to clearly show that "C1" waits until both of "A2" and "B1" are completed, Parallel Gateway must be placed. Furthermore, if the complex way to wait the results from the two activities needs to be specified, Complex Gateway is used.
Divergence of Token
However, on the other hand, if a token processed at "B1" goes back to "A1" and is split again after "A1" is completed, the number of tokens diverges. "Whether divergence of tokens is allowed or not" depends on the specification of each BPM engine (workflow engine).
In addition, a process diagram in which "split" and "join" are always coupled and process blocks are nested is said to be "structured" after "Structured Theorem / Structured Programming" in software engineering. A token never diverges in a structured process diagram. (Note that it does not necessarily mean "a token always diverges" in a process diagram that is not structured.)