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
   165   166   167   168   169   170   171   172   173   174   175