Frustrated with Sabre web services, grrrrr!
The version of the TravelItineraryRead web service I’m using is “2003A.TsabreXML1.15.1”. Yes, I know its a bit dated but it fits the needs .. until recently. I’m seeing more Rail segments come across and this version does not support them. So, I wanted to test the latest TravelItineraryRead version to see how or if Rail is supported.
So I built my proxy classes using
wsdl.exe http://webservices.sabre.com/wsdl/tpfc/TravelItineraryReadLLS2.2.0RQ.wsdl /namespace:OTA_TravelItineraryReadNS2_2_0
And setup my code to call the new service
1 2 3 4 5 | . . . var serviceObj = new TravelItineraryReadService(); serviceObj.MessageHeaderValue = msgHeader; serviceObj.Security = security; TravelItineraryReadRS response = serviceObj.TravelItineraryReadRQ(req); |
… and I get a null response. No errors or exceptions just a null response. So, I tweak my objects and try again – same null response. Make more changes – same null response. I go through several cycles of this and I’m stuck, I need help – another set of eyes to see what I’m doing wrong. (BTW, Sabre’s documentation on this web service is horrible. This is the root of my problem)
Next I contact Sabre’s web services support through email. This is my frustration … The email conversation goes on for 6 days. Maybe their support group is outside the USA or their policy it to email a maximum of a few times per day. Whichever the case, it is painfully slow dealing with them. The end result of this painfully slow email conversation is nothing, nada, zip, still getting null. The support group doesn’t have aqueduct documentation, no code samples, no code ownership and certainly no expertise.
Long story shortened, this was my problem:
1 2 3 4 5 6 7 8 9 10 11 12 13 | MessageHeader msgHeader = new MessageHeader(); // If the msgHeader.Action is not exactly // "TravelItineraryReadLLSRQ" // your response will be null msgHeader.Action = "TravelItineraryReadLLSRQ"; Service service = new Service(); service.Value = "TravelItineraryReadLLSRQ"; // THIS IS NOT USED!!! service.type = "this object can be null"; msgHeader.Service = service; // THIS CAN BE NULL, IT'S NOT USED . . . |
Now I can finally start my research on Rail segments!!
There are not many “open” resources available for Sabre web services. I’ve written a lot of code to consume them…. contact me if you are stuck, maybe I can help.
I so feel up ur pain…took the better part of a year to develop a booking engine. They neglected to tell us that we received errors in our booking process because not all hotels are in the testing environment… It took 6 weeks to get an answer on that with about 30+ phone calls when someone finally admitted that the testing environment had some issues that would prevent successful test bookings… And the only way to know would be to test in production!
Still can’t filter rate types in the response.
We’re taking a stab at sws 2.0 in php…. Any pointers or tips?
No experience tapping the web services with PHP but as you’ve learned, I don’t use the test environment – too many false errors.
On my hotel search, in the request I’ll only ask for negotiated rate codes. I perform all the response filtering in my code because I don’t trust sabre to do it correctly.