Page 314 -
P. 314
310 M. Adams
Fig. 11.13 Workflow Specifications screen, Order Fulfillment instance running (detail)
ification is currently executing. The two buttons “Raise Exception” and “Reject
Worklet” are worklist extensions; the first appears only when the Exception Service
is configured as “enabled” and the second when the Worklet Service is loaded.
When the “Raise Exception” button is clicked, a Raise Case Level Exception
screen is displayed. This screen is a member of the Worklet Service’s Java Servlet
Pages (jsp). Before this screen is displayed, it directly calls a method of the Excep-
tion Service over HTTP and retrieves from the rule set for the selected case the list
of existing external exception triggers (if any) for the case’s specification. This list
contains all of the external exception “triggers” that were either conceived when the
specification was first designed or added later as new kinds of exceptional events
occurred and were added to the rule set. Notice that at the bottom of the list, the
option to add a New External Exception is provided – that option is explained in
detail in Sect. 11.10.2. For this example, we will assume that a client has requested
a change in the delivery date and time. Selecting that exception trigger passes it
as the trigger value to the specification’s CaseExternalException rule tree and the
conclusion for that trigger’s rule (i.e., the exlet) is invoked by the service as an
exception handling process for the current case.
After the selection is made, the user’s worklist will show that the parent case’s
active work items have been suspended and the first work item of the compen-
satory worklet, Update Delivery Appointment, has been enabled. Once the worklet
is completed, the parent case is continued (via the final primitive of the exlet).
Item-level external exceptions work in much the same way, and can be raised
from the worklist by selecting the relevant work item, and then clicking the Raise
Exception button (another extension to the worklist provided by the Exception Ser-
vice when “enabled”), which invokes the Raise Item Level Exception screen. From
there, the procedure is identical to that described for case-level exceptions, except
that the item-level external exception triggers, if any, will be displayed.
External exceptions can be raised at any time during the execution of a case –
the way they are handled may depend on how far the process has progressed via the
defining of the conditional expressions of the nodes in the appropriate rule tree or
trees that query changes in data values and/or state changes of work items within
the case instance.