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:
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": [
{
"service": "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.