Implementing this interface allows to execute transactional hooks.
Hook and deadline features are requiring the implementation of TxHook or Hook interface.
Within xpdl definition, the hook feature is specified within
external attributes of Activity element.
There is two parameters defining the hook:
- the event Name (ie. for hook on task: task:onReady, task:onStart, task:onFinish, task:onSuspend,
task:onResume and for hook on automatic activity: automatic:onEnter)
- the name of the class that implements this interface
For deadline feature, name of the class that implements this interface is specified within XPDL Deadline element.
The event name (internal to the engine) is ON_DEADLINE.
This TxHook interface is intended to use APIs acceded by the APIAccessor(provided
into parameters of the execute() method) that can do write operations into the engine database:
-
org.ow2.bonita.facade.RuntimeAPI,
-
org.ow2.bonita.facade.ManagementAPI,
-
org.ow2.bonita.facade.CommandAPI.
If an exception occurs the exception is raised by the engine and the transaction is not committed (rollback).
Note: In the opposite if implementing
Hook interface the exception is caught by the engine
and no rollback is performed.
If at process definition (with proEd) the designer has chosen: hook with rollback,
implementing this interface for the hook is well suited.
If the designer has chosen: hook without rollback,
implementing this interface for the hook is
not authorized by the engine (will generate an exception).