Page 170 -
P. 170
160 M. Adams and N. Russell
Table 5.3 Summary of Cause Interface Selection Action returned
service actions
Work item B Case and item Worklet
enabled context data
Internal X Exception type Exlet
exception and case and item
context data
External – Exception type Exlet
exception and case and item
context data
nominated tasks in a process, the Exception Service, when enabled, is invoked for
every case and task executed by the enactment engine, and will detect and handle up
to ten different kinds of process exceptions (those exception types are described in
Sect. 5.4.3). Table 5.3 summarizes the differences between the two subservices (the
interfaces are described in the next section).
To construct an exlet, a process designer may choose from various actions (such
as canceling, suspending, completing, failing, and restarting) and apply them at a
work item, case, and/or specification level. And, as the exlets can include compen-
satory worklets, the original parent process model only needs to reveal the actual
business logic for the process, while the repertoire of exlets grows as new exceptions
arise or different ways of handling exceptions are formulated.
An extensible repertoire of exlets is maintained by the service for each type of
potential exception within each workflow specification. Each time the service is
notified of an exception event, either actual or potential (i.e., a constraint check), the
service first determines whether an exception has in fact occurred, and if so, where a
rule tree for that exception type has been defined, makes a choice from the repertoire
based on the type of exception and the data attributes and values associated with the
work item/case, using a set of rules to select the most appropriate exlet to execute
(cf. Chaps. 4 and 11).
If an exlet that is executed by the Exception Service contains a compensa-
tion action (i.e., a worklet to be executed as a compensatory process), then as for
a worklet launched by the Selection Service, it is run as a separate case in the
enactment engine, so that from an engine perspective, the worklet and its “parent”
(i.e., the process that invoked the exception) are two distinct, unrelated cases.
Figure 5.6 shows the relationship between a “parent” process, an exlet repertoire,
and a compensatory worklet, using an Organize Concert process as an example. As
a compensatory worklet is launched as a separate case, it may have, in turn, its own
worklet/exlet repertoire, so that a hierarchy of executing worklets may sometimes
exist.
Any number of exlets can form the repertoire of an individual task or case. An
exlet may be a member of one or more repertoires – that is, it may be reused for
several distinct tasks or cases within and across process specifications. Like the
selection service, the exception handling repertoire for a task or case can be added