Control Flow In Workflow Nets
A work item list of a particular user contains items, each of which represents
an activity (more precisely, an activity instance) that is enabled and
that can be executed by that user. Whenever a transition with a user trigger
enters the enabled state, a work item representing this activity is sent to the
work item lists of the users who can perform it. Role information is used to
determine the knowledge workers. When a user selects a particular work item,
the activity is started and the work items reflecting it can be deleted from the
work item list.
Modelling organizational aspects like users or roles is not supported by
workflow nets. A transition marked with a user trigger indicates that the
activity represented by that transition requires a human to start it. Organizational
aspects need to be covered by tools that employ workflow nets for
process modelling and other techniques for modelling organizations. The same
applies for representing data, which is also not covered by workflow nets.
An external trigger is the main instrument for reacting to external events
like an incoming message. When the transition that carries an external trigger
enters the enabled state, it listens for this event. When the event occurs, for
instance, when an order arrives, the transition fires and the activity starts
Time triggers are used to specify situations where the start of an activity
depends on temporal aspects. Time triggers can be assigned a time-out value.
The timer is started when the transition enters the enabled state. When the
timer runs out, the enabled transition fires. If the transition is no longer
enabled, the timer is stopped.
process, a request is sent, represented by the Send Request transition. The
workflow net implements an implicit exclusive or split that concurrently enables
(transitions that represent) activities to collect the response to the request
and to send a reminder.
The Collect Response activity is marked by an external trigger, so that
it is started once the response comes in. A reminder should be sent if after
a defined time interval, for instance, 14 days, no response is received. This
business logic can be implemented in a workflow net by attaching a timer
trigger to the Send Reminder transition.
The timer is started when the transition enters the enabled state, i.e.,
after the request is sent. If the response is received within the timer interval,
then the Collect Response transition fires. In this case, the Send Reminder
transition is no longer enabled, so that the timer can be stopped.
In an explicit exclusive or split (a), the decision on which branch to activate
is made by a decision transition, so that either transition A or transition B
is enabled. In this setting, the desired functionality is not realized, because if
A is enabled, the timer will not be started, and if B is activated, there is no
way for the user to start working on activity A.
The timer is started, and the user trigger is available. If the user starts the activity on time, i.e., before the
timer expires, then the timer is stopped. If the user fails to start the activity
on time, activity B is started to cater to this situation.
Trigger activities can formally be represented by places with an arc to the
respective transition. For instance, a user trigger of a transition A is represented
by a place p such that p 2 P and (p,A) 2 F, as shown in Figure 4.51.
The behaviour of the user is represented as follows. If and when the user selects
this activity, a token is put in place p, enabeling transition A. In this
case, A can fire, representing the execution of that activity.
While the behaviour of the user trigger is specified well using the additional
place and the additional arc, there is an issue to cope with: the Petri net
resulting from expanding the user trigger by a place and an arc is no longer a
Workflow net! This is due to the fact that p is not on a path from the initial
place i to the final place o. In the context of business processes involving
multiple parties, however, these trigger places are very useful to interconnect
the processes involved.
The diagram shows a business process involving a customer and a bookstore, and it contains
activities for the ordering of books by the customer and the processing of the
order by the bookstore.
All activities in this scenario are represented by transitions of one workflow
net. In order to satisfy the structural properties of workflow nets, the process
starts in the initial place i at the customer, and it ends in the final place o at
the customer. Later, in the context of business process choreographies, more
elaborate techniques will be introduced that separate an externally observable
behaviour of a business process from its internal realization. However, in the
current example, the workflow spans multiple parties.
The process starts with the customer browsing the online catalogue of a
bookstore and selecting books. If books are found, an order is assembled and
sent, represented by the send order transition. This transition spawns off two
concurrent threads, as shown by the and split symbol.
In one thread, the message is sent to the bookstore. The sending of the
order is represented by a token in the input place of the receive order transition.
When the order is received in the bookstore, the order is processed.
If the order is okay, the books are sent; otherwise, a message is sent to the
customer that informs him that not all books are available.
This means that the bookstore sends one of two possible messages for each
case. On the customer side, this situation is handled by an implicit exclusive
or split. In this split, two transitions can be enabled at the same time. If the
bookstore sends the books, the receive books transition of the customer is
enabled and will fire.
If on the other hand the information message is sent, the respective transition
on the customer side is enabled. Observe that the alternative branches
in the bookstore need to be joined, and the join transition is connected to
the customer side. This is required in workflow nets, because otherwise there
would be places in the workflow net (send books and send not available) that
are not on a path from the initial place to the final place.