Welcome to the Worklet Dynamic Process Selection and Exception Handling Service for YAWL

This service provides two discrete but related features: A dynamic selection service and a dynamic exception handling service.

The Selection Service provides the ability to substitute a workitem in a YAWL process with a dynamically selected "worklet" - a discrete YAWL process that acts as a sub-net for the task.

A repertoire (or catalog) of worklets is maintained. Each time the service is invoked for a workitem, a choice is made from the repertoire based on the data passed with the workitem, using a set of rules to determine the most appropriate substitution.

The workitem is checked out of the YAWL engine, then the selected worklet is launched as a separate case. The data inputs of the original workitem are mapped to the inputs of the worklet. When the worklet has completed, its output data is mapped back to the original workitem, which is then checked back into the engine, allowing the original process to continue.

Worklets can be substituted for atomic tasks and multiple-atomic tasks. In the case of multiple tasks, a worklet is launched for each child workitem. Because each child workitem may contain different data, the worklets that substitute for them are individually selected, and so may all be different.

The Exception Service leverages off the worklet framework to also provide support for the myriad exceptions that may occur during the execution of any process instance.

The service addresses the traditional problems of exception events occurring during the execution of rigidly defined static process instances by allowing you to define worklets that will act as exception handling processes for parent workflow instances when certain events occur. Rules are defined in much the same way as for the Selection Service, but with added features that enable you to pause, resume, cancel or restart the task, case, or all cases of a specification, that triggered the exception.

Because the service allows you to define exception handlers for all exception events, and even to add new handlers at runtime, all exception events are able to be captured “on-system”, so that the handler is there for all future occurrences of a particular event for the same context. And, since the handlers are worklets, the original parent process model only needs to contain the actual business logic for the process, while the repertoire of handlers grows as new exceptions arise or different ways of handling exceptions are formulated.

Note that, while the Selection Service is linked explicitly to tasks as defined in the YAWL process editor, the Exception Service is either enabled or disabled (on or off); when it is enabled, it manages exception handling for all instances executed by the engine - there is no need to explicitly link a process to the service. Also, the Selection and Exception Services can be used in combination within particular case instances to achieve flexibility and exception handling simultaneously.

Please read the user manual for more information.

YAWL is distributed under the YAWL licence.