sabre air booking api - soap

I am sending request to get CreatePassengerNameRecordRQ(PNR) through the SOAP UI. I am facing some header issue when I post request. My request is the following:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:mes="http://www.ebxml.org/namespaces/messageHeader" xmlns:v3="http://services.sabre.com/sp/eab/v3_2">
<soapenv:Header>
<sec:Security>
<sec:BinarySecurityToken>XXXXXXXXXXXXXXXXXXXXX</sec:BinarySecurityToken>
</sec:Security>
<mes:MessageHeader>
<mes:From>
<!--1 or more repetitions:-->
<mes:PartyId mes:type="urn:x12.org:IO5:01">from</mes:PartyId>
</mes:From>
<mes:To>
<!--1 or more repetitions:-->
<mes:PartyId mes:type="urn:x12.org:IO5:01">ws</mes:PartyId>
</mes:To>
<mes:CPAId>XXXX</mes:CPAId>
<mes:ConversationId>XXXXXXXXXXXXX</mes:ConversationId>
<mes:Service mes:type="sabreXML">sabreXML</mes:Service>
<mes:Action>CreatePassengerNameRecordRQ</mes:Action>
<mes:MessageData>
<mes:MessageId>00000</mes:MessageId>
<mes:Timestamp>233</mes:Timestamp>
</mes:MessageData>
<!--Zero or more repetitions:-->
<mes:Description xml:lang="en-US">Testing</mes:Description>
<!--You may enter ANY elements at this point-->
</mes:MessageHeader>
</soapenv:Header>
<soapenv:Body>
<CreatePassengerNameRecordRQ xmlns="http://services.sabre.com/sp/reservation/v1" targetCity="IH9A">
<Profile>
<UniqueID ID="ABCDEF123454" />
</Profile>
<AirBook>
<OriginDestinationInformation>
<FlightSegment ArrivalDateTime="2016-12-25T08:28:00" DepartureDateTime="2016-12-25T06:20:00" FlightNumber="1479" NumberInParty="1" ResBookDesigCode="S" Status="NN">
<DestinationLocation LocationCode="LAX" />
<MarketingAirline Code="F9" FlightNumber="1479" />
<MarriageGrp>O</MarriageGrp>
<OriginLocation LocationCode="ATL" />
</FlightSegment>
</OriginDestinationInformation>
</AirBook>
<AirPrice>
<PriceRequestInformation>
<OptionalQualifiers>
<PricingQualifiers>
<SpanishLargeFamilyDiscountLevel>1</SpanishLargeFamilyDiscountLevel>
</PricingQualifiers>
</OptionalQualifiers>
</PriceRequestInformation>
</AirPrice>
<MiscSegment DepartureDateTime="2013-10-29" NumberInParty="1" Status="NN" Type="OTH">
<OriginLocation LocationCode="ATL" />
<Text>TEST</Text>
<VendorPrefs>
<Airline Code="F9" />
</VendorPrefs>
</MiscSegment>
<SpecialReqDetails>
<AddRemark>
<RemarkInfo>
<FOP_Remark Type="CHECK">
<CC_Info Suppress="true">
<PaymentCard AirlineCode="F9" CardSecurityCode="1234" Code="VI" ExpireDate="2017-12" ExtendedPayment="12" ManualApprovalCode="123456" Number="4123412341234123" SuppressApprovalCode="true" />
</CC_Info>
</FOP_Remark>
<FutureQueuePlaceRemark Date="12-21" PrefatoryInstructionCode="11" PseudoCityCode="IPCC1" QueueIdentifier="499" Time="06:00" />
<Remark Type="Historical">
<Text>TEST HISTORICAL REMARK</Text>
</Remark>
<Remark Type="Invoice">
<Text>TEST INVOICE REMARK</Text>
</Remark>
<Remark Type="Itinerary">
<Text>TEST ITINERARY REMARK</Text>
</Remark>
<Remark Type="Hidden">
<Text>TEST HIDDEN REMARK</Text>
</Remark>
</RemarkInfo>
</AddRemark>
<AirSeat>
<Seats>
<Seat NameNumber="1.1" Preference="AN" SegmentNumber="1" />
<Seat NameNumber="2.1" Preference="AN" SegmentNumber="1" />
<Seat NameNumber="3.1" Preference="AN" SegmentNumber="1" />
</Seats>
</AirSeat>
<SpecialService>
<SpecialServiceInfo>
<Service SSR_Code="OSI">
<PersonName NameNumber="1.1" />
<Text>TEST1</Text>
<VendorPrefs>
<Airline Code="UA" />
</VendorPrefs>
</Service>
</SpecialServiceInfo>
</SpecialService>
</SpecialReqDetails>
<PostProcessing RedisplayReservation="true">
<ARUNK/>
<QueuePlace>
<QueueInfo>
<QueueIdentifier Number="100" PrefatoryInstructionCode="11" />
</QueueInfo>
</QueuePlace>
<EndTransaction>
<Source ReceivedFrom="BRANDON STEELE" />
</EndTransaction>
</PostProcessing>
</CreatePassengerNameRecordRQ>
</soapenv:Body>
</soapenv:Envelope>
And I'm getting the response is the following:
<soap-env:Fault>
<faultcode>soap-env:Client</faultcode>
<faultstring>SabreHeader/Service missing or incomplete</faultstring>
<detail>
<ns2:ApplicationResults status="NotProcessed" xmlns:ns2="http://services.sabre.com/STL_Payload/v02_01">
<ns2:Error type="Validation" timeStamp="2016-12-21T01:31:06.658-06:00">
<ns2:SystemSpecificResults>
<ns2:Message code="ERR.SP.CLIENT.INVALID_REQUEST">SabreHeader/Service missing or incomplete</ns2:Message>
</ns2:SystemSpecificResults>
</ns2:Error>
</ns2:ApplicationResults>
</detail>
</soap-env:Fault>

Specify version in the CreatePassengerNameRecordRQ header:
<CreatePassengerNameRecordRQ xmlns="http://services.sabre.com/sp/reservation/v1" targetCity="IH9A" version="1.0.0">

Related

How to create PNR by CreatePassengerNameRecordRQ API Sabre

I'm using CreatePassengerNameRecordRQ API to create PNR and book flight, flight infomation I had got by BFM API. But CreatePassengerNameRecordRQ api return error can not create pnr. Pls tell me, how can i create pnr for flight affter get BFM.
This is my request:
<CreatePassengerNameRecordRQ xmlns="http://services.sabre.com/sp/reservation/v2_1" version="2.1.0" haltOnAirPriceError="false" targetCity="KUL">
<TravelItineraryAddInfo>
<AgencyInfo>
<Address>
<AddressLine>My Company</AddressLine>
<CityName>Dubai</CityName>
<CountryCode>PK</CountryCode>
<PostalCode>00000</PostalCode>
<StateCountyProv StateCode="DX"/>
<StreetNmbr>SZ Road</StreetNmbr>
</Address>
<Ticketing TicketType="7TAW"/>
</AgencyInfo>
<CustomerInfo>
<ContactNumbers>
<ContactNumber LocationCode="LHE" NameNumber="1.1" Phone="971-589-697242" PhoneUseType="A"/>
</ContactNumbers>
<Email Address="darabjavaid#gmail.com" NameNumber="1.1"/>
<PersonName NameNumber="1.1" PassengerType="ADT" >
<GivenName>ADULT</GivenName>
<Surname>KHAN</Surname>
</PersonName>
<PersonName NameNumber="2.1" PassengerType="CNN" >
<GivenName>CHILD</GivenName>
<Surname>KHAN</Surname>
</PersonName>
<PersonName NameNumber="3.1" Infant="true" PassengerType="INF" >
<GivenName>INFANT</GivenName>
<Surname>KHAN</Surname>
</PersonName>
</CustomerInfo>
</TravelItineraryAddInfo>
<AirBook>
<OriginDestinationInformation>
<FlightSegment DepartureDateTime="2019-02-15T21:30:00" FlightNumber="804" NumberInParty="1" ResBookDesigCode="V" Status="NN">
<DestinationLocation LocationCode="SIN" />
<MarketingAirline Code="OD" FlightNumber="804"/>
<OriginLocation LocationCode="KUL"/>
</FlightSegment>
</OriginDestinationInformation>
</AirBook>
<AirPrice>
<PriceRequestInformation>
<OptionalQualifiers>
<PricingQualifiers>
<PassengerType Code="ADT" Quantity="1"/>
<PassengerType Code="CNN" Quantity="1"/>
<PassengerType Code="INF" Quantity="1"/>
</PricingQualifiers>
</OptionalQualifiers>
</PriceRequestInformation>
</AirPrice>
<PostProcessing RedisplayReservation="true" >
<EndTransaction>
<Source ReceivedFrom=" TESTING"/>
</EndTransaction>
</PostProcessing>
</CreatePassengerNameRecordRQ>
This is my response:
<CreatePassengerNameRecordRS xmlns="http://services.sabre.com/sp/reservation/v2_1">
<Error type="Application" timeStamp="2019-02-14T21:24:31.556-06:00">
<SystemSpecificResults>
<Message code="ERR.SP.BUSINESS_ERROR">PNR has not been created successfully, see remaining messages for details</Message>
<Message code="ERR.SP.BUSINESS_ERROR">Could not find the PNR locator in the End Transaction response</Message>
</SystemSpecificResults>
</Error>
</CreatePassengerNameRecordRS>
Can you try again without "targetCity="KUL""? This is changing the PCC to KUL, and I don't think you would want to leave your actual PCC. "KUL" would be a pseudo city code used by airlines and not travel agency Sabre users.
I would recommend you to use the orchestrated option with EnhanchedAirbookRQ + PassengerDetailsRQ as it is way more stable.

Invalid date of birth while using OSI sabre

I have a sabre to sabre api request in which I need to create the passenger name record without using the passport information . But when I do the request it gives the following error
<TYPE>BusinessLogic</TYPE><TIMESTAMP>2018-06-04T11:32:33.948-05:00</TIMESTAMP><SYSTEMSPECIFICRESULTS><MESSAGE><content>INVALID DATE OF BIRTH - USE DDMMMYY</content><CODE>ERR.SWS.HOST.ERROR_IN_RESPONSE</CODE></MESSAGE></SYSTEMSPECIFICRESULTS>
The date of birth format works fine when I use the passport information while creating the passenger name record . Below is my request sample .
<PassengerDetailsRQ xmlns="http://services.sabre.com/sp/pd/v3_3" version="3.3.0" IgnoreOnError="true" HaltOnError="true">
<PostProcessing IgnoreAfter="true" RedisplayReservation="true">
<EndTransactionRQ>
<EndTransaction Ind="true"/>
<Source ReceivedFrom="Lorem ipsum"/>
</EndTransactionRQ>
</PostProcessing>
<PriceQuoteInfo xmlns="http://services.sabre.com/sp/pd/v3_3">
<Link NameNumber="1.1" Record="1"/>
<Link NameNumber="2.1" Record="2"/>
<Link NameNumber="3.1" Record="3"/>
</PriceQuoteInfo>
<SpecialReqDetails xmlns="http://services.sabre.com/sp/pd/v3_3">
<AddRemarkRQ>
<RemarkInfo>
<FOP_Remark Type="CASH"/>
</RemarkInfo>
</AddRemarkRQ>
<SpecialServiceRQ>
<SpecialServiceInfo>
<SecureFlight SegmentNumber="A">
<PersonName DateOfBirth="1996-02-23" Gender="M" NameNumber="1.1">
<GivenName>Edna</GivenName>
<Surname>Lindsey</Surname>
</PersonName>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</SecureFlight>
<SecureFlight SegmentNumber="A">
<PersonName DateOfBirth="2015-08-14" Gender="F" NameNumber="2.1">
<GivenName>Ada</GivenName>
<Surname>Hughes</Surname>
</PersonName>
</SecureFlight>
<SecureFlight SegmentNumber="A">
<PersonName DateOfBirth="2017-04-11" Gender="M" NameNumber="3.1">
<GivenName>Lena</GivenName>
<Surname>Pope</Surname>
</PersonName>
</SecureFlight>
<Service SegmentNumber="A" SSR_Code="CHLD">
<PersonName NameNumber="2.1"/>
<Text>Hughes/Ada/14AUG15</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
<Service SegmentNumber="A" SSR_Code="INFT">
<PersonName NameNumber="1.1"/>
<Text>Pope/Lena/11APR17</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
<Service SSR_Code="OSI">
<PersonName NameNumber="1.1"/>
<Text>ID CARD Number 223341</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
<Service SSR_Code="OSI">
<PersonName NameNumber="2.1"/>
<Text>ID CARD Number 2211</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
<Service SSR_Code="OSI">
<PersonName NameNumber="3.1"/>
<Text>ID CARD Number 223343</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
</SpecialServiceInfo>
</SpecialServiceRQ>
</SpecialReqDetails>
<TravelItineraryAddInfoRQ xmlns="http://services.sabre.com/sp/pd/v3_3">
<AgencyInfo>
<Address>
<AddressLine>HIMAL REISEN</AddressLine>
<CityName>Kathmandu</CityName>
<CountryCode>NP</CountryCode>
<PostalCode>00977</PostalCode>
<StreetNmbr>12</StreetNmbr>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Address>
<Ticketing TicketType="7TAW"/>
</AgencyInfo>
<CustomerInfo>
<ContactNumbers>
<ContactNumber NameNumber="1.1" Phone="4118125712" PhoneUseType="H"/>
</ContactNumbers>
<Email Address="zowo#host.test" NameNumber="1.1"/>
<PersonName NameNumber="1.1" Infant="false" PassengerType="ADT">
<GivenName>Edna</GivenName>
<Surname>Lindsey</Surname>
</PersonName>
<PersonName NameNumber="2.1" Infant="false" PassengerType="CNN" NameReference="C02">
<GivenName>Ada</GivenName>
<Surname>Hughes</Surname>
</PersonName>
<PersonName NameNumber="3.1" Infant="true" PassengerType="INF" NameReference="I13">
<GivenName>Lena</GivenName>
<Surname>Pope</Surname>
</PersonName>
</CustomerInfo>
</TravelItineraryAddInfoRQ>
</PassengerDetailsRQ>
Can anyone help me with this problem . Thanks in advance .
There are 2 other issues with the request other than the one you've got, all in the SpecialServiceInfo element.
1.The one that you got, INVALID DATE OF BIRTH - USE DDMMMYY, is because the Text element contains information that is not expected for SSR_Code="CHLD". It should only contain the date of birth and not the name, so 14AUG15 instead of Hughes/Ada/14AUG15.
<Service SegmentNumber="A" SSR_Code="CHLD">
<PersonName NameNumber="2.1"/>
<Text>Hughes/Ada/14AUG15</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
2.Both the SSR_Code="OSI" and SecureFlight cannot be assigned to the infant NameNumber="3.1", they should be assigned to the adult NameNumber="1.1". This would return something like: CANNOT ASSOC TO INFANT NAME
<Service SSR_Code="OSI">
<PersonName NameNumber="3.1"/>
<Text>ID CARD Number 223343</Text>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</Service>
3.For infants, the geneder should be MI and FI, instead of M and F.
<SecureFlight SegmentNumber="A">
<PersonName DateOfBirth="2017-04-11" Gender="M" NameNumber="3.1">
<GivenName>Lena</GivenName>
<Surname>Pope</Surname>
</PersonName>
</SecureFlight>
You may check format finder for more info:
Child SSR:
https://formatfinder.sabre.com/Content/PassengerNameRecordPNR/PassengerNameRecordFields/SSRandOSIFieldsinPNR/SendanSSR.aspx?ItemID=316450AF736A45EC84616AE0D7A7B43B
Secure Flight Formats > Format Definitions:
https://formatfinder.sabre.com/Content/PassengerNameRecordPNR/TSAPassengerDocumentationSecureFlightAPISPCTC/SecureFlightTransportationSafetyAdministrationTSADocumentation.aspx?ItemID=d6e613fe6d5c4255beb7c70bd56fb4fe

Why SABRE is returning "MIN CONNECTION TIME NOT MET BEFORE LEG 2"

In my BFM Rest request, I can find a flight. In my BFM Soap request (Bargain Finder Max RQ) I can´t find the same flight. Sometimes BFM Soap Sabre is returning: "MIN CONNECTION TIME NOT MET BEFORE LEG 2". Whys is this happening?
This is my request to BFM SOAP:
<?xml version="1.0" encoding="utf-16"?>
<OTA_AirLowFareSearchRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="3.3.0" ResponseType="OTA" ResponseVersion="3.3.0">
<POS xmlns="http://www.opentravel.org/OTA/2003/05">
<Source PseudoCityCode="">
<RequestorID Type="1" ID="1">
<CompanyName Code="TN" />
</RequestorID>
</Source>
</POS>
<OriginDestinationInformation RPH="0" Fixed="true" xmlns="http://www.opentravel.org/OTA/2003/05">
<DepartureDateTime>2018-01-31T06:50:00</DepartureDateTime>
<OriginLocation LocationCode="BSB" />
<DestinationLocation LocationCode="CNF" />
<TPA_Extensions>
<Flight Number="3349" DepartureDateTime="2018-01-31T06:50:00" ArrivalDateTime="2018-01-31T08:10:00" Type="A">
<OriginLocation LocationCode="BSB" />
<DestinationLocation LocationCode="CNF" />
<Airline Operating="JJ" Marketing="JJ" />
<Fare BrandID="JJ" />
</Flight>
<ConnectionTime Min="115" />
</TPA_Extensions>
</OriginDestinationInformation>
<OriginDestinationInformation RPH="1" Fixed="true" xmlns="http://www.opentravel.org/OTA/2003/05">
<DepartureDateTime>2018-01-31T10:05:00</DepartureDateTime>
<OriginLocation LocationCode="CNF" />
<DestinationLocation LocationCode="GRU" />
<TPA_Extensions>
<Flight Number="3345" DepartureDateTime="2018-01-31T10:05:00" ArrivalDateTime="2018-01-31T11:20:00" Type="A">
<OriginLocation LocationCode="CNF" />
<DestinationLocation LocationCode="GRU" />
<Airline Operating="JJ" Marketing="JJ" />
<Fare BrandID="JJ" />
</Flight>
<ConnectionTime Min="60" />
</TPA_Extensions>
</OriginDestinationInformation>
<OriginDestinationInformation RPH="2" Fixed="true" xmlns="http://www.opentravel.org/OTA/2003/05">
<DepartureDateTime>2018-02-21T16:50:00</DepartureDateTime>
<OriginLocation LocationCode="GRU" />
<DestinationLocation LocationCode="GYN" />
<TPA_Extensions>
<Flight Number="3546" DepartureDateTime="2018-02-21T16:50:00" ArrivalDateTime="2018-02-21T18:31:00" Type="A">
<OriginLocation LocationCode="GRU" />
<DestinationLocation LocationCode="GYN" />
<Airline Operating="JJ" Marketing="JJ" />
<Fare BrandID="JJ" />
</Flight>
<ConnectionTime Min="169" />
</TPA_Extensions>
</OriginDestinationInformation>
<OriginDestinationInformation RPH="3" Fixed="true" xmlns="http://www.opentravel.org/OTA/2003/05">
<DepartureDateTime>2018-02-21T21:20:00</DepartureDateTime>
<OriginLocation LocationCode="GYN" />
<DestinationLocation LocationCode="BSB" />
<TPA_Extensions>
<Flight Number="3854" DepartureDateTime="2018-02-21T21:20:00" ArrivalDateTime="2018-02-21T22:00:00" Type="A">
<OriginLocation LocationCode="GYN" />
<DestinationLocation LocationCode="BSB" />
<Airline Operating="JJ" Marketing="JJ" />
<Fare BrandID="JJ" />
</Flight>
<ConnectionTime Min="60" />
</TPA_Extensions>
</OriginDestinationInformation>
<TravelPreferences xmlns="http://www.opentravel.org/OTA/2003/05">
<TPA_Extensions>
<NumTrips Number="1" />
<TripType />
<XOFares Value="false" />
</TPA_Extensions>
</TravelPreferences>
<TravelerInfoSummary xmlns="http://www.opentravel.org/OTA/2003/05">
<SeatsRequested>1</SeatsRequested>
<AirTravelerAvail>
<PassengerTypeQuantity Code="ADT" Quantity="1" />
</AirTravelerAvail>
</TravelerInfoSummary>
<TPA_Extensions xmlns="http://www.opentravel.org/OTA/2003/05">
<IntelliSellTransaction>
<RequestType Name="50ITINS" />
</IntelliSellTransaction>
<DiversityControl>
<LowFareBucket Options="20%" FareCutOff="25%" />
<Dimensions>
<Carrier Weight="1" OnlineIndicator="true" />
</Dimensions>
</DiversityControl>
</TPA_Extensions>
</OTA_AirLowFareSearchRQ>
The min connection time is 60 min.
The flight connection time is greater than 60 min.
Normally have a minimum connection Time is needed between the arrival and departure of 2 segments depending on Airline and Airport. E.g. you cant arrive at 1:30 PM and departe 1:35 PM.
It seems the time is too small (can be checked when booking the itin in Sabre RED with VCT*).
Regarding the discrepancy it sounds like a case for sabre support. In general i dont trust SABRE Rest, so i trust Soap to be correct.
If you want to you can give me the segments and i will check on the Sabre Workspace.
In xml OTA_AirLowFareSearchRQ there is an object called OriginDestinetionInformation and inside this object there another property called OriginDestinetionInformation. If you set THE property "Fixed" to false maybe this error will be solved. I´m yet testing this solution.

OTA_AirPriceRQ in Sabre AIr booking

Can any one help me on the OTA_AirPriceRQ request. I want to know the options which I can include with it so that i can get a success response.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:mes="http://www.ebxml.org/namespaces/messageHeader" xmlns:v3="http://services.sabre.com/sp/eab/v3_7">
<soapenv:Header>
<sec:Security>
<sec:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTC!ICESMSLB\/CRT.LB!-3273332406989210493!448034!0!1</sec:BinarySecurityToken>
</sec:Security>
<mes:MessageHeader >
<mes:From>
<!--1 or more repetitions:-->
<mes:PartyId mes:type="urn:x12.org:IO5:01">Traform</mes:PartyId>
</mes:From>
<mes:To>
<!--1 or more repetitions:-->
<mes:PartyId mes:type="urn:x12.org:IO5:01">Sabre</mes:PartyId>
</mes:To>
<mes:CPAId>VJ6I</mes:CPAId>
<mes:ConversationId>Traform</mes:ConversationId>
<mes:Service mes:type="OTA">EnhancedAirBookRQ</mes:Service>
<mes:Action>EnhancedAirBookRQ</mes:Action>
<mes:MessageData>
<mes:MessageId>1000</mes:MessageId>
<mes:Timestamp>2017-05-22T17:28</mes:Timestamp>
</mes:MessageData>
</mes:MessageHeader>
</soapenv:Header>
<soapenv:Body>
<v3:EnhancedAirBookRQ xmlns="http://services.sabre.com/sp/eab/v3_7" version="3.7.0" HaltOnError="true">
<v3:OTA_AirBookRQ>
<v3:OriginDestinationInformation>
<v3:FlightSegment DepartureDateTime="2017-11-21T17:05" FlightNumber="9392"
NumberInParty="1"
ResBookDesigCode="F" Status="QF">
<v3:DestinationLocation LocationCode="LHR"/>
<v3:MarketingAirline Code="MH" FlightNumber="9392"/>
<v3:OriginLocation LocationCode="DFW"/>
</v3:FlightSegment>
</v3:OriginDestinationInformation>
<RedisplayReservation NumAttempts="2" WaitInterval="5000"/>
</v3:OTA_AirBookRQ>
<v3:OTA_AirPriceRQ>
<v3:PriceRequestInformation Retain="true">
<v3:OptionalQualifiers>
<v3:PricingQualifiers>
<PassengerType Code="ADT" Quantity="1" />
</v3:PricingQualifiers>
</v3:OptionalQualifiers>
</v3:PriceRequestInformation>
</v3:OTA_AirPriceRQ>
</v3:EnhancedAirBookRQ>
</soapenv:Body>
</soapenv:Envelope>
See below complete Enhanced Air Book request
<?xml version="1.0" encoding="UTF-8"?>
<EnhancedAirBookRQ version="3.7.0" HaltOnError="true">
<OTA_AirBookRQ xmlns="http://services.sabre.com/sp/eab/v3_7">
<HaltOnStatus Code="NN" />
<HaltOnStatus Code="UC" />
<HaltOnStatus Code="NO" />
<HaltOnStatus Code="US" />
<OriginDestinationInformation>
<FlightSegment DepartureDateTime="2017-06-01T15:40" FlightNumber="4793" NumberInParty="2" ResBookDesigCode="K" Status="NN">
<DestinationLocation LocationCode="CDG" />
<Equipment AirEquipType="77W" />
<MarketingAirline Code="9W" FlightNumber="639" />
<MarriageGrp>O</MarriageGrp>
<OperatingAirline Code="AF" />
<OriginLocation LocationCode="IAH" />
</FlightSegment>
<FlightSegment DepartureDateTime="2017-06-02T11:35" FlightNumber="123" NumberInParty="2" ResBookDesigCode="K" Status="NN">
<DestinationLocation LocationCode="BOM" />
<Equipment AirEquipType="333" />
<MarketingAirline Code="9W" FlightNumber="123" />
<MarriageGrp>I</MarriageGrp>
<OperatingAirline Code="9W" />
<OriginLocation LocationCode="CDG" />
</FlightSegment>
<FlightSegment DepartureDateTime="2017-06-03T05:30" FlightNumber="341" NumberInParty="2" ResBookDesigCode="K" Status="NN">
<DestinationLocation LocationCode="BDQ" />
<Equipment AirEquipType="738" />
<MarketingAirline Code="9W" FlightNumber="341" />
<MarriageGrp>I</MarriageGrp>
<OperatingAirline Code="9W" />
<OriginLocation LocationCode="BOM" />
</FlightSegment>
<FlightSegment DepartureDateTime="2017-06-06T20:55" FlightNumber="344" NumberInParty="2" ResBookDesigCode="O" Status="NN">
<DestinationLocation LocationCode="BOM" />
<Equipment AirEquipType="738" />
<MarketingAirline Code="9W" FlightNumber="344" />
<MarriageGrp>O</MarriageGrp>
<OperatingAirline Code="9W" />
<OriginLocation LocationCode="BDQ" />
</FlightSegment>
<FlightSegment DepartureDateTime="2017-06-07T02:25" FlightNumber="3288" NumberInParty="2" ResBookDesigCode="V" Status="NN">
<DestinationLocation LocationCode="AMS" />
<Equipment AirEquipType="333" />
<MarketingAirline Code="9W" FlightNumber="3288" />
<MarriageGrp>I</MarriageGrp>
<OperatingAirline Code="9W" />
<OriginLocation LocationCode="BOM" />
</FlightSegment>
<FlightSegment DepartureDateTime="2017-06-07T10:00" FlightNumber="8803" NumberInParty="2" ResBookDesigCode="V" Status="NN">
<DestinationLocation LocationCode="IAH" />
<Equipment AirEquipType="74E" />
<MarketingAirline Code="9W" FlightNumber="661" />
<MarriageGrp>I</MarriageGrp>
<OperatingAirline Code="KL" />
<OriginLocation LocationCode="AMS" />
</FlightSegment>
</OriginDestinationInformation>
<RedisplayReservation NumAttempts="2" WaitInterval="5000" />
</OTA_AirBookRQ>
<OTA_AirPriceRQ xmlns="http://services.sabre.com/sp/eab/v3_7">
<PriceRequestInformation Retain="true">
<OptionalQualifiers>
<FlightQualifiers>
<VendorPrefs>
<Airline Code="9W" />
</VendorPrefs>
</FlightQualifiers>
<MiscQualifiers>
<Commission Amount="0.00" />
</MiscQualifiers>
<PricingQualifiers CurrencyCode="USD">
<PassengerType Code="ADT" Quantity="1" />
<PassengerType Code="INF" Quantity="1" />
<PassengerType Code="CNN" Quantity="1" />
</PricingQualifiers>
</OptionalQualifiers>
</PriceRequestInformation>
</OTA_AirPriceRQ>
<PostProcessing xmlns="http://services.sabre.com/sp/eab/v3_7">
<RedisplayReservation WaitInterval="5000" UnmaskCreditCard="true" />
</PostProcessing>
</EnhancedAirBookRQ>

How to get a variable from WSDL with mule setvariable and datamapper? Message payload is of type: HashMap

It should be simple but I can't set it working. My XML looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ws="http://www.mulesoft.org/schema/mule/ws" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:data-mapper="http://www.mulesoft.org/schema/mule/ee/data-mapper" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.6.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ws http://www.mulesoft.org/schema/mule/ws/current/mule-ws.xsd
http://www.mulesoft.org/schema/mule/ee/data-mapper http://www.mulesoft.org/schema/mule/ee/data-mapper/current/mule-data-mapper.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<ws:consumer-config name="Web_Service_Consumer" wsdlLocation="http://procese/sysworkflow/en/classic/services/wsdl2" service="ProcessMakerService" port="ProcessMakerServiceSoap" serviceAddress="http://procese:80/sysworkflow/en/classic/services/soap2" doc:name="Web Service Consumer"/>
<data-mapper:config name="JSON_To_XML" transformationGraphPath="json_to_xml.grf" doc:name="JSON_To_XML"/>
<flow name="ws_pm_login3Flow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<set-payload value="#[{"userid":"xyz.qwe", "password":"12345"}]" doc:name="Set Payload"/>
<data-mapper:transform config-ref="JSON_To_XML" doc:name="JSON To XML"/>
<ws:consumer config-ref="Web_Service_Consumer" operation="login" doc:name="Web Service Consumer"/>
</flow>
</mule>
The WS is working fine.
The mapper file json_to_xml.grf looks like:
<?xml version="1.0" encoding="UTF-8"?><Graph __version="3.5.0" author="abc" created="Tue Apr 21 13:27:56 EEST 2015" description="JSON To XML" guiVersion="3.4.4.P" id="1429614596881" licenseCode="Unlicensed" licenseType="Unknown" modified="Tue Apr 21 13:27:56 EEST 2015" modifiedBy="abc" name="JSON_To_XML" revision="1.0" showComponentDetails="false">
<Global>
<Metadata __index="0" __referenceCounter="1" __sourcePath="{}/login" _dataStructure="OBJECT" _id="__id" _type="Input" id="e941872a-c0e5-4148-ac8c-6010c4dad903">
<Record fieldDelimiter="," name="login" recordDelimiter="\n\\|\r\n\\|\r" type="delimited">
<Field __artificialType="_id" __systemManaged="true" name="__id" type="string"/>
<Field __index="1" __sourcePath="{}/login/password" containerType="SINGLE" label="password" name="password" type="string"/>
<Field __index="0" __sourcePath="{}/login/userid" containerType="SINGLE" label="userid" name="userid" type="string"/>
</Record>
</Metadata>
<Metadata __index="0" __referenceCounter="1" __sourcePath="{}/login" _dataStructure="OBJECT" _id="__id" _type="Output" id="d9e5b0f6-b757-46cb-89bf-a7662be5c77f">
<Record fieldDelimiter="," name="login" recordDelimiter="\n\\|\r\n\\|\r" type="delimited">
<Field __artificialType="_id" __systemManaged="true" name="__id" type="string"/>
<Field __index="0" __sourcePath="{}/login/password" containerType="SINGLE" label="password" name="password" type="string"/>
<Field __index="1" __sourcePath="{}/login/userid" containerType="SINGLE" label="userid" name="userid" type="string"/>
</Record>
</Metadata>
<Dictionary>
<Entry id="DictionaryEntry0" input="true" name="inputPayload" output="false" type="object"/>
<Entry id="DictionaryEntry1" input="false" name="outputPayload" output="true" type="object"/>
</Dictionary>
</Global>
<Phase number="0">
<Node cacheInMemory="true" charset="UTF-8" enabled="enabled" fileURL="dict:outputPayload" guiName="XML WRITER" guiX="900" guiY="20" id="EXT_XML_WRITER0" type="EXT_XML_WRITER">
<attr name="mapping"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<login xmlns:clover="http://www.cloveretl.com/ns/xmlmapping" clover:inPort="0">
<password>$0.password</password>
<userid>$0.userid</userid>
</login>]]></attr>
<attr name="_data_format"><![CDATA[XML]]></attr>
</Node>
<Node enabled="enabled" guiName="Foreach 'login' -> 'login'" guiX="460" guiY="20" id="FOREACH_LOGIN_LOGIN" transformClass="com.mulesoft.datamapper.transform.MelRecordTransform" type="REFORMAT">
<attr name="melScript"><![CDATA[//MEL
//START -> DO NOT REMOVE
output.__id = input.__id;
//END -> DO NOT REMOVE
output.password = input.password;
output.userid = input.userid;
]]></attr>
</Node>
<Node charset="UTF-8" enabled="enabled" fileURL="dict:inputPayload" guiName="JSON READER" guiX="20" guiY="20" id="JSON_READER0" type="JSON_READER">
<attr name="mapping"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Context xpath="/root">
<Context outPort="0" sequenceField="__id" xpath="object">
<Mapping cloverField="password" trim="true" xpath="password"/>
<Mapping cloverField="userid" trim="true" xpath="userid"/>
</Context>
</Context>
]]></attr>
<attr name="_data_format"><![CDATA[JSON]]></attr>
</Node>
<Edge debugMode="true" fromNode="FOREACH_LOGIN_LOGIN:0" guiBendpoints="" id="Edge1" inPort="Port 0 (in)" metadata="d9e5b0f6-b757-46cb-89bf-a7662be5c77f" outPort="Port 0 (out)" toNode="EXT_XML_WRITER0:0"/>
<Edge debugMode="true" fromNode="JSON_READER0:0" guiBendpoints="" id="Edge0" inPort="Port 0 (in)" metadata="e941872a-c0e5-4148-ac8c-6010c4dad903" outPort="Port 0 (out)" toNode="FOREACH_LOGIN_LOGIN:0"/>
</Phase>
</Graph>
When I start the process I get:
Error executing graph: ERROR (com.mulesoft.mule.module.datamapper.api.exception.DataMapperExecutionException). Message payload is of type: HashMap
I am using 3.6.1 EE
What am I missing?
Turns out it is a problem in mule to use the double quotes in JSON. I swithced to XML and now it is working fine.