Example Approach

This topic describes an approach for implementing exception handling, where order fallout is managed externally to the TIBCO Order Management - Long Running implementation. This is a good approach where the customer site has an existing order fallout management system, providing GUI windows, and so on. whose functionality can be leveraged. In the rest of this topic we refer to this external error handling system as Exception Management, or EM. Please note this is an example only, and might not be applicable for your particular circumstance.

In this case, Functional exceptions are managed via the Plan Item Failed handler, and Technical exceptions via a separate mechanism.

For Functional exceptions the requirements are to forward all to Exception Management, for an operator to analyze. The possible resolutions are:

  • Retry the Plan Item step, with the possibility to edit input values for the downstream call that failed. Note this is different to retrying the plan item from the beginning. Some process components could internally be orchestrating multiple steps.
  • Continue the Plan Item, with the possibility to edit output values from the downstream call that failed (note this might not be quite the same as the Complete Plan Item Failed handler response, which instructs Orchestrator to complete the plan item. There might be activity that we require the process component to complete after the downstream call but before it completes).
  • Rollback the entire order, performing compensating actions if required.

The architectural approach here is to define a clear separation of concerns, between what TIBCO Order Management - Long Running does, and what Exception Management does. The following diagram shows the approach in the case of Functional exceptions. Also, the data access GetPlanItem and SetPlanItem calls are used to support the functionality of editing input/output values.

Example Functional Exception Handling Overview Architecture


The Example Functional Exception Handling TIBCO Order Management - Long Running Components shows an approach for how this could be implemented within the application:

Example Functional Exception Handling TIBCO Order Management - Long Running Components