Skip to main content

Extension point abort

Abort

Red Apps can abort workflow execution in extension points by returning ABORT status:

{
    "Status": "ABORT"
}

Whenever this happens, an extension point abort event is triggered and appropriate info is shown in the response area:

workflow canceled info

Abort event

This event is triggered after flow execution has been aborted in an extension point. It enables Red Apps to define custom logic to be run after the workflow is aborted so Red App does not lose control. In order to use this event, you must import the event identifier first:

import {EXTENSION_POINT_ABORT_EVENT} from 'sabre-ngv-sdk-events/events';

In addition, a data model is also available. A data model interface is available in the public API:

import {ExtPointAbortEventData} from 'sabre-ngv-sdk-events/interfaces/ExtPointAbortEventData';

Callback can be registered in several ways. The easiest way to use is EventBusService:

const eventBusService: EventBusService = getService(EventBusService);

eventBusService.listenToEventBus(EXTENSION_POINT_ABORT_EVENT, (data: ExtPointAbortEventData) => {
    // Custom logic
});

Abort event data

Abort event data available in the event contains:

  • ID of the extension point that has been aborted

  • Data model available in the extension point that has been aborted

  • Class associated with extension point data model

Example abort event data:

{
    "extpId": "dynamo.air.pricing:beforePricing",
    "data": {
        "AirPriceRq": {
            "CheckForLowerAvailableFare": false,
            "CheckForLowerAvailableFareAndRebook": false,
            "CheckForLowerFareRegardlessOfAvailability": false,
            "Retain": false
        }
    },
    "dataType": "pos.CommandMessageAirPriceRq"
}

Abort info configuration

You can hide workflow canceled info using abort info configuring.

You can specify default abort info configuration for each extension point service in manifest.json file.

Example configuration that hides workflow canceled info:

  "extensions": {
    "dynamo.air.pricing:beforePricing": [
      {
        "services": [
          "com-sabre-redapp-example3-web-wf-extension-web-module-AirPriceBeforeAbortExtp"
        ],
        "timeout": 30,
        "defaultTimeoutAction": "CONTINUE",
        "abortInfo": {
          "hide": true
        }
      }
    ]
  }

If not defined abort info Hide property defaults to false.

You can overwrite the configuration from manifest.json file in the extension point response.

Example extension point response that overwrites the value of hide property to false:

{
    "Status": "ABORT",
    "AbortInfo": {
        "Hide": false
    }
}
Note
AbortInfo configuration is taken into account only in case of the ABORT status.

Example

You can see abort event usage in com.sabre.redapp.example3.web.wf.extension sample.