Click here to Skip to main content
15,886,963 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I'm Using Microsoft Visual Studio 2017, In the project I'm calling Service reference from SAPME WEB service, recently we did an patch on SAPME. and now the service is not retrieving all the information in each single object.

I have tested the reference in SOAP UI, and here the web service yes it's retriving all the information.

So the Scenario is the Next:
In our development system we have run the update on SAPME system, then using the service reference without an update it does not retrive all the information. Once I do the update in the service reference it starts working properly in our Developmnet enviroument.

But once i do the update in the service reference it stops to retreive properly the information in Quality Enviroument(Whitout the SAPME Update).

And it happens in VS.

The topic is why in SOAPUI service is retreiving information properly but not when I use the service in the project. I have checked the mapping and that is OK

I will appreciate all Ideas about how sort it. since if the webservice is working properly but why its not looking compatible.

Once diference that I see on SOAPUI is:


XML
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap-env:body>
      <ns3:findUsersByFiltersResponse xmlns:ns4="mepapi:com:sap:me:reasoncode" xmlns:ns3="mepapi:com:sap:me:user" xmlns:ns5="http://www.sap.com/me/common" xmlns:ns2="http://www.sap.com/me/user">



XML
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap-env:body>
      <ns4:findUsersByFiltersResponse xmlns:ns5="mepapi:com:sap:me:reasoncode" xmlns:ns4="mepapi:com:sap:me:user" xmlns:ns3="http://www.sap.com/me/common" xmlns:ns2="http://www.sap.com/me/user">


What I have tried:

using SOAP to check if Web Service is retrieving information
Posted
Updated 8-Feb-18 4:02am
v2
Comments
Hermann Jung 10-Feb-18 3:43am    
It looks like the old client ignores some fields of new service response. You have already checked the mapping. So the only reason I can see is datamember order - the datacontractserializer depends on it. Try as follows:
Edit your sample service datacontract:
Add DataMember-Attribute if not already present.
Set DataMember(Order = 1) on members of original version.
Set DataMember(Order = 2) on members of new version.

If you already specified DataMember-Order - do not update order of original members; instead make sure new members have a higher order than highest original member order.

I hope this will solve your issue - good luck.
PS: Soap service versioning is a common scenario, the are many articles on web.


Another idea:
Diff generated service client code before vs after update. Pay attention on member names, namespaces and order.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900