我正在尝试使用"Place Queue Message (QueuePlaceLLSRQ)" API将PNR排队。因此,我按照以下步骤将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>
我想您要么用GetReservation
而不是Stateless
来调用Stateful
,所以当尝试排队或使用其他会话时,预留位置不在工作区上。
如果这是您对保留所做的唯一事情,则可以添加UniqueId并将其放置在该队列中,甚至无需检索它。<UniqueID ID="ABC123"/>
让我回答自己的问题,因为我的工作流程不正确,我希望它也能对某人有所帮助。
在Sabre的产品目录中,没有Queue Place API用于REST,仅用于SOAP。
问题是我在诸如Bargain Finder Max
和Create Passenger Name Record
之类的第一步中使用了[[REST。之后,我尝试使用SOAP中的Queue Place API
,并且系统可能没有注意到PNR。
Queue Place API
在REST中可用,但必须与Queue Place API
一起发送,并且必须在Create Passenger Name Record API
下附加对象Create Passenger Name Record API
,如下所示。 QueueInfo