Sabre: как различать детали сегментов во втором EnhancedAirBook

В некоторых случаях я вызываю EnhancedAirBookRQ отдельно для двух разных сегментов полета, передавая SegmentSelect в запрос EAB.

Например:

Допустим, я сначала выполняю EAB для сегмента 1 BLR-DEL, а затем снова вызываю EAB для сегмента 2 DEL-BLR.

Теперь, когда EAB выполняется дважды для этих двух сегментов, в первом ответе EAB будут указаны детали сегмента BLR-DEL, однако во втором ответе EAB будут указаны все сегменты, то есть BLR-DEL и DEL-BLR.

Итак, из второго ответа я хотел извлечь только сегмент, принадлежащий DEL-BLR. Итак, как мне это получить.

Ответ 1 ЕАБ:

<ReservationItems>
     <Item RPH="1">
        <FlightSegment AirMilesFlown="1075" ArrivalDateTime="04-22T09:45" DayOfWeekInd="5" DepartureDateTime="2016-04-22T07:00" ElapsedTime="02.45" FlightNumber="0807" NumberInParty="02" ResBookDesigCode="W" SegmentNumber="0001" SmokingAllowed="false" SpecialMeal="false" Status="SS" StopQuantity="00" eTicket="true">
           <DestinationLocation LocationCode="BLR" />
           <Equipment AirEquipType="73H" />
           <MarketingAirline Code="9W" FlightNumber="0807" />
           <Meal Code="B" />
           <OriginLocation LocationCode="DEL" Terminal="TERMINAL 3" TerminalCode="3" />
           <SupplierRef ID="DC9W" />
           <UpdatedArrivalTime>04-22T09:45</UpdatedArrivalTime>
           <UpdatedDepartureTime>04-22T07:00</UpdatedDepartureTime>
        </FlightSegment>
     </Item>
</ReservationItems>

Ответ 2 ЕАБ:

 <ReservationItems>
     <Item RPH="1">
        <FlightSegment AirMilesFlown="1075" ArrivalDateTime="04-22T09:45" DayOfWeekInd="5" DepartureDateTime="2016-04-22T07:00" ElapsedTime="02.45" FlightNumber="0807" NumberInParty="02" ResBookDesigCode="W" SegmentNumber="0001" SmokingAllowed="false" SpecialMeal="false" Status="SS" StopQuantity="00" eTicket="true">
           <DestinationLocation LocationCode="BLR" />
           <Equipment AirEquipType="73H" />
           <MarketingAirline Code="9W" FlightNumber="0807" />
           <Meal Code="B" />
           <OriginLocation LocationCode="DEL" Terminal="TERMINAL 3" TerminalCode="3" />
           <SupplierRef ID="DC9W" />
           <UpdatedArrivalTime>04-22T09:45</UpdatedArrivalTime>
           <UpdatedDepartureTime>04-22T07:00</UpdatedDepartureTime>
        </FlightSegment>
     </Item>
     <Item RPH="2">
        <FlightSegment AirMilesFlown="1075" ArrivalDateTime="04-23T08:50" DayOfWeekInd="6" DepartureDateTime="2016-04-23T06:05" ElapsedTime="02.45" FlightNumber="0818" NumberInParty="02" ResBookDesigCode="V" SegmentNumber="0002" SmokingAllowed="false" SpecialMeal="false" Status="SS" StopQuantity="00" eTicket="true">
           <DestinationLocation LocationCode="DEL" Terminal="TERMINAL 3" TerminalCode="3" />
           <Equipment AirEquipType="73H" />
           <MarketingAirline Code="9W" FlightNumber="0818" />
           <Meal Code="B" />
           <OriginLocation LocationCode="BLR" />
           <SupplierRef ID="DC9W" />
           <UpdatedArrivalTime>04-23T08:50</UpdatedArrivalTime>
           <UpdatedDepartureTime>04-23T06:05</UpdatedDepartureTime>
        </FlightSegment>
     </Item>
 </ReservationItems>

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


person Deep    schedule 14.04.2016    source источник


Ответы (2)


Если вы хотите оценить два сегмента в одном запросе, вам нужно использовать «брачную группу».

 <OTA_AirBookRQ 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" Version="2.0.0">
      <OriginDestinationInformation>
        <FlightSegment FlightNumber="408" ArrivalDateTime="2016-02-18T17:15:00" DepartureDateTime="2016-02-18T15:35:00" NumberInParty="1" Status="NN" ResBookDesigCode="L">
          <DestinationLocation LocationCode="DEL"/>
          <MarketingAirline Code="9W" FlightNumber="408"/>
          <MarriageGrp Ind="false"/>
          <OriginLocation LocationCode="PAT"/>
        </FlightSegment>
        <FlightSegment FlightNumber="73" ArrivalDateTime="2016-02-18T20:45:00" DepartureDateTime="2016-02-18T18:30:00" NumberInParty="1" Status="NN" ResBookDesigCode="L">
          <DestinationLocation LocationCode="BBI"/>
          <MarketingAirline Code="9W" FlightNumber="73"/>
          <MarriageGrp Ind="true"/>
          <OriginLocation LocationCode="DEL"/>
        </FlightSegment>
      </OriginDestinationInformation>
</OTA_AirBookRQ>
person CSE 52    schedule 14.04.2016

По какой-то конкретной причине вам нужны два отдельных запроса EAB здесь? (может быть, предлагать исходящие и входящие рейсы в отдельных интерфейсах?)

Если во время покупок (например, с помощью BFM: https://developer.sabre.com/docs/read/soap_apis/air/search/bargain_finder_max) вы запрашиваете маршруты туда и обратно (указав элементы OriginDestinationInformation для исходящих и входящих частей), вы можете забронировать полный маршрут в одном запросе EAB.

Если ваш пользовательский интерфейс должен предлагать исходящие и входящие рейсы отдельно, вам придется рассмотреть комбинации, предлагаемые при совершении покупок, а затем соответственно забронировать с помощью EAB (единый запрос).

person fcarreno    schedule 29.04.2016