Este documento proporciona una descripción general del sistema de reservas de pasajeros (PSS) utilizado por las aerolíneas y explica cómo PNRPump analiza los registros de nombre de pasajero (PNR) para extraer y almacenar datos en vistas. Describe las tablas y columnas clave creadas por PNRPump, incluidas las vistas que contienen información sobre reservas, pasajeros, itinerarios, tarifas y cambios históricos. También explica cómo PNRPump determina las diferentes conexiones de origen
2. 2
PSS Definition
P
S
S
assenger
ervice
ystem
“A passenger service system (PSS) is a series of critical systems used by airlines. The PSS usually comprises an airline
reservations system, an airline inventory system and a departure control system (DCS).” Wikipedia.
Reservation
System
Inventory System
Departure
Control
System
4. “In the airline and travel industries, a passenger name record (PNR) is a record in the database of a computer reservation
system (CRS) that consists of the personal information for a passenger and also contains the itinerary for the passenger, or a group of
passengers travelling together.” Wikipedia
4
PNR Definition
Passenger
Name
Record
5. 5
Reserva en SHARES
Reserva Display Booking Booking History
Display Etkt Etkt History
Display FareQuote FareQuote History
Archivo P2
6. 6
Display Booking
PNR
Punto de Reserva
Pasajero(s)
Itinerario
Teléfono Tarifa
Ticket
Viajero Frecuente
OSI
Forma de Pago
Remarks
14. Es un servicio de Windows estándar.
Horario: al ser un servicio, a medida que llega el archivo P2 es cargado.
Carpeta input P2 files: {Disco}:TeramasPNRPumpInput
Carpeta compartida producción: idc-pnr-pump-01PNRPumpInput
-Servidor dev: HDQ-Teradata-01 -Servidor prod: IDC-Pnr-Pump-01
14
PnrPump
17. 17
V_ Todo
VA_ Versión Actual
VL_ Última version
Vistas PnrPump
*PNR_OD solo tiene la vista V_PNR_OD
18. • Información general de la reserva.
PNR
• Pasajeros asociados a la reserva.
PNR_PASSENGER
• Itinerario de la reserva.
PNR_BOOKING
• Datos de viajero frecuente.
PNR_FREQ_FLYER
• Teléfono asociado a la reserva
PNR_PHONE
• Distintas tarifas asociadas a la reserva
PNR_FARE
18
Vistas PnrPump
19. • Información de documentos (APIS)
PNR_PASSENGER_DOC
• Información de asientos asignados
PNR_SEAT
• Quién y cuándo modificó una reserva
PNR_HIST_CHANGE
• Detalle de modificaciones del itinerario
PNR_HIST_BOOKING
• Detalle de otras modificaciones (ssr,osi,etc)
PNR_HIST_OTHER
• Remarks asociados a la reserva
V_PNR_REMARK
19
Vistas PnrPump cont.
20. • Servicios especiales solicitados en la reserva
PNR_SSR
• Otra información complementaria
PNR_OSI
• Emails encontrados en la reserva
PNR_EMAIL
• Datos de POS y reserva de agencia.
PNR_OA_RECLOC_POS
• Tarjeta de crédito enmascarada utilizada en la emisión
PNR_FOP_CC
• Quién y cuándo dividió una reserva y la reserva hija.
PNR_DIVIDED_PARTY
20
Vistas PnrPump cont.
21. • Quién y cuándo dividió una reserva y la reserva madre
PNR_SPLIT_PARTY
• Información de tiquetes emitidos de la reserva
PNR_TICKETING
• Fecha límite para emitir un tiquete antes de cancelación
PNR_TICKETING_TM_LIMIT
• Forma de pago utilizada para emitir los tiquetes
PNR_ETICKET_FOP
• Punto interno que generó la reserva
PNR_RECEIVED_FROM
• Llaves adicionales capturadas de campos de texto libre.
V_PNR_EXTRA_KEY
• Itinerario de vuelos a nivel de pata
V_SCH_LEG
21
Vistas PnrPump cont.
23. MKTG_CARRIER_CD, MKTG_FLT_NUM and MKTG_COS_CD (Marketing flight columns)
Cuando se crea una reserva codeshare hay dos vuelos asociados a la reserva, el vuelo de marketing y el vuelo operativo. Hay dos
tipos de codeshare:
Codeshare regular es cuando la aerolinea host (HA) es el carrier de marketing, OA (other airline) es el carrier operativo.
MKTG_CARRIER_CD = marketing HA code (host airline code)
MKTG_FLT_NUM = marketing flight number
MKTG_COS_CD = normal COS_CD.
CARRIER_CD = operating OA code
FLT_NUM = operating OA flight number
23
PNR_BOOKING
24. Codeshare revertido es cuando OA (other airline) es el carrier de marketing, HA (host airline) es el carrier operativo. En este caso,
el PNR tiene un remark CDSH que se ve así:
CDSH KL3019R/CM0712T21NOV PTYMGA/MUC1A6AJH23/EINN22110/5722919/AMS/1
El carrier de marketing y el numero de vuelo es KL 3019 y la clase de Servicio de marketing es R. El segmento de itinerario
mostrará CM 0712 como el carrier operative y el numero de vuelo.
MKTG_CARRIER_CD = marketing OA code from CDSH remark (KL en el ejemplo).
MKTG_FLT_NUM = marketing flight number (3019 en el ejemplo)
MKTG_COS_CD = marketing class of service code from CDSH remark (R en el ejemplo).
CARRIER_CD = operating HA code (CM en el ejemplo)
FLT_NUM = operating HA flight number (0712 en el ejemplo).
24
25. 25
DEACT_RSN_CD(Deactivation Reason Code)
Code Meaning
P PNR was purged
R Record locator was reused with a newer PNR creation date.
NS No-show.
N/ Downline leg from no-show.
XM Misconnect.
M/ Downline leg from misconnect.
OS Oversold.
O/ Downline leg from oversold.
XS Segment was cancelled.
(blank) Some change that does not appear in history, may be just a version change.
(other) Ver tabla de Shares Action Codes
CHANGE_TYPE_CD Meaning
AS Add Segment
XS Cancel Segment
SC Status Change
RN Reduce Party
26. 26
Action
Code
Shares Action Code Description
Confirmness Category
BB RESERVE JUMPSEAT* Nonrev
DL WAITLISTED Waitlist
FS HOLDING CONFIRMED Confirmed
HK HOLDING CONFIRMED Confirmed
HL WAITLISTED Waitlist
HN IF NOT HOLDING SELL* Need
HX CANCELLED Cancel
IN IF NOT HOLDING NEED* Need
IS HOLDING CONFIRMED Confirmed
IX IF HOLDING CANCEL Cancel
KK HOLDING CONFIRMED Confirmed
KL CONFIRMED FROM WAITLIST Confirmed
LL ADD TO WAITLIST* Confirmed
MM NON-REV SPACE AVAIL MEAL LISTING Nonrev
NN NEED* Need
NO NO ACTION TAKEN Cancel
NR NO-REC PASSENGER BOARDED Confirmed
NS PASSENGER NO-SHOWED Confirmed
OB OVERBOOKED SUPVR ONLY* Confirmed
OS OVERSOLD (DENIED BOARDING) Cancel
PA WAITLISTED Waitlist
PB WAITLISTED Waitlist
PC WAITLISTED Waitlist
PD WAITLISTED Waitlist
PN PENDING CONFIRMATION* Need
RR HOLDING CONFIRMED Confirmed
SB STANDBY PASSENGER BOARDED Confirmed
SC HOLDING CONFIRMED Confirmed
SS HOLDING CONFIRMED Confirmed
TK HOLDS CONFIRMED Confirmed
UC UNABLE WAITLIST CLOSED Unable
UN FLIGHT DOES NOT OPERATE Unable
US FLIGHT CLOSED - HAVE WAITLISTED* Waitlist
UU WAITLISTED Waitlist
WK HELD SPACE ON CXLD FLT WK
WL HELD WL ON CXLD FLT Waitlist
WN WAS NEEDED Need
XK SEG CXLD NO MSG SENT Cancel
XM CANCELLED DUE TO MISCONNECT Cancel
XR CANCEL RECOMMENDED Cancel
XX CANCEL Cancel
Shares Action Codes
27. El concepto de O & D (Origen y Destino), también conocido en diversas publicaciones de aerolíneas o administración de ingresos
como "viaje", "ruta", O & D u OND, vincula las patas del itinerario de conexión en cadenas que conducen desde un origen de itinerario
a un destino.
PNRPump analiza el itinerario para asignar las patas a tres tipos diferentes de OD. Primero, ordena las patas con DEP_DTMZ para
asegurarse de que estén en el orden correcto. Luego construye OD siguiendo cada cadena de patas conectadas de acuerdo con las
siguientes reglas:
1. El OD verdadero es construido a partir de las patas conectadas sin ninguna otra condición.
2. El OD operativo es como el OD verdadero pero también interrumpe las conexiones e inicia un nuevo OD si el portador de operación
(CARRIER_CD) cambia.
3. El OD de marketing es como el OD real, pero también interrumpe las conexiones e inicia un nuevo OD si cambia el operador de
marketing (MKTG_CARRIER_CD o CARRIER_CD si MKTG_CARRIER_CD está vacío).
4. Solo las partes del mismo nivel de confirmación que se indica en la tabla de Códigos de Acciones de Shares se vinculan juntas en el
mismo OD.
5. Si un OD regresa a un aeropuerto anterior, se rompe en ese punto.
27
O&D
28. 28
Column Type Description
TRUE_OD_SEQ BYTEINT True O&D sequence number in itinerary starting from 1. True OD is based only
on connections.
TRUE_OD_LEG_S
EQ
BYTEINT True O&D leg sequence number in itinerary starting from 1.
TRUE_OD_LEG_C
NT
BYTEINT True O&D number of legs in this O&D.
TRUE_OD_ID INTEGER True O&D ID, a foreign key to the PNR_OD table.
OPER_OD_SEQ BYTEINT Operating O&D sequence number in itinerary starting from 1. Operating OD
consists of connected legs with the same operating carrier.
OPER
_OD_LEG_SEQ
BYTEINT Operating O&D leg sequence number in itinerary starting from 1.
OPER
_OD_LEG_CNT
BYTEINT Operating O&D number of legs in this O&D.
OPER _OD_ID INTEGER Operating O&D ID, a foreign key to the PNR_OD table.
MKTG_OD_SEQ BYTEINT Marketing O&D sequence number in itinerary starting from 1. Marketing OD
consists of connected legs with the same Marketing carrier.
MKTG
_OD_LEG_SEQ
BYTEINT Marketing O&D leg sequence number in itinerary starting from 1.
MKTG
_OD_LEG_CNT
BYTEINT Marketing O&D number of legs in this O&D.
MKTG _OD_ID INTEGER Marketing O&D ID, a foreign key to the PNR_OD table.
TRUE_OD_PRIM_
LEG_IND
INTEGER 0/1 indicator, 1 means this is the primary leg in the true OD that contains it
OPER_OD_PRIM
_LEG_IND
INTEGER 0/1 indicator, 1 means this is the primary leg in the operating OD that contains
it
MKTG_OD_PRIM
_LEG_IND
INTEGER 0/1 indicator, 1 means this is the primary leg in the marketing OD that contains
it
V_PNR_BOOKING
Columnas OD
29. La tabla PNR_EXTRA_KEY contiene datos de llaves adicionales del PNR que son extraídas de campos de texto libre. Esta tabla está
particionada por KEY_TYPE y tiene un índice secundario en KEY_VALUE.
Los patrones que pnr pump buscará son definidos en la tabla PNR_EXTRA_KEY_CONTROL.
29
PNR_EXTRA_KEY
30. 30
Letra Parte del PNR buscada Columna donde esta parte se carga
normalmente
R Remark PNR_REMARK.REMARK_TXT
A Phone with area code in parentheses like
(area code) phone text, for example
(954)3458849
'(' || PNR_PHONE.PHONE_AREA || ')' ||
PNR_PHONE.PHONE_TXT
P Phone text PNR_PHONE.PHONE_TXT
G OSI and SSR text V_PNR_OSI.OSI_TXT and V_PNR_SSR.SSR_TXT
O OSI text V_PNR_OSI.OSI_TXT
S SSR text V_PNR_SSR.SSR_TXT
T Ticket text V_PNR_TICKETING.TICKET_TXT
E ETicket FOP text V_PNR_ETICKET_FOP.FOP_TYPE_CD || ' ' ||
V_PNR_ETICKET_FOP.PAX_NAME
I Internal received from text V_PNR_RECEIVED_FROM.RECEIVED_FROM_TXT
X External OA POS text V_PNR_OA_RECLOC_POS.OA_CITY_CD ||
V_PNR_OA_RECLOC_POS.OA_CRS_CD ||
V_PNR_OA_RECLOC_POS.OA_RAW_POS_DATA
M Email address V_PNR_EMAIL.EMAIL
D Passport number V_PNR_PASSENGER_DOC.DOC_NUM
Q Stored fare text V_PNR_FARE.FARE_TXT
H Historical change V_PNR_HIST_OTHER.CHANGE_TYPE||
V_PNR_HIST_OTHER.CHANGE_TXT
PNR_EXTRA_KEY_CONTROL
Columna Tipe Descripcion
KEY_TYPE CHAR(10) Tipo de llave por ejemplo email
KEY_FINDER_REGEX VARCHAR(250) regular expression para capturar la
llave
KEY_REPLACE_PATTERN VARCHAR(250) Patrón usado para construir
KEY_VALUE, use $1, $2 para grupos
de captura, y $R para recloc
SEARCH_PNR_PARTS VARCHAR(20) Una letra para cada parte del pnr a
buscar: R=remark,A=(area
code)phone,P=phone,G=genfax(OSI/S
SR),O=OSI,S=SSR,T=ticket
text,E=ETicketFOP,I=Internal
Received,X=External OA
POS,M=email,D=APIS/DocumentNum
,Q=Stored fare,H=History change
PATTERN_PRIORITY INTEGER Si hay varios patrones para el mismo
KEY_TYPE, esto determina cual es
registrado si es encontrado, se le da
prioridad a los números más bajos.
VALIDATION_REGEX VARCHAR(250) Si no está vacío, solo se captura el
valor si coincide con este patrón.
POST_TRANSFORM VARCHAR(250) Si no está vacio, es la transformación
que se aplicará al valor. Actualmente
estas son posible:
S/regex/replacement/flags o
T/searchChars/translatedChars/
MULTI_GROUP_SEQ VARCHAR(10) Especifica que una llave se extiende a
multiples elementos del PNR como
remarks, los valores se concatenan
para construir el valor final.
Formato: 1.1, 1.2, 2.1, 2.2, 2.3
ASSOC_REPLACE_PATTERN VARCHAR(250) Patrón usado para construir
ASSOC_TXT, usa $1, $2 para grupos
de captura y $R para recloc.
The codes P and R are generated by PNRPump.
The rest are derived from the booking history section of the PNR. Each record there has a change type code (see PNR_HIST_BOOKING.CHANGE_TYPE_CD).
The NS, XM and OS and the downline N/, M/ and O/ are generated by PNRPump. The system finds the segment in history that matches the deactivated one and is marked with a change type not AS (add segment) but XS/SC/RN. If the action code for that history segment is NS, XM, OS or it’s a downline segment from a history segment that has one of those three, PNRPump assigns those deactivation codes (NS,XM,OR or their downline N/, M/, O/). Otherwise, if the change type is XS, that becomes the deactivation code. Finally, if the change type is SC or RN, the action code becomes the deactivation reason code.
For each kind of OD, legs that share the same ODTYPE_OD_SEQ number belong to that OD, and its ID is in the ODTYPE_OD_ID column as a foreign key to the PNR_OD table.
A regular expression that matches the whole PNR part text field. This uses Java style regular expressions, which are described in https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
To capture values from the text field that will go into KEY_VALUE, you can use parenthesized capturing groups. Later you can refer to them as $1, $2, etc, referring to the group number, or ${name1}, ${name2} for named groups.