This task document provides the complete overview of the Divide functionality with the PNRBFManagement transaction. The PNRBFDivide transaction allows you to divide or split a single booking into two different bookings. Previously, this functionality was available only through terminal emulation transactions. The Dividing bookings functionality is a method for users to manage their bookings with fewer keystrokes than using terminal emulation, and allows you to handle unique booking situations.
Transaction Name:
PNRBFDivide_5
Can this task be performed in a sessionless environment?
No. Dividing a PNR/BF is a multi-step process that requires data from all entries to remain available throughout entire process.
Are the request and response identical on both the Apollo and Galileo systems?
No. See step 2. Dividing the PNR/BF using PNRBFDivide_5 in Section 2.
List any industry-specific knowledge required to understand this task in terms of the specific business process.
The user must understand the multi-step Divide process and the implications of dividing a PNR/BF.
Some data items are split between the original PNR/BF and the newly created PNR/BF. Not all PNR/BF data remains in the original booking, and not all booking fields are moved to the newly created booking.
Special limits or distinct restrictions to the input data that may not be readily apparent.
There are two types of input:
Dividing group name data can be combined with dividing the passenger name because there are elements for each type of data. PNR/BFs that do not contain group name data cannot use group name elements (Galileo CRS only).
Request
Unless otherwise specified, use ALL CAPS in any request data.
The entire Divide process contains multiple steps, which uses multiple transactions: PNRBFManagement (or related transactions), DocProdFareRequote, and PNRBFDivide_5.
The transaction can be ignored at any point up to the final end transact (ET).
1. Retrieving the PNR/BF Using PNRBFManagement
Request
Retrieve the PNR/BF using <PNRBFRetrieveMods>.
Response
The <PNRBFRetrieve> response returns a single PNR/BF. If the response is a similar names list, a PNR/BF must be selected from this list and subsequently displayed.
Notes
- There are several retrieval options using <PNRBFRetrieveMods>; all of these options are listed Section 3.
- After the PNR/BF is retrieved, it cannot be changed, except for dividing through the following steps.
2. Dividing the PNR/BF using PNRBFDivide_5
Request
Submit a Divide request using <BookingDivideMods> with the <Divide> child element.The Divide action divides or splits specific passengers from the original PNR/BF into a new PNR/BF. This new PNR/BF contains passenger-specific items, as well as shared data items that relate to all passengers, such as inventory and SSRs.
Three types of Divide actions can be made this request:
- Dividing unnamed passengers/seats from a group PNR/BF.
- Dividing named passengers from a group or non-group PNR/BF.
- Combining the previous two Divide actions for a group PNR/BF that has both named and unnamed passengers.
A user can divide named passengers on Apollo CRS using the DN code but cannot divide passengers from a group booking. On Galileo CRS, a user can divide passengers from a group or non-group booking using DG or DP codes respectively.
Response
A <PNRBFRetrieve> (2025) response returns the new PNR/BF via the PNRBFManagement transaction, with the names and the PNR/BF data that was split out from the original PNR/BF. You must use PNRBFManagement to redisplay the new child PNR/BF
Notes:
- See the <Divide> description in the Transaction Request for details.
- The new PNR/BF is held in a temporary status until the final End Transact (ET) in Step 6.
3. Verify the fare for the Child PNR/BF Using DocProdFareRequote
RequestVerify the fare by submitting <DocProdFareRequoteMods> (4028 Data Record).
- No elements are required in the <DocProdFareRequoteMods> tag.
Response
A <DocProdFareRequote> response returns the <FareNumInfo> and a <DPOK> to verify the divided child fare.
4. Filing the PNR/BF Using PNRBFManagement
RequestFile the newly created PNR/BF by including:
- A "File" action in the <EndTransactionMods> element.
Note: This action type was added for PNRBFManagement.- A value in the <RetrievedBy> element in the <EndTransactRequest>.
Response
A <PNRBFRetrieve> response returns the original PNR/BF, minus the divided names and name-specific elements, which now reside in the newly created PNR/BF.
Notes
- The File action stores the new, temporary PNR/BF until it can be successfully End Transacted in Step 4. Information pertaining to the new PNR/BF, including the record locator, is located in the <DivideBookingInfo> tag.
- The new PNR/BF cannot be retrieved by any means after it is filed and before it is End Transacted.
5. Verify the fare for the Parent PNR/BF Using DocProdFareRequote
RequestVerify the fare by submitting <DocProdFareRequoteMods> (4028 Data Record).
- No elements are required in the <DocProdFareRequoteMods> tag.
Response
A <DocProdFareRequote> response returns the <FareNumInfo> and a <DPOK> to verify the divided Parent fare.
6. End Transacting Using PNRBFManagement
Request
An <EndTransactRequest> request to end transact modifications to both records. This request is a regular End Transact with an "E" action and a value in the <ReceivedBy> element.
An End Transact is required to complete the Divide process by finalizing:
- The newly created PNR/BF.
- The changes (removed passengers or seats) in the original PNR/BF.
Response
A successful response depends on the End Transact action input in the <EndTransactRequest> / <ReceivedBy> value.
Prerequisite tasks:
See the tables in Section 3 for possible input requests. A current, unchanged PNR/BF must be retrieved before submitting the Divide request using <BookingDivide>.
Expected response:
See the tables in Section 3 for possible output responses. A <PNRBFRetrieve> (2025) response returns the new PNR/BF via the PNRBFManagement transaction, with the names and the PNR/BF data that was split out from the original PNR/BF. You must use PNRBFManagement to redisplay the new child PNR/BF.
Notes:
Error and warning responses:
See the tables in Section 3 for possible error responses. The expected error response will be found in <ErrText> in the <BookingDivide> element.
Follow-on requests:
After Step 6, there are no follow-on requests.
Of important note: of the following four inputs to retrieve a BF or PNR, all must result in a single PNR or BF display. A similar names list would require a subsequent display request resulting in a single PNR or BF display.
Retrieve Booking by Passenger Name
<PNRBFRetrieveMods> |
Terminal Equivalents: |
Apollo: **-TEST |
Galileo: **-TEST |
|
||||
|
Ordering |
KLR |
Min/Max |
XML Tag |
||||
|
A |
BP04 |
1 – 1 |
<CustNameInfo> |
||||
|
B |
BP06 |
0 – 1 |
<RequiredData> |
||||
Retrieve Booking by Record Locator
<PNRBFRetrieveMods> |
Terminal Equivalents: |
Apollo: *RecLoc |
Galileo:*RecLoc |
|
||||
|
Ordering |
KLR |
Min/Max |
XML Tag |
||||
|
A |
BP02 |
1 – 1 |
<PNRAddr> |
||||
|
B |
BP06 |
0 – 1 |
<RequiredData> |
||||
Retrieve Booking by Branch and Name
<PNRBFRetrieveMods> |
Terminal Equivalents: |
Apollo: **B-TEST |
Galileo: **B-TEST |
|
||||
|
Ordering |
KLR |
Min/Max |
XML Tag |
||||
|
A |
BP01 |
1 – 1 |
<TargetCRSInfo> |
||||
|
B |
BP04 |
1 – 1 |
<CustNameInfo> |
||||
|
C |
BP06 |
0 – 1 |
<RequiredData> |
||||
Retrieve Booking by Affiliate and Name
<PNRBFRetrieveMods> |
Terminal Equivalents: |
Apollo: **-A-AFF-JONES |
Galileo: **-A-AFF-JONES |
|
||||
|
Ordering |
KLR |
Min/Max |
XML Tag |
||||
|
A |
BP01 |
1 – 1 |
<TargetCRSInfo> |
||||
|
B |
BP04 |
1 – 1 |
<CustNameInfo> |
||||
|
C |
BP06 |
0 – 1 |
<RequiredData> |
||||
In the above, AFF would be the actual Affiliate Name.
Retrieve Booking by Flight Date and Name
<PNRBFRetrieveMods> |
Terminal Equivalents: |
Apollo: |
Galileo: |
|
||||
|
Ordering |
KLR |
Min/Max |
XML Tag |
||||
|
A |
BP03 |
1 – 1 |
<PNRAirIndex> |
||||
|
B |
BP04 |
1 – 1 |
<CustNameInfo> |
||||
Divide the retrieved booking
<BookingDivideMods> |
Terminal Equivalents: |
Apollo: DN# where # is passenger nbr. |
Galileo: DP# and DG% where # is passenger number and % is number of unnamed passengers. |
Ordering |
KLR |
Min/Max |
XML Tag |
A |
DVI1 |
1 – 1 |
<Divide> |
Verify the fare for the divided Child booking
<DocProdFareRequoteMods> |
Terminal Equivalents: |
Apollo T:V |
Galileo: |
Ordering |
KLR |
Min/Max |
XML Tag |
File the fare of the divided booking
<EndTransactionMods> |
Terminal Equivalents: |
Apollo _F |
Galileo R.P, F, ET |
Ordering |
KLR |
Min/Max |
XML Tag |
A |
ETI1 |
1-1 |
<EndTransactRequest> |
Verify the fare for the divided Parent booking
<DocProdFareRequoteMods> |
Terminal Equivalents: |
Apollo T:V |
Galileo: |
Ordering |
KLR |
Min/Max |
XML Tag |
Create the new divide booking and finalize the original booking without
the divided passengers present.
The response will redisplay the parent locator.
<EndTransactionMods> |
Terminal Equivalents: |
Apollo F, _E |
Galileo R.P, ET |
Ordering |
KLR |
Min/Max |
XML Tag |
A |
ETI1 |
1-1 |
<EndTransactRequest> |
B |
ETI2 |
1-10 |
<GlobalAccessInfo> |
C |
ETI3 |
1-10 |
<EmailAddressSelection> |
<PNRBFRetrieve> |
If PNR/BF found |
|
Ordering |
KLR |
Min/Max |
XML Tag |
|
|
A |
CTRL |
1 – 1 |
<Control> |
|
|
B |
BP07 |
0 – 1 |
<HeaderLine> |
|
|
C |
BP08 |
0 – 1 |
<GenPNRInfo> |
|
|
D |
BP09 |
0 – 1 |
<PostScript> |
|
|
E |
BP10 |
0 – 99 |
<LNameInfo> |
|
|
F |
BP12 |
0 – 99 |
<FNameInfo> |
|
|
G |
BP47 |
0 – 99 |
<PsgrsName> |
|
|
H |
BP14 |
0 – 99 |
<FreqCustInfo> |
|
|
I |
BP16 |
0 – 99 |
<PhoneInfo> |
|
|
I |
BP32 |
0 – 1 |
<TkArrangement> |
|
|
I |
BP33 |
0 – 1 |
<TAUTkArrangement> |
|
|
I |
BP34 |
0 – 1 |
<TAWTkArrangement> |
|
|
I |
BP35 |
0 – 1 |
<TLTkArrangement> |
|
|
J |
BP36 |
0 – 1 |
<TAMkArrangement> |
|
|
J |
DPP0 |
0 – 1 |
<CreditCardFOP> |
|
|
J |
DPP1 |
0 – 1 |
<CheckFOP> |
|
|
K |
DPP9 |
0 – 1 |
<OtherFOP> |
|
|
L |
BP17 |
0 – 1 |
<AddrInfo> |
|
|
M |
BP18 |
0 – 1 |
<DeliveryAddrInfo> |
|
|
M |
IT01 |
0 – 99 |
<AirSeg> |
|
|
M |
IT02 |
0 – 99 |
<AirSegOpAirV> |
|
|
M |
IT16 |
0 – 99 |
<AirSegDetail> |
|
|
M |
IT13 |
0 – 99 |
<ARNK> |
|
|
M |
IT03 |
0 – 99 |
<HtlSeg> |
|
|
M |
IT04 |
0 – 99 |
<HtlSegOptFlds> |
|
|
M |
IT05 |
0 – 99 |
<CarSeg> |
|
|
M |
IT06 |
0 – 99 |
<CarSegOptFlds> |
|
|
M |
IT07 |
0 – 99 |
<NonAirSeg> |
|
|
M |
IT09 |
0 – 99 |
<DuePaidInfo> |
|
|
M |
IT10 |
0 – 99 |
<FlygTaxiSeg> |
|
|
M |
IT11 |
0 – 99 |
<TourSeg> |
|
|
M |
IT12 |
0 – 99 |
<CruiseSeg> |
|
|
N |
IT14 |
0 – 99 |
<TrainSeg> |
|
|
O |
DPR1 |
0 – 99 |
<ItinRmk> |
|
|
P |
DPR1 |
0 – 99 |
<ItinRmk> |
|
|
P |
ST01 |
0 – 99 |
<SeatSeg> |
|
|
Q |
ST02 |
0 – 9801 |
<SeatAssignment> |
|
|
R |
BP19 |
0 – 255 |
<OSI> |
|
|
R |
BP20 |
0 – 255 |
<NonProgramaticSSR> |
|
|
R |
BP21 |
0 – 255 |
<ProgramaticSSR> |
|
|
S |
BP22 |
0 – 255 |
<ProgramaticSSRText> |
|
|
T |
BP23 |
0 – 1 |
<CustID> |
|
|
U |
BP24 |
0 – 1 |
<ProfileClientFileAssoc> |
|
|
V |
BP25 |
0 – 3 |
<CustomCheckRules> |
|
|
W |
BP26 |
0 – 255 |
<GenRmkInfo> |
|
|
X |
BP27 |
0 – 99 |
<VndRecLocs> |
|
|
Y |
BP28 |
0 – 99 |
<VndRmk> |
|
|
Z |
DPIR |
0 – 99 |
<InvoiceRmk> |
|
|
AA |
BP29 |
0 – 99 |
<QMinder> |
|
|
EE |
DPIR |
0 – 99 |
<InvoiceRmk> |
|
|
FF |
BP40 |
0 – 99 |
<Email> |
|
|
GG |
BP41 |
0 – 1 |
<CorporateID> |
|
|
HH |
BP42 |
0 – 1 |
<DividedBookingInfo> |
|
|
II |
BP45 |
0 – 99 |
<AdditionalID> |
|
|
JJ |
BP46 |
0 – 99 |
<FreqCustInfoEx> |
|
<BookingDivide> |
Terminal Equivalents: |
Apollo: Divide error messages |
Galileo: Divide error messages |
Ordering |
KLR |
Min/Max |
XML Tag |
A |
EROR |
1 – 1 |
<ErrText> |
<BookingDivide> |
Terminal Equivalents: |
Apollo: Divide error messages |
Galileo: Divide error messages |
Ordering |
KLR |
Min/Max |
XML Tag |
A | DPFI | 1 – 1 | <FareNumInfo> |
B |
DPOK |
1 – 1 |
<DPOK> |