-
Notifications
You must be signed in to change notification settings - Fork 140
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
62143a1
commit 64b5e42
Showing
6 changed files
with
135 additions
and
2 deletions.
There are no files selected for viewing
41 changes: 41 additions & 0 deletions
41
api-reference/direct-connects/hotel-service-4/images/diagrams/singlepnr/hotel-book.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
@startuml hotel-book | ||
|
||
participant "User" as user | ||
|
||
participant ConcurHotel as cHotel #Lightcyan | ||
participant ConcurGDS as cGDS | ||
participant "CHSSupplier" as supply #LightBlue | ||
participant "GDS" as gds #LightYellow | ||
participant "OtherSupplierSource" as other #LightYellow | ||
|
||
|
||
== Book == | ||
user -> cHotel++: Book request | ||
cHotel -> cHotel: Determine if PNR is managed by Concur \n for this CHS connector | ||
alt Concur Managed PNR | ||
cHotel -> cGDS++: Lookup existing PNR or \n create a new shell PNR in GDS \n and lock | ||
alt PNR does not exist | ||
cGDS -> gds: Create a new shell PNR \n (PNR with misc segment) | ||
gds --> cGDS--: New PNR | ||
end | ||
cGDS --> cHotel--: PNR Reclocator | ||
end | ||
cHotel -> supply++: Book hotel request with PNR RecLocator | ||
alt Source is GDS | ||
supply -> gds: Add active segment to PNR pointed by RecLocator | ||
else Other direct connect source | ||
supply -> other: Book hotel request | ||
supply -> gds: Add passive segment to PNR pointed by RecLocator | ||
note left: Needs to meet Concur's standard passive format | ||
end | ||
supply -> gds: Add remarks to PNR | ||
supply --> cHotel--: Book response with flag denoting if "ActiveSegmentInConcurPNR" | ||
cHotel -> cGDS: Release PNR Lock | ||
alt "ActiveSegmentInConcurPNR" is true | ||
cHotel -> cHotel: Store booking as GDS (for read/cancel) | ||
else "ActiveSegmentInConcurPNR" is false | ||
cHotel -> cHotel: Store booking as CHS (same as today) | ||
end | ||
cHotel --> user--: Booking Confirmation | ||
|
||
@enduml |
35 changes: 35 additions & 0 deletions
35
api-reference/direct-connects/hotel-service-4/images/diagrams/singlepnr/hotel-cancel.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
@startuml hotel-cancel | ||
|
||
participant "User" as user | ||
|
||
participant Concur as concur #Lightcyan | ||
participant "CHSSupplier" as supply #LightBlue | ||
participant "GDS" as gds #LightYellow | ||
participant "OtherSupplierSource" as other #LightYellow | ||
|
||
|
||
== Cancel GDS sourced booking == | ||
user -> concur++: Cancel booking/trip | ||
concur -> gds++: Cancel booking/trip | ||
gds --> concur--: Ack | ||
concur -> concur: Update storage | ||
concur -> supply++: Cancel booking (notification- includes cancellation no.) | ||
supply -> supply: Update booking status | ||
supply --> concur--: Cancel booking update response | ||
concur --> user: Cancel confirmation with cancellation no. | ||
break | ||
|
||
== Cancel direct-connect sourced booking == | ||
user -> concur++: Cancel booking | ||
concur -> supply++: Cancel booking (request) | ||
supply -> other: Cancel with direct-connect source | ||
other --> supply--: Cancel response | ||
supply -> gds: Delete passive segment | ||
gds --> supply--: Ack | ||
supply -> concur--: Cancel response with cancellation no. | ||
concur -> concur: Update storage | ||
concur --> user--: Cancel confirmation with cancellation no. | ||
|
||
@enduml | ||
|
||
|
Binary file added
BIN
+91.3 KB
...erence/direct-connects/hotel-service-4/images/diagrams/singlepnr/hotel_book.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+58.9 KB
...ence/direct-connects/hotel-service-4/images/diagrams/singlepnr/hotel_cancel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
57 changes: 57 additions & 0 deletions
57
api-reference/direct-connects/hotel-service-4/v4.single-pnr-solution.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Single PNR Solution For CHS | ||
|
||
**Note: This feature is not yet generally available.** | ||
|
||
## Overview | ||
This document describes the design of "Single PNR Solution" for Hotel's direct connect offering of Custom Hotel Source (CHS) program. | ||
|
||
For bookings made using CHS today, if passives are enabled, we have two PNRs associated with each hotel booking. Concur creates and manages a PNR in the appropriate GDS for the trip and adds a passive segment to that PNR with details of the hotel booking made by the CHS supplier. The CHS supplier also creates a PNR in the GDS with the active segment. Duplication of PNRs not only causes sync and operational issues but also adds cost for each booking. Hence, in cooperation with CHS suppliers, we have come up with a solution where there is only one PNR created for the CHS hotel booking. This solution will be applicable to both GDS and non-GDS content booked through the CHS supplier. | ||
|
||
### Solution | ||
|
||
At a high-level, solution consists of: | ||
- Concur passes existing PNR locator or create a shell PNR (if hotel is first booking) to HSv4 endpoint for hotel booking | ||
- TMC/Supplier confirms the hotel booking with their source (GDS or direct-connect) and work on the PNR (segment, remarks etc.) and release it back to Concur. If source is GDS, supplier will create an active segment while if source is direct-connect, supplier will create a passive segment. | ||
- Concur takes the PNR back and perform finishing. | ||
- If GDS booking ("active" segment added by supplier) - all post-booking operations like `Retrieve` and `Cancel` will be managed as `GDS` booking within Concur. That is, HSv4 read and cancel endpoints will not be used and instead Concur will work directly with GDS to read/cancel booking. | ||
- If supplier supports `Modify` flow, Concur will use HSv4 endpoints to allow supplier to reshop and modify the booking. | ||
|
||
## Requirements from TMC/Supplier for this solution | ||
- TMC/Supplier will use standard active and passive segment format as required by Concur. | ||
- TMC/Supplier will have option to manage their own passive segment or use current Concur managed solution for passives. If they choose to manage their own passives, they will need to: | ||
- Disable passive segment creation for CHS bookings to avoid duplicate passive creation for non-gds hotels. | ||
- Create new passive segment in Concur created PNR along with booking with their direct connect source (as detailed in the design). | ||
- Cancel passive segment as part of their `cancel` flow along with canceling the booking with their direct connect source. | ||
|
||
## Design | ||
|
||
### Booking flow | ||
|
||
![](images/diagrams/singlepnr/hotel_book.png) | ||
|
||
Above sequence diagram shows the flow for booking a hotel using CHS supplier that supports single PNR solution. Highlights of the flow are: | ||
- CHS supplier will never create a GDS PNR with this solution. During booking request, Concur looks up already existing PNR associated with the Trip and travel config used or creates a new shell PNR and associates with the trip. | ||
- Concur obtains an internal lock on the PNR (for 60 secs) and sends the hotel booking request to supplier with the PNR locator. | ||
- If supplier is booking with GDS, they will use this PNR locator to add the active segment to the PNR. If rate to book belongs to direct connect (e.g. Booking.com/Expedia), supplier will book with that direct connect and add a passive segment to PNR referenced by this record locator. | ||
- Once booking is done, Concur will release the PNR lock making PNR available for further changes e.g. adding Air/Car bookings, finishing etc. | ||
- If supplier takes longer than 55 secs, booking transaction will time out. | ||
- If PNR lock times out, lock will be released automatically to allow further actions on this PNR. In order to prevent "Simultaneous access" errors for user, it is necessary for supplier to honor this timeout and stop working on PNR after this. | ||
- Booking response from supplier is expected to have `ActiveSegmentInConcurPNR` flag to indicate if the active segment was added to Concur PNR or not. This flag will be used to decide if Concur should treat this booking as GDS booking or direct-connect booking for post-booking functions. | ||
|
||
### Cancel flow | ||
|
||
As mentioned earlier, if `ActiveSegmentInConcurPNR` is set true booking is treated as GDS booking and Concur will manage cancel flow directly with GDS. Though, CHS supplier will still be notified using HSv4's [cancel endpoint](./v4.endpoints.html#cancel-). Note that invocation of `cancel endpoint` is only for notification to allow CHS supplier to perform any cancel related processing in their system and hotel booking with GDS should be already canceled at that time. | ||
|
||
![](images/diagrams/singlepnr/hotel_cancel.png) | ||
|
||
#### GDS Booking | ||
- User initiates cancel request and Concur cancels the active segment/trip in GDS and updates storage with `Canceled` status with cancellation no. | ||
- Concur sends `cancel` request to CHS supplier with cancel number. Note here that this request is just acting as a notification to CHS supplier as booking is already canceled in GDS. | ||
- Above `cancel` request can trigger any post-booking processing in CHS supplier system. | ||
|
||
|
||
#### Direct Connect Booking | ||
- User initiates cancel request and Concur forwards this cancel request to CHS supplier. | ||
- Supplier sends cancel request to their direct connect source and also deletes any related passive segment if they created one for the booking. | ||
- Cancel response with cancellation no. is returned to Concur which is then stored and displayed to user. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters