Is there a SOAP API alternative for geo-autocomplete that is available in REST API? Is it EncodeDecodeLLSRQ? If so, it is always providing the below response when I try with the below provided request. I get the same response for the example provided in doc too.
<EncodeDecodeRS Version="2.0.0" 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">
<stl:ApplicationResults status="NotProcessed">
<stl:Error type="Application" timeStamp="2016-10-26T03:33:02-05:00">
<stl:SystemSpecificResults>
<stl:Message>Unexpected request processing error</stl:Message>
<stl:ShortText>ERR.SWS.PROVIDER.REQUEST_HANDLER_ERROR</stl:ShortText>
</stl:SystemSpecificResults>
</stl:Error>
</stl:ApplicationResults>
</EncodeDecodeRS>
Request:
<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:ns="http://webservices.sabre.com/sabreXML/2011/10">
<soapenv:Header>
<sec:Security>
<sec:BinarySecurityToken>--Token--</sec:BinarySecurityToken>
</sec:Security>
<mes:MessageHeader>
<mes:From>
<mes:PartyId>from</mes:PartyId>
</mes:From>
<mes:To>
<mes:PartyId>ws</mes:PartyId>
</mes:To>
<mes:CPAId>--CPAId--</mes:CPAId>
<mes:ConversationId>eservices#sabre.com</mes:ConversationId>
<mes:Action>EncodeDecodeLLSRQ</mes:Action>
<mes:MessageData>
<mes:MessageId>00000</mes:MessageId>
<mes:Timestamp>233</mes:Timestamp>
</mes:MessageData>
</mes:MessageHeader>
</soapenv:Header>
<soapenv:Body>
<ns:EncodeDecodeRQ Version="2.0.0">
<ns:Encode>
<ns:Address>
<ns:CityName>Atlanta</ns:CityName>
</ns:Address>
</ns:Encode>
</ns:EncodeDecodeRQ>
</soapenv:Body>
</soapenv:Envelope>
I don't think EncodeDecodeLLSRQ was designed to do what you're looking for but it might just work. For example, when entering an incomplete city name, the service will return a list of possible values.
RQ:
<CityName>MONTEV</CityName>
RS:
<Text>MVD MONTEVIDEO, URUGUAY</Text>
<Text>MVE MONTEVIDEO MN, MINNESOTA,USA</Text>
<Text>FMV MONTEVIDEO FLUVIA, URUGUAY</Text>
<Text>VDT MONTEVIDEO TC BUS, URUGUAY</Text>
Do you have access to SOAP API? If so, could you please share the complete RQ to see if there's something wrong there?
Related
I want call TravelItineraryAddInfo to add passenger to PNR, but api return error ENTRY VALID ONLY FOR SUBSCRIBER PNR , ERR.SWS.HOST.ERROR_IN_RESPONSE.
How can I fix this issue ?
My request
<TravelItineraryAddInfoRQ 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" TimeStamp="2016-05-17T15:30:00-06:00" Version="2.2.0" ReturnHostCommand="false">
<AgencyInfo>
<Address>
<AddressLine>xxxx</AddressLine>
<CityName>xxx</CityName>
<CountryCode>XX</CountryCode>
<PostalCode>xxxx</PostalCode>
<StateCountyProv StateCode="xx"/>
<StreetNmbr>xx</StreetNmbr>
</Address>
</AgencyInfo>
<CustomerInfo>
<ContactNumbers>
<ContactNumber InsertAfter="0" LocationCode="VN" NameNumber="1.1" Phone="984163620" PhoneUseType="H"/>
</ContactNumbers>
<Email Address="xxx#gmail.com" LanguageOverride="O" NameNumber="1.1" Type="CC"/>
<PersonName Infant="false" NameNumber="1.1" PassengerType="ADT">
<GivenName>Smith</GivenName>
<Surname>TEST</Surname>
</PersonName>
</CustomerInfo>
This is response api:
<stl:SystemSpecificResults>
<stl:Message>.ENTRY VALID ONLY FOR SUBSCRIBER PNR</stl:Message>
<stl:ShortText>ERR.SWS.HOST.ERROR_IN_RESPONSE</stl:ShortText>
</stl:SystemSpecificResults>
</stl:Error>
request-
<soapenv:Body>
<ns:TravelItineraryModifyInfoRQ Version="2.1.1">
<ns:CustomerInfo>
<ns:CustLoyalty MembershipID="520000001221" NameNumber="02.01"
ProgramID="EY" RPH="1" />
</ns:CustomerInfo>
</ns:TravelItineraryModifyInfoRQ>
</soapenv:Body>
response-
<soap-env:Body>
<TravelItineraryModifyInfoRS Version="2.1.1"
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">
<stl:ApplicationResults status="NotProcessed">
<stl:Error type="BusinessLogic" timeStamp="2018-04-20T13:13:39-
05:00">
<stl:SystemSpecificResults>
<stl:Message>.EY/EY FQTV DATA EXISTS FOR THIS PASSENGER.SEE
ITEM 02</stl:Message>
<stl:Message>.ENTRY NOT PROCESSED BEGINNING WITH</stl:Message>
<stl:Message>FF1¤EY100014486283-02.01</stl:Message>
<stl:ShortText>ERR.SWS.HOST.ERROR_IN_RESPONSE</stl:ShortText>
</stl:SystemSpecificResults>
</stl:Error>
</stl:ApplicationResults>
</TravelItineraryModifyInfoRS>
</soap-env:Body>
Is modification not allowed on membership id.
http://webservices.sabre.com/drc/servicedoc/TravelItineraryAddInfoLLSRQ_v2.2.0_Sample_Payloads.xml
Seems it can be.
It would appear that the FF data for passenger 02.01 is stored in RPH2, and you're attempting to modify 1, while the passenger's data is still in RPH2.
Try modifying the request to RPH 2:
<soapenv:Body>
<ns:TravelItineraryModifyInfoRQ Version="2.1.1">
<ns:CustomerInfo>
<ns:CustLoyalty MembershipID="520000001221" NameNumber="02.01"
ProgramID="EY" RPH="2" />
</ns:CustomerInfo>
</ns:TravelItineraryModifyInfoRQ>
</soapenv:Body>
Below is sample request I made, and below is the response I'm getting.
If you can post sample SpecialServiceRq OSI entry request and response sample that would help a lot.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<SpecialServiceRQ ReturnHostCommand="false" TimeStamp="2018-03-05T19:02:32.219-05:00" Version="2.2.1" xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:ns2="http://services.sabre.com/STL/v01">
<SpecialServiceInfo>
<SecureFlight SegmentNumber="A">
<PersonName DateOfBirth="1969-02-25" Gender="M" NameNumber="1.1">
<GivenName>LIAM</GivenName>
<Surname>JACKSON</Surname>
</PersonName>
</SecureFlight>
<Service SSR_Code="OSI">
<Text>CTCE/ACCEPT//TEST.CORP.COMPANY.COM</Text>
</Service>
</SpecialServiceInfo>
</SpecialServiceRQ>]
[03-05-18 19:02:32.462] [SplitAgentBooker_10009498321_10009498321_2139481603] INFO SABREpl_timings - : T:0.234 secs S:ABE_ABEBOOKD01_9RVB_000000000002 A:SpecialServiceLLSRS M:2139481603_37114603_37772403_14 RSP: [<?xml version="1.0" encoding="UTF-8"?>
<SpecialServiceRS Version="2.2.1" xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:stl="http://services.sabre.com/STL/v01" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<stl:ApplicationResults status="NotProcessed">
<stl:Error timeStamp="2018-03-05T18:02:32-06:00" type="BusinessLogic">
<stl:SystemSpecificResults>
<stl:Message>.CHECK ENTRY FORMAT.NOT ENT BGNG WITH</stl:Message>
<stl:Message>3OSI CTCE/ACCEPT//TEST.CORP.COMPANY.COM</stl:Message>
<stl:ShortText>ERR.SWS.HOST.ERROR_IN_RESPONSE</stl:ShortText>
</stl:SystemSpecificResults>
</stl:Error>
</stl:ApplicationResults>
</SpecialServiceRS>
If your intention is to create the 3CTCEA/ACCEPT//TEST.CORP.COMPANY.COM-1.1 format, then you don't have to use the SecureFlight node, as that one creates the 3DOCS format.
I would advise to remove it altogether:
<SpecialServiceRQ TimeStamp="2018-03-05T19:02:32.219-05:00" Version="2.2.1" xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:ns2="http://services.sabre.com/STL/v01" ReturnHostCommand="true">
<SpecialServiceInfo>
<Service SSR_Code="CTCE" SegmentNumber="A">
<PersonName NameNumber="1.1"/>
<Text>ACCEPT//TEST.CORP.COMPANY.COM</Text>
</Service>
</SpecialServiceInfo>
This way you will create the above format. If this is not the format let me know which one is and I will help with that one as well.
I am trying to get sessionless token. Following is the xml but its not working an throwing error. it is giving error. There are couple of things missing and I am not sure what to pass there e.g sec:BinarySecurityToken, SabreAth, mes:Role.
<StackTrace>com.sabre.universalservices.base.exception.InvalidEbXMLException: errors.xml.USG_EBXML_FIELD_TOO_LONG</StackTrace>
Request XML
<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:web="http://webservices.sabre.com">
<soapenv:Header>
<sec:Security>
<!--Optional:-->
<sec:UsernameToken>
<!--Optional:-->
<sec:Username>123</sec:Username>
<!--Optional:-->
<sec:Password>mypass</sec:Password>
<!--0 to 2 repetitions:-->
<sec:NewPassword>mypass</sec:NewPassword>
<!--Optional:-->
<Organization>org1</Organization>
<!--Optional:-->
<Domain>AAA</Domain>
</sec:UsernameToken>
<!--Optional:-->
<sec:SabreAth>?</sec:SabreAth>
<!--Optional:-->
<sec:BinarySecurityToken>?</sec:BinarySecurityToken>
</sec:Security>
<mes:MessageHeader mes:id="?" mes:version="?">
<mes:From>
<!--1 or more repetitions:-->
<mes:PartyId mes:type="?">sastaticket.pk</mes:PartyId>
<!--Optional:-->
<mes:Role>?</mes:Role>
</mes:From>
<mes:To>
<!--1 or more repetitions:-->
<mes:PartyId mes:type="?">https://sws-crt.cert.havail.sabre.com</mes:PartyId>
<!--Optional:-->
<mes:Role>?</mes:Role>
</mes:To>
<mes:CPAId>?</mes:CPAId>
<mes:ConversationId>1234</mes:ConversationId>
<mes:Service mes:type="?">Session</mes:Service>
<mes:Action>TokenCreateRQ</mes:Action>
<mes:MessageData>
<mes:MessageId>?</mes:MessageId>
<mes:Timestamp>2018-01-28T00:00:00</mes:Timestamp>
<!--Optional:-->
<mes:RefToMessageId>?</mes:RefToMessageId>
<!--Optional:-->
<mes:TimeToLive>2018-01-28T00:00:00</mes:TimeToLive>
<!--Optional:-->
<mes:Timeout>2018-01-28T00:00:00</mes:Timeout>
</mes:MessageData>
<!--Optional:-->
<mes:DuplicateElimination>?</mes:DuplicateElimination>
<!--Zero or more repetitions:-->
<mes:Description xml:lang="?">?</mes:Description>
<!--You may enter ANY elements at this point-->
</mes:MessageHeader>
</soapenv:Header>
<soapenv:Body>
<web:TokenCreateRQ Version="?"/>
</soapenv:Body>
</soapenv:Envelope>
It seems you are sending too much information in the MessageData node. If you follow the example Sabre shows in Dev Studio, only MessageId and TimesStamp make the trick. For Sabre WS, not all optional nodes are sometimes required, and in this case you are sending extra information which is not needed.
You will want to remove this:
<mes:TimeToLive>2018-01-28T00:00:00</mes:TimeToLive>
<mes:Timeout>2018-01-28T00:00:00</mes:Timeout>
Just something like this will do it:
<mes:MessageData>
<mes:MessageId>?</mes:MessageId>
<mes:Timestamp>2018-01-28T00:00:00</mes:Timestamp>
</mes:MessageData>
Also be careful with the Domain, which should be either AA or DEFAULT, but not "AAA".
Since you don't have a token, you will also have to remove this node:
<sec:BinarySecurityToken>?</sec:BinarySecurityToken>
The service is a bit different from those that already have a token.
I'm trying to get a document from Alfresco 5.2 using CMIS web services binding (http://server:8080/alfresco/cmisws/cmis?wsdl) and get an error.
Using the wireshark I found that the problem is that the alfresco in the response returns cmis:item element. But according to cmis 1.0 protocol it should not be returned. Why is this happening?
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="0">
<wsu:Timestamp
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2017-10-06T15:33:27.634Z</wsu:Created>
</wsu:Timestamp>
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password wsse:Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">0000</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns2:getTypeDescendants xmlns:ns2="http://docs.oasis-open.org/ns/cmis/messaging/200908/" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">
<ns2:repositoryId>53131d3f-d80b-4964-87d9-08b614fe7861</ns2:repositoryId>
<ns2:depth>-1</ns2:depth>
<ns2:includePropertyDefinitions>false</ns2:includePropertyDefinitions>
</ns2:getTypeDescendants>
</soapenv:Body>
</soapenv:Envelope>
Response(part):
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getTypeDescendantsResponse xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/">
<types>
<type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:cmisTypeItemDefinitionType">
<ns2:id>cmis:item</ns2:id>
<ns2:localName>item</ns2:localName><ns2:localNamespace>http://www.alfresco.org/model/cmis/1.0/cs01</ns2:localNamespace>
<ns2:displayName>Item Type</ns2:displayName>
<ns2:queryName>cmis:item</ns2:queryName>
<ns2:description>CMIS Item</ns2:description>
<ns2:baseId>cmis:item</ns2:baseId>
<ns2:creatable>false</ns2:creatable>
<ns2:fileable>false</ns2:fileable>
<ns2:queryable>false</ns2:queryable>
<ns2:fulltextIndexed>true</ns2:fulltextIndexed>
<ns2:includedInSupertypeQuery>true</ns2:includedInSupertypeQuery>
<ns2:controllablePolicy>true</ns2:controllablePolicy>
<ns2:controllableACL>true</ns2:controllableACL>
</type>