我需要将被动预订添加到 Sabre。关于要使用哪种服务的任何想法。我无法从开发工作室找到所需的 SOAP 请求。
我应该为我在另一个系统中创建的某些预订创建被动预订。
MiscSegmentSellRQ 是我们用来创建被动预订的工具。如果有人偶然发现这种情况,请分享此内容。
据我所知,没有专门的服务来创建被动段。
我们有类似的要求,最终我们只是使用 SabreCommandLLSRQ
发出命令您检查过上面的链接吗? 我在添加被动段并等待 Sabre 的响应时也遇到了麻烦,使用 SabreCommandLLSRQ,它将起作用。
他们提到了EnhancedAirBookRq和PassengerDetailsRQ。我还没有尝试过使用这个,我正在等待 Sabre 的确认。
作为使用 SABER 并执行所描述的操作(手动)的代理,我们使用 YK 作为在其他地方进行的被动预订的状态代码。 SABRE说你也可以用GK,但YK更好。
我意识到我们已经研究这个问题 8 年了,但是 API 不断发展,我最近发布了对我有用的内容。 Sabre 支持今天可能会建议您使用。
注意:“被动”一词似乎有点难以捉摸。确保您从客户那里获得了示例终端条目,无论他们如何称呼它。上面提到的 MiscSegmentSellRQ 请求主要针对 miscellaneous 段,例如 OTH、MCO、PTA 或 INS,但有时被称为被动。
我们的客户需要以下内容:0AA331Y21AUGJFKLAXYK1/1130A235P*ABC123 最后是供应商记录定位器。该定位器在某些其他服务中不可用。我们通过 OTA_AirBookRQ 减去定位器获得了成功。 SendCommandLLSRQ 是一个显而易见的解决方案,但当然需要开发人员管理响应中的解析错误/成功。有时这是一个可行的解决方案,我将与那些羞于发送终端命令的人进行正面交锋。这取决于情况并且有它的位置,但如果有另一种解决方案不需要花费数周的时间来找出并且不达标(例如缺少字段、数据),我们总是尽量避免使用终端命令。
Sabre Web Svc 支持建议使用 CreateReservationRQ,这是一项用于执行 PNR 中大多数元素的大型服务,如果没有对所需特定字段的深入了解和示例有效负载,似乎不可能成功实施。我们的代码库中已经有了 UpdateReservationRQ,它基本上使用相同的 XML 数据,所以我们尝试了一下,它成功了。注意:无论您是否已有 PNR,这两个请求都可以灵活处理。尽管 CreateReservationRQ 听起来您必须创建 PNR,但它可以在现有 PNR 上使用。
这是 Sabre 支持为 CreateReservationRQ 提供的请求:
<ns7:CreateReservationRQ EchoToken="" Version="1.19.0" xmlns:ns1="http://www.ebxml.org/namespaces/messageHeader" xmlns:ns2="http://www.w3.org/1999/xlink" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns6="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ns7="http://webservices.sabre.com/pnrbuilder/v1_19" xmlns:or="http://services.sabre.com/res/or/v1_14">
<ns7:RequestType commitTransaction="false" initialIgnore="false">Stateful</ns7:RequestType>
<ns7:ReturnOptions RetrievePNR="true"/>
<ns7:NewReservation>
<ns7:Itinerary>
<ns7:Product>
<or:ProductDetails productCategory="passive" productType="Air" vendorCode="UX" statusCode="GK" startPoint="MAD" startDateTime="2023-08-12T08:00:00" endPoint="ORY" endDateTime="2023-08-12T09:55:00">
<or:ProductName type="Air"/>
<or:Air>
<or:DepartureAirport>MAD</or:DepartureAirport>
<or:ArrivalAirport>ORY</or:ArrivalAirport>
<or:ArrivalAirportCodeContext>IATA</or:ArrivalAirportCodeContext>
<or:MarketingAirlineCode>UX</or:MarketingAirlineCode>
<or:CodeShareOperatingRecordLocator>32FAOI</or:CodeShareOperatingRecordLocator>
<or:AirlineRefId>UX*DMVZPC</or:AirlineRefId>
<or:Eticket>false</or:Eticket>
<or:DepartureDateTime>2023-08-12T08:00:00</or:DepartureDateTime>
<or:ArrivalDateTime>2023-08-12T09:55:00</or:ArrivalDateTime>
<or:FlightNumber>1027</or:FlightNumber>
<or:ClassOfService>Y</or:ClassOfService>
<or:ActionCode>GK</or:ActionCode>
<or:NumberInParty>1</or:NumberInParty>
<or:PassiveSegmentIndicator>true</or:PassiveSegmentIndicator>
<or:OtherAirlineSign/>
</or:Air>
</or:ProductDetails>
</ns7:Product>
</ns7:Itinerary>
<ns7:PersonName>
<ns7:Given>Tamil</ns7:Given>
<ns7:Surname>Maran</ns7:Surname>
<ns7:Prefix>Mr</ns7:Prefix>
</ns7:PersonName>
<ns7:PhoneNumber id="1" op="C">
<ns7:PhoneText>9600000000</ns7:PhoneText>
</ns7:PhoneNumber>
<ns7:TicketingInfo>
<ns7:AlreadyTicketed>
<ns7:Code>T-A</ns7:Code>
</ns7:AlreadyTicketed>
</ns7:TicketingInfo>
<ns7:ReceivedFrom>
<ns7:Name>Maran</ns7:Name>
<ns7:AgentName>Maran</ns7:AgentName>
</ns7:ReceivedFrom>
</ns7:NewReservation>
</ns7:CreateReservationRQ>
下面是我们使用 UpdateReservationRQ 并进行了一些调整的解决方案。我们使用了更少的数据,重要的变化是 productCategory =“AIR”与“passive”。 (被动很滑)但是,我们在 Air 元素中保留了 PassiveSegmentIndicator = true。
这得到了与此类格式相同的结果: 0AA331Y21AUGJFKLAXYK1/1130A235P*ABC123
<UpdateReservationRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.19.12">
<RequestType commitTransaction="false" initialIgnore="false" xmlns="http://webservices.sabre.com/pnrbuilder/v1_19">Stateful</RequestType>
<ReturnOptions RetrievePNR="true" IncludeUpdateDetails="true" xmlns="http://webservices.sabre.com/pnrbuilder/v1_19" />
<ReservationUpdateList xmlns="http://webservices.sabre.com/pnrbuilder/v1_19">
<ReservationUpdateItem>
<ProductUpdate op="C">
<Product>
<ProductDetails productCategory="AIR" xmlns="http://services.sabre.com/res/or/v1_14">
<ProductName type="AIR" />
<Air>
<DepartureAirport>JFK</DepartureAirport>
<ArrivalAirport>LAX</ArrivalAirport>
<MarketingAirlineCode>AA</MarketingAirlineCode>
<MarketingFlightNumber>331</MarketingFlightNumber>
<MarketingClassOfService>Y</MarketingClassOfService>
<DepartureDateTime>2023-08-21T11:30:00</DepartureDateTime>
<ArrivalDateTime>2023-08-21T14:35:00</ArrivalDateTime>
<ActionCode>YK</ActionCode>
<NumberInParty>01</NumberInParty>
<PassiveSegmentIndicator>true</PassiveSegmentIndicator>
<OALocator>OB1CNOB</OALocator>
</Air>
</ProductDetails>
</Product>
</ProductUpdate>
</ReservationUpdateItem>
</ReservationUpdateList>
</UpdateReservationRQ>
希望这对某人有帮助。