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.
   311   312   313   314   315   316   317   318   319   320   321