Page 345 -
P. 345
12 The Declare Service 341
executed. For example, users can select to execute an instance of model Model C for
task D 3 . Because the “declaremodel” data element is also an output data element
in task D 3 , DECLARE will return the name of the executed model to YAWL. In this
manner, YAWL users are informed about the subprocess that was executed for the
decomposed YAWL task.
12.10 Conclusions
Depending on the nature of a business process, a higher or lower degree of flexibility
is needed when it comes to workflow support. For example, while procedural YAWL
processes are appropriate for many of the more structured processes encountered in
practice, they may be less suitable for less structured processes (such as our TL
and LTTL subprocesses) that require the flexibility of declarative workflow models.
Moreover, it might be the case that one business process contains some subpro-
cesses that require the procedural approach and some subprocesses that require the
declarative approach.
The Declare Service enables combining the two approaches by allowing for arbi-
trary decompositions of procedural YAWL and declarative DECLARE workflows.
This is achieved by allowing the decomposition of both YAWL tasks into DECLARE
workflows, and DECLARE tasks into YAWL nets. This way the workflow designer is
not forced to make a binary choice between declarative and procedural workflows.
Instead, an integration can be achieved, where parts of the workflow that need a high
degree of flexibility are supported by declarative DECLARE models and parts of the
processes that need centralized control of the system are supported by more pro-
cedural YAWL models. Note that YAWL also provides flexibility via the so-called
Worklet Service. The Worklet Service (cf. Chap.11) offers a different kind of flex-
ibility that is complementary to DECLARE. As the Declare Service and the Worklet
Service are embedded in a similar manner, it is possible to arbitrarily mix procedural
YAWL models, declarative models, and worklets.
Exercises
Exercise 1. Tasks bless, pray, curse,and become holy are four tasks in the Reli-
gion process. Users of this process must obey two important rules. First, one should
pray at least once. Second, every time one curses, one must eventually pray for for-
giveness afterwards. Develop a model in DECLARE for this process using ConDec
constraint templates.
Exercise 2. Consider the following four scenarios:
(a) hbecome holy; curse; blessi
(b) hpray; bless; prayi

