Page 360 -
P. 360
358 G. Decket et al.
Fig. 13.10 YAWL net with
explicit conditions that cannot
be mapped to event-based
Register
gateways Order
Pack Goods
Send Invoice/
Ship Goods 10-days Account
Timeout
Statement
Receive
Payment
Send Customer
Feedback
Questionnaire
exist in YAWL. To illustrate the impact of this restriction in the BPMN notation,
consider the diagram in Fig. 13.10. Here, task 10-days timeout should only fire if
there is a token in each of its input conditions – meaning that the 10-days timer is
only armed once the goods have been shipped and the invoice/account statement
has been sent. Ten days after the latest of these two tasks has completed, a new
invoice/account statement is sent to the customer as a reminder that the payment is
due. Hence, there is an AND-join decorator attached to this timeout task. Because
of the above restriction, the two explicit conditions preceding the timer (marked in
bold in the figure) cannot be directly mapped to event-based gateways in BPMN.
Indeed, if one tried to map these explicit conditions into event-based gateways, a
problem would arise, because the resulting event-based gateway would be followed
immediately by an AND-join gateway. This configuration is forbidden in BPMN,
because event-based gateways can only be immediately followed by intermediate
events. Fundamentally, the problem stems from the fact that BPMN does not offer a
concept of “state”, which would allow one to capture “the state after the goods have
been shipped” or “the state after the invoice has been sent.” This state can of course
be captured in the form of variables, but then it is not directly visible in the diagram.
Events
In Fig. 13.9, BPMN message and timer events are mapped to YAWL tasks. BPMN
message events are mapped to YAWL tasks linked to a YAWL Custom Service that
sends and/or receives messages as required. Meanwhile, a BPMN timer event is
mapped to a YAWL empty task with an attached timer. 3
3 Specifically, a YAWL “on-enablement” timer needs to be used here as the timer is armed as soon
as the task becomes enabled.

