Page 179 -
P. 179

5  Exception Handling                                           169
                           compensatory processes, or worklets, and so at any point there may be several
                           worklets operating on the upper tier for a particular case instance.



                           5.4.4 Local and Global Perspectives on Exception Handling


                           The Worklet Exception Service operates from both local and global perspectives. It
                           is important at this point to clearly distinguish between them.
                              The Worklet Service deals with both flexibility and exception handling locally,
                           in that additions to a repertoire are instigated by the person charged with performing
                           the task (or an administrator for non-human resourced tasks). With each addition,
                           a rule node is added, which becomes, in effect, a localized exception to the more
                           general parent rule – the use of the term “exception” here refers to an “exception
                           to the rule,” rather than that which refers to a control-flow deviation during process
                           instance execution. This locality of change is an essential benefit of the approach.
                           So, in this regard, deviations referring to both flexibility and exception handling are
                           created locally and their effects are propagated upwards.
                              In addition, the Worklet Service also provides the ability to handle exceptions at a
                           global level – that is, at case or specification level. As discussed in Sect. 5.4.3.1, case
                           level exceptions based on pre- and post-constraints can occur when a case starts and
                           completes. As well, externally triggered exceptions can be raised at the case level at
                           any time during an instance’s life cycle. Thus, these kinds of exceptions are raised
                           at a global level and their effects are propagated downwards.
                              Further, any exception, no matter whether it was raised locally or globally, can
                           be applied to affect the task, case, and/or specification levels, as the exception and
                           the context of the instance demand.
                              Thus, the Worklet Service provides support for deviations that occur at both local
                           and global levels; they can be triggered automatically (via RDRs) and/or manually
                           (via a selection from a list when externally triggered); and they are able to apply
                           their effects at any execution level.
                              Consequently, the scope of the worklet solution provides improved efficiencies
                           over manual handling systems in a vast number of cases. But, importantly, it also
                           provides for manual handling in those cases where it is appropriate.
                              A critical position of the worklet approach can be briefly summarized thus:
                              If, for a particular case having a certain context, a method of handling an exception at a
                              particular point in the life-cycle of the case has been previously defined and deemed the
                              most suitable method, then it is appropriate to assume that, given another instance of the
                              same case which has exactly the same context, that same exception handling method can be
                              correctly applied to that instance.

                              There can be only two situations where such a position does not apply: (1) the
                           context of a new case instance is not exactly the same as the one for which the
                           handler was previously defined; or (2) an improved way of handling the exception
                           is conceived. Of course, if an appropriate handler has not been previously defined,
   174   175   176   177   178   179   180   181   182   183   184