If one or more flights could not be booked, the whole flight trip is canceled and any flights that were booked successfully must be canceled, too. For this purpose, a cancellation message must be created and sent for each flight successfully booked. Since the cancellation messages are not dependent on each other, they can be sent simultaneously to the relevant airlines.
For this purpose, insert a block with a ParForEach in the failed-booking branch. The block is executed for the list of successfully booked flights. Define a container element for the current line in the list, in other words, the booking confirmation for an individual flight. You define the container element as a local element for the block. This is necessary so that a separate booking confirmation can be processed for each block instance.
Insert a transformation step in the block. This creates a cancellation message for each successfully booked flight. Define a local container element for this cancellation message. The interface mapping specified in the transformation step sets the flight booking number from the confirmation sent by the airline as the flight booking number in the cancellation message (BookingNumber). The mapping also maps the airline ID from the confirmation message to the airline ID in the cancellation message.
A subsequent send step sends the cancellation messages to the relevant airlines. The receiver of the cancellation message is always the airline that sent the booking confirmation. It is therefore possible to determine the receiver from the header data of the confirmation message.
The definition of the integration process is now complete. To configure it in the Integration Directory, activate the change list that contains the integration process.
...
1. In the Otherwise branch, insert a block () after the SendFailureNotification send step:
○ Step Name: CancelBookedFlights
○ Mode: ParForEach
○ Multiline Container Element: ConfirmedList (Interface Variable)
2. Define a local container element for the current line in the list of booking confirmations.
In the editing area, select the CancelBookedFlights block and define the container element in the object area.
○ Name: ReceivedConfirmation
○ Category: Abstract Interface
○ Type: FlightBookingOrderConfirmation_Abstract
○ Container: CancelBookedFlights
3. Define a local container element for the cancellation message:
○ Name: AirlineCancel
○ Category: Abstract Interface
○ Type: FlightBookingOrderCancelatonRequest_Abstract
○ Container: CancelBookedFlights
4. In the block properties, double-click the Current Line field. In the expression editor, select the ReceivedConfirmation container element you just created.
5. Insert a transformation step () into the block.
○ Step Name: CreateCancelationMessage
○ Interface Mapping: CreateBookingOrderCancelation_BPM
○ Source Message: ReceivedConfirmation (Interface)
○ Target Message: AirlineCancel (Interface)
6. Insert a send step () after the transformation step.
○ Step Name: SendCancelation
○ Message: AirlineCancel (Interface Variable)
○ Receiver From: Response to Message
○ Response to Message: ReceivedConfirmation (Interface)
7. In the navigation area, choose the Change Lists tab page.
8. Navigate to your software component version and then to Standard Change List.
9. In the context menu, choose Activate.
The change list with the objects is displayed.
10. Choose Activate.
You have now finished defining the integration process. You can compare your integration process with the shipped example process and the corresponding scenario. Finally, configure and execute the scenario. More information: Booking a Connecting Flight.
More Information: