Очередь PNR возвращает «NO PNR IN AAA» (QueuePlaceLLSRQ) - PullRequest
1 голос
/ 22 апреля 2020

Я пытаюсь поставить в очередь PNR с помощью "Поместить сообщение в очередь (QueuePlaceLLSRQ)" API. Итак, я следую этим шагам, чтобы поставить в очередь PNR.

Шаг 1 - Создать сеанс (SessionCreateRQ)

Шаг 2 - Получить маршрут (GetReservationRQ)

Шаг 3 - Очередь PNR ( QueuePlaceLLSRQ)

И я застрял на шаге 3, он всегда возвращает сообщение об ошибке - NO PNR IN AAA

Что это на самом деле означает и как я могу избежать этой ошибки?


Ниже приведены данные полезной нагрузки запроса и ответа

Данные запроса


<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header>
        <MessageHeader xmlns="http://www.ebxml.org/namespaces/messageHeader">
            <From>
                <PartyId>sample.url.of.sabre.client.com</PartyId>
            </From>
            <To>
                <PartyId>webservices.sabre.com</PartyId>
            </To>
            <CPAId></CPAId>
            <ConversationId>convid</ConversationId>
            <Service>QueuePlaceLLSRQ</Service>
            <Action>QueuePlaceLLSRQ</Action>
            <MessageData>
                <MessageId>convid112</MessageId>
                <Timestamp>2020-04-20T09:25:27Z</Timestamp>
                <TimeToLive>2020-04-20T09:25:27Z</TimeToLive>
            </MessageData>
        </MessageHeader>
        <Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <BinarySecurityToken EncodingType="Base64Binary" valueType="String" >Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTC!ICESMSLB\/CRT.LB!1587564276872!533!5</BinarySecurityToken>
        </Security>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <QueuePlaceRQ Version="2.0.4" xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <QueueInfo>
                <QueueIdentifier Number="22" PrefatoryInstructionCode="11" PseudoCityCode="****"/>
            </QueueInfo>
        </QueuePlaceRQ>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>



Данные ответа


<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1">
            <eb:From>
                <eb:PartyId eb:type="URI">webservices.sabre.com</eb:PartyId>
            </eb:From>
            <eb:To>
                <eb:PartyId eb:type="URI">sample.url.of.sabre.client.com</eb:PartyId>
            </eb:To>
            <eb:ConversationId>convid</eb:ConversationId>
            <eb:Service>QueuePlaceLLSRQ</eb:Service>
            <eb:Action>QueuePlaceLLSRS</eb:Action>
            <eb:MessageData>
                <eb:MessageId>1815326504754440150</eb:MessageId>
                <eb:Timestamp>2020-04-22T14:01:16</eb:Timestamp>
                <eb:RefToMessageId>convid</eb:RefToMessageId>
            </eb:MessageData>
        </eb:MessageHeader>
        <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTC!ICESMSLB\/CRT.LB!1587564074215!6005!9</wsse:BinarySecurityToken>
        </wsse:Security>
    </soap-env:Header>
    <soap-env:Body>
        <QueuePlaceRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.0.4">
            <stl:ApplicationResults status="NotProcessed">
                <stl:Error type="BusinessLogic" timeStamp="2020-04-22T09:01:16-05:00">
                    <stl:SystemSpecificResults>
                        <stl:Message>NO PNR IN AAA</stl:Message>
                        <stl:ShortText>ERR.SWS.HOST.ERROR_IN_RESPONSE</stl:ShortText>
                    </stl:SystemSpecificResults>
                </stl:Error>
            </stl:ApplicationResults>
        </QueuePlaceRS>
    </soap-env:Body>
</soap-env:Envelope>

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Я полагаю, что вы либо звоните GetReservation с Stateless вместо Stateful, поэтому резервирование не находится в рабочей области при попытке размещения в очереди, либо используется другой сеанс.

Если это единственное, что вы делаете с резервированием, вы можете добавить UniqueId и поместить его в эту очередь, даже не получив его. <UniqueID ID="ABC123"/>

0 голосов
/ 24 апреля 2020

Позвольте мне ответить на мой собственный вопрос, так как я был в неправильном рабочем процессе, и я надеюсь, что это кому-то тоже поможет.

В каталоге продукции Sabre нет API очередей для REST, оно только для SOAP.

И проблема была в том, что я использовал REST для первых шагов, таких как Bargain Finder Max и Create Passenger Name Record. После этого я попытался использовать Queue Place API в SOAP, и система, вероятно, не заметила PNR.

На самом деле, API очереди мест доступен в REST, но его необходимо отправить с Create Passenger Name Record API и добавить объект QueueInfo в PostProcessing, как показано ниже.


    "PostProcessing": {
                  "QueuePlace":{
                      "QueueInfo":{

                         "QueueIdentifier":[
                            {
                              "Number":"123",
                              "PrefatoryInstructionCode":"11",
                              "PseudoCityCode":"****"
                            }
                          ]
                      }
                  }

             }

...