Page 316 -
P. 316
312 M. Adams
Fig. 11.15 Rule detail for Receive Reply
When this conclusion’s exlet is executed, the worklist now lists work items from
all three cases, reflecting a hierarchy of worklets: an Order Fulfillment instance is
suspended, pending completion of worklet instance SendReminder, which itself is
suspended, pending completion of worklet instance CancelOrder. Thus, this exam-
ple shows that worklets can invoke child worklets to any depth. Notice the third part
of the handling process: “remove ancestorCases.” Ancestor Cases are all cases from
the current worklet case back up the hierarchy to the original parent case that began
the exception chain (as opposed to “allCases,” which refers to all currently executing
cases of the same specification as the case that generated the exception). So, when
the CancelOrder worklet completes, the SendReminder instance and the original
parent Order Fulfillment instance are both canceled by the Exception Service as a
result of the “remove ancestorCases” primitive.
11.8 Ripple-Down Rule Sets
A process specification may contain a number of tasks, one or more of which may be
associated with the Worklet Selection Service. For each specification that contains a
worklet-enabled task, the Worklet Service maintains a corresponding set of Ripple-
Down Rules that determine which worklet will be selected as a substitute for the
task at runtime, based on the current case data of that particular instance. Each
worklet-enabled task in a specification has its own discrete rule tree.
Further, one or more exlets may be defined for a specification and associated
with the Worklet Exception Service. A repertoire of exlets may be formed for each
exception type. Each specification has a unique rule set (if any), which may contain
between one and eight tree sets (or sets of rule trees), one for selection rules (used by
the Selection subservice) and one for each of the seven implemented exception types
(see Chap. 5, Sect. 5.4.3.1 for details of the different exception types). Three of those
eight relate to case-level exceptions (i.e., CasePreConstraint, CasePostConstraint
and CaseExternalTrigger) and so each of these will have at most one rule tree in
the tree set. The other five tree sets relate to work item-level events (four exception
types plus selection), and so may have one rule tree for each task in the specification,
that is, the tree sets for these eight rule types may consist of a number of rule trees.