In this example, more than one of several possible branches
in a process are followed. This example can be implemented using
either a gateway element or event receivers that are used as process
start points.
Gateway implementation
This implementation includes a process variable
that contains information about which branch to execute and a gateway
that contains the branches that can be executed. Each branch has
the following characteristics:
-
The first operation
in each branch is an
execute
operation
that the
Decision Point
service provides.
-
The route that originates at the execute operation leads
to the activities that are to execute in the branch.
-
A condition is attached to the route to determine whether
the activities should be executed. If the route is valid, the activities
are executed. If the route is not valid, the branch completes and
the activities are not executed.
In the following illustration,
activity A, activity B, or both activities are executed.
Event implementation
This implementation includes one main process
and several subprocesses. The subprocesses are the possible branches
that are followed. An asynchronous event type is used to determine
which subprocesses are executed at run time:
-
The main
process throws the event. Event data is included in the event information.
-
The subprocesses each receive the event as a start point.
The filters on the start point determine whether the subprocess
is executed.
In the following example, the main subprocess
throws an asynchronous event, and the subprocesses use the event
as a starting point. The filters on the start points of the subprocesses
determine whether the subprocess is invoked, and therefore whether
activity A, activity B, or both activities are executed.
-
A.
-
Main process
-
B.
-
Subprocess containing activity A
-
C.
-
Subprocess containing activity B
|
|
|