在 sabre 中添加被动预订

问题描述 投票:0回答:5

我需要将被动预订添加到 Sabre。关于要使用哪种服务的任何想法。我无法从开发工作室找到所需的 SOAP 请求。

我应该为我在另一个系统中创建的某些预订创建被动预订。

soap sabre
5个回答
1
投票

MiscSegmentSellRQ 是我们用来创建被动预订的工具。如果有人偶然发现这种情况,请分享此内容。


0
投票

据我所知,没有专门的服务来创建被动段。

我们有类似的要求,最终我们只是使用 SabreCommandLLSRQ

发出命令

0
投票

Sabre 格式查找器。

您检查过上面的链接吗? 我在添加被动段并等待 Sabre 的响应时也遇到了麻烦,使用 SabreCommandLLSRQ,它将起作用。

他们提到了EnhancedAirBookRqPassengerDetailsRQ。我还没有尝试过使用这个,我正在等待 Sabre 的确认。


0
投票

作为使用 SABER 并执行所描述的操作(手动)的代理,我们使用 YK 作为在其他地方进行的被动预订的状态代码。 SABRE说你也可以用GK,但YK更好。


0
投票

我意识到我们已经研究这个问题 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>

希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.