Login or Sign up
"#comment-list, #writenew_annotation"

Annotations

Please to write annotations.


"#latest_activity"

Latest Activity

"#tag_list, #add_tags"

Tags

Workflow Patterns: new Patterns

Edit Description

Last edited by Markus Güntert on Sept. 17, 2009, 7:05 p.m.

$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_115")
Good Structured Loop
Structured Loop

The ability to execute an activity or subprocess repeatedly. The loop has either a pre-test or post-test condition associated with it that is either evaluated at the beginning or end of the loop to determine whether it should continue. The looping structure has a single entry and exit point.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_116")
Good Recursion
Recursion

The ability to invoke itself during its execution or an ancestor in terms of the overall decomposition structure with which it is associated.

Edit Description
$(this).parent().parent().find(".collapse_content")
(1 Comment)
$("#best_practice_chapter_117")
Good Transient Trigger
Transient Trigger

The ability for an activity to be triggered by a signal from another part of the process or from the external environment.These triggers are transient in nature and are lost if not acted on immediately by the receiving activity

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_118")

The ability for an activity to be triggered by a signal from another part of the process or from the external environment. These triggers are persistent in form and are retained by the workflow until they can be acted on by the receiving activity.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_119")
Good Cancel Region
Cancel Region

The ability to disable a set of activities in a process instance. If any of the activities are already executing, then they are withdrawn. The activities need not be a connected subset of the overall process model.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_120")
Good Cancel Multiple Instance Activity
Cancel Multiple Instance Activity

Within a given process instance, multiple instances of an activity can be created. The required number of instances is known at design time. These instances are independent of each other and run concurrently. At any time, the multiple instance activity can be cancelled and any instances which have not completed are withdrawn. This does not affect activity instances that have already completed.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_121")
click here to start modeling
Complete Multiple Instance Activity

Within a given process instance, multiple instances of an activity can be created. The required number of instances is known at design time. These instances are independent of each other and run concurrently. It is necessary to synchronize the instances at completion before any subsequent activities can be triggered. During the course of execution, it is possible that the activity needs to be forcibly completed such that any remaining instances are withdrawn and the thread of control is passed to subsequent activities.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_122")
Good Blocking Discriminator
Blocking Discriminator

The convergence of two or more branches into a single subsequent branch following one or more corresponding divergences earlier in the process model. The thread of control is passed to the subsequent branch when the first active in- coming branch has been enabled. The discriminator construct resets when all active incoming branches have been enabled once for the same process instance. Subsequent enablements of incoming branches are blocked until the discriminator has reset.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_123")
Good Cancelling Discriminator
Cancelling Discriminator

The convergence of two or more branches into a single subsequent branch following one or more corresponding divergences earlier in the process model. The thread of control is passed to the subsequent branch when the first active incoming branch has been enabled. Triggering the discriminator also cancels the execution of all of the other incoming branches and resets the construct.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_124")
Good Structured Partial Join
Structured Partial Join

The convergence of M branches into a single subsequent branch following a corresponding divergence earlier in the process model. The thread of control is passed to the subsequent branch when N of the incoming branches have been enabled. Subsequent enablements of incoming branches do not result in the thread of control being passed on. The join construct resets when all active incoming branches have been enabled.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_125")
Good Blocking Partial Join
Blocking Partial Join

The convergence of two or more branches into a single subsequent branch following one or more corresponding divergences earlier in the process model. The thread of control is passed to the subsequent branch when N of the incoming branches have been enabled. The join construct resets when all active incoming branches have been enabled once for the same process instance. Subsequent enablements of incoming branches are blocked until the join has reset.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_126")
Good Cancelling Partial Join
Cancelling Partial Join

The convergence of two or more branches into a single subsequent branch following one or more corresponding divergences earlier in the process model. The thread of control is passed to the subsequent branch when N of the incoming branches have been enabled. Triggering the join also cancels the execution of all of the other incoming branches and resets the construct.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_127")

The convergence of two or more branches into a single subsequent branch such that the thread of control is passed to the subsequent branch when all input branches have been enabled. Additional triggers received on one or more branches between firings of the join persist and are retained for future firings.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_128")
Good Static Partial Join for Multiple Instances
Static Partial Join for Multiple Instances

Within a given process instance, multiple concurrent instances of an activity can be created. The required number of instances is known when the first activity instance commences. Once N of the activity instances have completed, the next activity in the process is triggered. Subsequent completions of the remaining M-N instances are inconsequential.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_129")
Good Cancelling Partial Join for Multiple Instances
Cancelling Partial Join for Multiple Instances

Within a given process instance, multiple concurrent instances of an activity can be created. The required number of instances is known when the first activity instance commences. Once N of the activity instances have completed, the next activity in the process is triggered and the remaining M-N instances are cancelled.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_130")
click here to start modeling
Dynamic Partial Join for Multiple Instances

Within a given process instance, multiple concurrent instances of an activity can be created. The required number of instances may depend on a number of runtime factors, including state data, resource availability and inter-process communications and is not known until the final instance has completed. At any time, whilst instances are running, it is possible for additional instances to be initiated providing the ability to do so has not been disabled. A completion condition is specified which is evaluated each time an instance of the activity completes. Once the completion condition evaluates to true, the next activity in the process is triggered. Subsequent completions of the remaining activity instances are inconsequential and no new instances can be created.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_131")
click here to start modeling
Acyclic Synchronizing Merge

The convergence of two or more branches which diverged earlier in the process into a single subsequent branch. The thread of control is passed to the subsequent branch when each active incoming branch has been enabled. Determination of how many branches require synchronization is made on the basis of information locally available to the merge construct. This may be communicated directly to the merge by the preceding diverging construct or alternatively it can be determined on the basis of local data such as the threads of control arriving at the merge.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_132")
click here to start modeling
General Synchronizing Merge

The convergence of two or more branches which diverged earlier in the process into a single subsequent branch. The thread of control is passed to the subsequent branch when each active incoming branch has been enabled or it is not possible that the branch will be enabled at any future time.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_133")

Two or more connected sub-graphs of a process model are identified as ”critical sections”. At runtime for a given process instance, only activities in one of these ”critical sections” can be active at any given time. Once execution of the activities in one ”critical section”commences, it must complete before another ”critical section” can commence.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_134")

Each member of a set of activities must be executed once. They can be executed in any order but no two activities can be executed at the same time (i.e. no two activities can be active for the same process instance at the same time). Once all of the activities have completed, the next activity in the process can be initiated.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_135")
Good Thread Merge
Thread Merge

At a given point in a process, a nominated number of execution threads in a single branch of the same process instance should be merged together into a single thread of execution.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_136")

At a given point in a progress, a nominated number of execution threads can be initiated in a single branch of the same process instance.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_137")

A given process (or subprocess) instance should terminate when it reaches a nominated state. Typically this is denoted by a specific end node. When this end node is reached, any remaining work in the process instance is cancelled and the overall process instance is recorded as having completed successfully.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_193")
Edit Description

Trash

Provide Feedback

Close

Help us to improve usability!

Enter your feedback referring to the current page. Your comments are only visible to the development team.