Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

Introducción

Kiu PNR Storage es un servicio para el envío de PNRs que permitirá mantener sincronizado con el PSS el estado de todos los PNR en tiempo real. Cada vez que un PNR es creado, modificado, dividido o purgado se enviará un archivo JSON con el o los PNRs afectados.

Estructura del archivo

El nombre del archivo json generado tiene el prefijo PNR_ y el timestamp en UTC, quedando el siguiente patrón PNR_YYYYMMDDTHHMMSSFFFZ.json, por ejemplo PNRS_20230512T105030923Z.json

Internamente, el archivo contiene una lista de PNR, donde cada objeto del array representa un PNR modificado y la estructura del mismo está representada en el schema de la api get_booking_information

Ejemplo:

Code Block
{
  "pnr_list": [
                       {objetos json de PNR según schema api get_booking_information}
                     ]
}

Al schema de la api mencionada solo se le agrega un nuevo elemento “event_details” que agrega data da detalles sobre el evento que generó la modificación. Abajo describimos al estructura y las consideraciones en cada evento en particular.Asi queda la esctructura de cada PNR informado:quedando la estructura de la siguiente manera

Code Block
{
  "pnr_list": [
                {     
                  “event_details”: {},
                  "record_locator_version_information": {},
                  "record_locator_information": {},
                  "passengers_information": {},
                  "flights_segment_information": {},
                  "flights_origin_destination_information": {},
                  "contacts_list": [],
                  ...
                  "pricing_information": {}
                },
                {...}

...


              ]
}

Estructura event_details

El objeto event_details tiene la sieguiente estrucura:

Key

Tipo Dato

Valores posibles

Descripción

Ejemplo

Observaciones

system_from

string(2:3)

C1 o código operador de aerolinea, depende si es terminal de PSS o de Kiu GDS

Z8

company

string(4)

Código único de la empresa, aerolinea o agencia, dentro de Kiu

00Z8

channel

string

HOST, GDS

HOST

subchannel

string

En el caso de GDS es el código de gds (C1, 1A, etc). En el caso de HOST, es el valor que se configuró en la tabla de oficinas, comando DNO / BI STAT.SUB-CHANNEL

SALES OFFICE

device

string(0:10)

Dispositivo de Kiu que generó la transacción

LPB00Z8205

agent

string(0:9)

Dispositivo de Kiu que generó la transacción.

HDQ00Z8SM

pnr_action

string

CREATE, MODIFY, SPLIT, DELETE

Identifica si el evento es de creación o modificación o división

CREATE

El SPLIT se aplicará a los 2 PNR (el creado y el modificado en ese proceso).

transaction_type

string

DIRECT, INDIRECT

Identifica si la modificación sobre el pnr se da por una intervención directa de un usuario/api o si la modificación es indirecta relacionada a otro proceso.

origin

string

  • AGENT

  • WEBSERVICES

  • FROM_EXTERNAL_MESSAGE

  • INTERNAL_PROCESS

  • FROM_EXTERNAL_APPLICATION

Identifica el origen que desencadena la modificación relacionado al transaction_type.

Si es DIRECT, este campo podrá ser:

AGENT → cambio desde KiuCommand/algunos escenarios de click)

WEBSERVICES → cambio desde WS/APIS/ algunos escenarios de click

FROM_EXTERNAL_MESSAGE → procesamiento de mensajeria TTY Type B/Type A

Si es INDIRECT, este campo podrá ser:

INTERNAL_PROCESS

FROM_EXTERNAL_APPLICATION

application

string

  • KIU_COMMAND

  • OTHER

  • PRL_PROCESS

  • PFS_PROCESS

  • CONFIRM_WAITLIST_PROCESS

Detallado en “Origen y Aplicaciones”

timestamp

datetime

2023-04-20T22:02:32.750Z

Origen y Aplicaciones

Al existir distintos escenarios en los cuales un PNR puede ser modificado, se optó por clasificación en base al tipo de transacción, directa o indirecta, el origen de la modifiación y la aplicación que la desencadenó.

En base a estas variables se construyen las siguientes combinaciones:

Plantumlcloud
toolbarbottom
filenameorigin.svg
originalHeight1095
datahVLLbsIwEPyaXHqKKn5gcTawwo9obQI9raLCgQMpglz693VIEKRx1ZPlmdnZWXuzRX7rmmt3PrWHc3PJ8iLL4S17z7tr096az+701Ur3fTmOTE8VxKjCA+gRWKF9Aj2yoa0oZwzYYoK7sEaO52v1DpceuSaFPqF9EZbsjOA+IFvQYtD72HhSMmJSsYtu/iU02Xns//2q0v/2GnDWM/zeZPRK1WzATO7sli5IIIOiydD0/Wrj6tkYIxNMksB9FScshAJZZGDCdHblbElsZAcUNPmQFHm1xmKr0xEevyWwDc5AICUKrEI9VXkWsnXcDMcfaZ+oeFqkFKWrpAZNRVQ4+0cYCALe02rOz/4YqkqTupsNomyRH+PmD9v/Aw==
compressedtrue
originalWidth783
revision6

...

origin

application

agent

descripción

interno

AGENT/WEBSERVICES

KIU_COMMAND / OTHER

el que genera la transacción

Proceso Grabar PNR (comando E), emisión y void

Proceso de Creación de Reservas, Modificación de Reservas y División de Reservas por apis

si output = 0 → AGENT + KIU_COMMAND si output <> 0 → WEBSERVICES + OTHER

WEBSERVICES

OTHER

el que genera la transacción

Proceso de Creación de Reservas, Modificación de Reservas y División de Reservas por webservices (v1 y v2)

FROM_EXTERNAL_MESSAGE

MESSAGE_PROCESS

KIUSYSTEM

Proceso de Creación, Modificación de Reservas y División de Reservas por mensajería TTY Type B/Type A. En este caso el device será el de la oficina configurada para el host con terminal address 00

FROM_EXTERNAL_MESSAGE

PFS_PROCESS

KIUSYSTEM

Ajustes por los mensajes post-departure (PFS, PRL)

FROM_EXTERNAL_MESSAGE

PRL_PROCESS

KIUSYSTEM

Ajustes por los mensajes post-departure (PFS, PRL)

INTERNAL_PROCESS

KAM

el que genera la acción en el KAM

Proceso de gestión de cupos KAM (PNRs de inventario)

INTERNAL_PROCESS

ROBOT_TIME_LIMIT

KIUSYSTEM

Ajustes del robot time limit

INTERNAL_PROCESS

VMOVE_PROCESS

KIUSYSTEM

Cambios de reservas por comando VMOVE (reacomodación)

INTERNAL_PROCESS

VMTM_PROCESS

KIUSYSTEM

Cambios de reservas por comando VMTM (cambio de horario), si el carrier tiene activada esa función.

INTERNAL_PROCESS

EXPIRED_ITINERARIES_PROCESS

KIUSYSTEM

Proceso de cancelación de itinerarios activos expirados (aquellos que pasaron mas de 40 horas desde su fecha de vuelo)

INTERNAL_PROCESS

CONFIRM_WAITLIST_PROCESS

KIUSYSTEM

Proceso de confirmación automática de lista de espera

INTERNAL_PROCESS

SCHEDULE_PROCESS

KIUSYSTEM

Cambios de reservas por schedule change (reacomodación)

INTERNAL_PROCESS

SERVICES_AUTOMATIC_CANCEL

KIUSYSTEM

Proceso de cancelación de itinerarios o ssr por vencimiento.

INTERNAL_PROCESS

SSR_INVENTORY_PROCESS

KIUSYSTEM

Proceso de confirmación/rechazo de SSR con inventario

INTERNAL_PROCESS

SSR_AUTOMATIC_PROCESS

KIUSYSTEM

Proceso interno creación/cancelación de SSR (este proceso es usado por el sistema cuando una acción/comando necesita agregar SSR en un PNR de manera automática, por ejemplo: cuando se hace wehcheckin en un vuelo que se gestiona en un DCS externo, y se debe agregar el SSR con la data del checkin)

INTERNAL_PROCESS

FOP_VALIDATION_PROCESS

KIUSYSTEM

Proceso de emisión post-validación forma de pago on-line (acá el proceso de validación puede agregar remarks con errores del proceso o por ejemplo un remark con una referencia de la transacción)

INTERNAL_PROCESS

SEAT_ASSIGN_PROCESS

KIUSYSTEM

Proceso interno de asignación de asientos (esto pasa por ejemplo con la funcionalidad actual del webcheckin de 2W que elige un asiento por default y como es con PRS se modifica el PNR)

FROMINTERNAL_EXTERNAL_APPLICATION

Description event_details (por ahora solo se agrega en XX hasta que se implemente en todos los métodos y estén documentados)

Key

Tipo Dato

Valores posibles

Descripción

Ejemplo

Estado Implementación

Observaciones

system_from

string(2:3)

C1 o código operador de aerolinea, depende si es terminal de PSS o de Kiu GDS

Z8

company

string(4)

Código único de la empresa, aerolinea o agencia, dentro de Kiu

00Z8

channel

string

HOST, GDS

HOST

subchannel

string

En el caso de GDS es el código de gds (C1, 1A, etc). En el caso de HOST, es el valor que se configuró en la tabla de oficinas, comando DNO / BI STAT.SUB-CHANNEL

SALES OFFICE

device

string(0:10)

Dispositivo de Kiu que generó la transacción

LPB00Z8205

agent

string(0:9)

Dispositivo de Kiu que generó la transacción.

HDQ00Z8SM

pnr_action

string

CREATE, MODIFY, SPLIT

Identifica si el evento es de creación o modificación o división

CREATE

El SPLIT se aplicará a los 2 PNR (el creado y el modificado en ese proceso).

transaction_type

string

DIRECT, INDIRECT

Identifica si la modificación sobre el pnr se da por una intervención directa de un usuario/api o si la modificación es indirecta relacionada a otro proceso.

origin

string

  • AGENT

  • WEBSERVICES

  • FROM_EXTERNAL_MESSAGE

  • INTERNAL_PROCESS

  • FROM_EXTERNAL_APPLICATION

Identifica el origen que desencadena la modificación relacionado al transaction_type.

Si es DIRECT, este campo podrá ser:

AGENT → cambio desde KiuCommand/algunos escenarios de click)

WEBSERVICES → cambio desde WS/APIS/ algunos escenarios de click

FROM_EXTERNAL_MESSAGE → procesamiento de mensajeria TTY Type B/Type A

Si es INDIRECT, este campo podrá ser:

INTERNAL_PROCESS

FROM_EXTERNAL_APPLICATION

application

string

  • KIU_COMMAND

  • OTHER

  • PRL_PROCESS

  • PFS_PROCESS

  • CONFIRM_WAITLIST_PROCESS

timestamp

datetime

2023-04-20T22:02:32.750Z

PROCESS

RECORD_LOCATOR_PURGED

KIUSYSTEM

Proceso de purga de PNR.

FROM_EXTERNAL_APPLICATION

El proceso de purga de PNRs podrá contener hasta 1000 pnrs en un mismo archivo. Bajo este escenario, solo se informará la key record_locator_version_information y el evento con aplication y timestamp. El resto de los valores serán fijos

"agent": "KIUSYSTEM", "transaction_type": "INDIRECT", "origin": "INTERNAL_PROCESS", "pnr_action": "DELETE"

Ejemplo de archivo

Code Block
{
  "pnr_list": [
    {
      "event_details": {
        "application": "RECORD_LOCATOR_PURGED",
        "timestamp": "2023-05-12T12:55:46.940Z"
      },
      "record_locator_version_information": {
        "record_locator": "CQAIKI",
        "record_locator_version": "2023-05-10T12:40:52.997Z"
      }
    },
    {
      "event_details": {
        "application": "RECORD_LOCATOR_PURGED",
        "timestamp": "2023-05-12T12:55:46.940Z"
      },
      "record_locator_version_information": {
        "record_locator": "PGJQQG",
        "record_locator_version": "2023-05-10T12:40:52.997Z"
      }
    },
    {
      "event_details": {
        "application": "RECORD_LOCATOR_PURGED",
        "timestamp": "2023-05-12T12:55:46.940Z"
      },
      "record_locator_version_information": {
        "record_locator": "TGJFLE",
        "record_locator_version": "2023-05-10T12:40:52.997Z"
    }
  ]
}