Оглавление:
Введение #
При работе c системой Sabre через Sabre APIs можно отправлять терминальные команды и получать на них ответы в текстовом виде, так как это делается в Sabre Red. Это может быть использовано при разработке эмулятора терминала Sabre, во время отладки, а также для отправки тех команд, для которых не существует аналогичных сервисов.
Отправка терминальных команд (SabreCommandLLSRQ) #
Для отправки терминальных команд в других PCC предварительно требуется отправить запрос к сервису ContextChangeLLSRQ (см. Переход в другие PCC).
Для отправки терминальных команд используется сервис SabreCommandLLSRQ.
Сервис использует контекст текущей сессии, например, после бронирования сегментов при помощи сервиса EnhancedAirBookRQ, их можно будет увидеть в ответе на терминальную команду *A
(чтение открытого бронирования).
Другие терминальные команды можно увидеть в Finder и в справочнике форматов Sabre.
В запросе необходимо указать:
/SabreCommandLLSRQ/@NumResponses
— всегда значение 4/SabreCommandLLSRQ/Request/@Output
— формат выдачи, всегда значениеSCREEN
/SabreCommandLLSRQ/Request/HostCommand
— терминальная команда
Пример запроса
<SabreCommandLLSRQ NumResponses="4" Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10">
<Request Output="SCREEN">
<HostCommand>*S*P</HostCommand>
</Request>
</SabreCommandLLSRQ>
Пример ответа
<SabreCommandLLSRS AltLangID="en-us" EchoToken="String" PrimaryLangID="en-us" SequenceNmbr="1" Target="Production" TimeStamp="2018-04-02T19:46:49" Version="1.8.1" xmlns="http://webservices.sabre.com/sabreXML/2003/07">
<Response>
<![CDATA[2FRH.9LSC*AWS.A..PNR PRESENT]]>
<![CDATA[
ACTIVE AGENT - WS WEBSERVICES - 7971-9LSC ]]>
<![CDATA[
NO PRINTERS ]]>
</Response>
</SabreCommandLLSRS>
Специальные символы #
В терминальных командах и ответах Sabre используются четыре дополнительных специальных символа:
Название | Символ | Код символа | Сочетание клавиш для вставки символа в ОС Windows | Описание |
---|---|---|---|---|
Change Key | ¤ |
¤ |
ALT + 0164 |
Используется в командах изменения и удаления данных |
Cross of Lorraine | ¥ |
¥ |
ALT + 0165 |
Используется для добавления квалификаторов к командам и в качестве знака сложения |
End Item Key | § |
§ |
ALT + 0167 |
Используется для ввода нескольких команд одновременно в одну строку |
В запросе можно указать как сам символ, так и его код. Однако, необходимо учитывать, что при использовании элемента <![CDATA[команда]]>
в команде можно указать только сам символ, а не его код.
Заполнение масок #
При работе с Sabre в терминальном режиме, некоторые команды в качестве ответа предлагают заполнить маску. Маска характеризуется тем, что имеет одно или несколько полей фиксированной длины, границы которых обрамлены угловыми скобками.
Для заполнения маски используется сервис SabreCommandLLSRQ. В качестве терминальной команды в режиме заполнения маски отправляется следующая последовательность символов (в одну строку без пробелов):
- первые два символа маски
- все поля маски с сохранением фиксированной длины и угловых скобок
Т.к. при заполнении терминальных масок, запрос будет содержать угловые скобки, которые могут сделать XML сообщение невалидным, необходимо обрамлять такие команды в элемент CDATA: <![CDATA[команда]]>
.
Пример №1 #
Пример маски
PP
ENTER SELECTION NUMBER < >
1. SELECT/UPDATE PRINTER TYPES FOR PRINTER PROFILE
2. ADD NEW PRINTER PROFILE
3. UPDATE EXISTING PRINTER PROFILE
4. EXIT
Пример заполнения маски
<SabreCommandLLSRQ NumResponses="4" Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10">
<Request Output="SCREEN">
<HostCommand><![CDATA[PP<3>]]></HostCommand>
</Request>
</SabreCommandLLSRQ>
Пример №2 #
Пример маски
PP - ENTER X TO SELECT OR SPACE TO DELETE PRINTER TYPES
DESIGNATION CODE PRINTER TYPES
< > PTR/ HARDCOPY
< > W*< > TICKET
< > W*< > SECONDARY TICKET
< > GYLN BOARDING PASS PRINTER
< > GYAB ATB BOARDING PASS ONLY
< > GYAT ATB 2 BOARDING PASS ONLY
< > RP1 REMOTE PRINTER
< > RP2 SECOND REMOTE PRINTER
< > DSIV INVOICE/ITINERARY
< > DSRP ARC/BSP REPORTS
< > DSLB LISTS/LABELS
< > DSIM MINI ITINERARY
NEED PRINTER SELECTIONS
< > END < > IGNORE
Пример заполнения маски
<SabreCommandLLSRQ NumResponses="4" Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10">
<Request Output="SCREEN">
<HostCommand><![CDATA[PP<X><X><RU>< >< >< >< >< >< >< ><X>< >< >< ><X>< >]]></HostCommand>
</Request>
</SabreCommandLLSRQ>
Пример №3 #
Пример маски
WARNING - NO PASSPORT AND/OR DOB DATA FOR SELECTED PAX
CONTINUE TICKETING Y OR N ><.>
Пример заполнения маски
<SabreCommandLLSRQ NumResponses="4" Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10">
<Request Output="SCREEN">
<HostCommand><![CDATA[WA<Y>]]></HostCommand>
</Request>
</SabreCommandLLSRQ>
Пример №4 #
Пример маски
VERIFY TKT TTL RUB 69339 - PQ TTL RUB 138678
TICKET? ENTER Y OR N<.>
Пример заполнения маски
<SabreCommandLLSRQ NumResponses="4" Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10">
<Request Output="SCREEN">
<HostCommand><![CDATA[VE<Y>]]></HostCommand>
</Request>
</SabreCommandLLSRQ>