SAP Web Service from .NET through WCF

I am trying to use the SAP web service from .NET through WCF. I created a proxy server and I configured the app.config file.

Here is my test code:

WebServiceSAP.ZTEST_RFCClient myWCFService = new WebServiceSAP.ZTEST_RFCClient("MyEndPoint"); myWCFService.ClientCredentials.UserName.UserName = "<UserName>"; myWCFService.ClientCredentials.UserName.Password = "<Password>"; WebServiceSAP.ZTestRfc parameter = new WebServiceSAP.ZTestRfc(); parameter.TestInput = "This is a simple test"; WebServiceSAP.ZTestRfcResponse response = myWCFService.ZTestRfc(parameter); Console.WriteLine(reponse.TestOutput); Console.ReadLine(); 

The ZTestRFC SAP method is a very simple function that takes an input string and outputs: "Result: <the input string>"

When I call the ZTestRFC method, I got a null value in the response of the variable. But SOAP messages seem beautiful.

SOAP Request

 <MessageLogTraceRecord> <HttpRequest xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> <Method>POST</Method> <QueryString></QueryString> <WebHeaders> <VsDebuggerCausalityData>uIDPoxJmI5NcDatNiPM/wFAr52kAAAAAtqHAVnNWjEeMpMExOyr/vN7OXwCJZltNnikldpg5migACQAA</VsDebuggerCausalityData> </WebHeaders> </HttpRequest> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:sap-com:document:sap:soap:functions:mc-style:ZTEST_RFC:ZTestRfcRequest</Action> </s:Header> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ZTestRfc xmlns="urn:sap-com:document:sap:soap:functions:mc-style"> <TestInput xmlns="">This is a simple test</TestInput> </ZTestRfc> </s:Body> </s:Envelope> </MessageLogTraceRecord> 

SOAP Response

 <MessageLogTraceRecord> <HttpResponse xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> <StatusCode>OK</StatusCode> <StatusDescription>OK</StatusDescription> <WebHeaders> <Content-Length>359</Content-Length> <Content-Type>text/xml; charset=utf-8</Content-Type> <Set-Cookie>MYSAPSSO2=AjExMDABAAxQMDEwMDA1MSAgICACAAMwNDADAAhEMTEgICAgIAQADDIwMTAxMTEwMTIwOQUABAAAAAgGAAFYCQABU%2f8A9jCB8wYJKoZIhvcNAQcCoIHlMIHiAgEBMQswCQYFKw4DAhoFADALBgkqhkiG9w0BBwExgcIwgb8CAQEwEzAOMQwwCgYDVQQDEwNQMTECAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEwMTExMDEyMDk0OFowIwYJKoZIhvcNAQkEMRYEFJC%2fNFLVBnu1ZAodWTlPApEs8sApMAkGByqGSM44BAMEMDAuAhUBS844BOB%2f8NgEGuepMgLaKbVEGGUCFQFLs6HiI%21BWT1MejMqvABd3%2fJFVMw%3d%3d; path=/; domain=.<domain ... ></Set-Cookie> <Server>SAP NetWeaver Application Server / ABAP 700</Server> </WebHeaders> </HttpResponse> <SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"></s:Header> <SOAP-ENV:Body> <rfc:ZTestRfcResult xmlns:rfc="urn:sap-com:document:sap:soap:functions:mc-style"> <TestOutput xmlns="">Result:</TestOutput> </rfc:ZTestRfcResult> </SOAP-ENV:Body> </SOAP-ENV:Envelope> </MessageLogTraceRecord> % 2f8A9jCB8wYJKoZIhvcNAQcCoIHlMIHiAgEBMQswCQYFKw4DAhoFADALBgkqhkiG9w0BBwExgcIwgb8CAQEwEzAOMQwwCgYDVQQDEwNQMTECAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEwMTExMDEyMDk0OFowIwYJKoZIhvcNAQkEMRYEFJC% 2fNFLVBnu1ZAodWTlPApEs8sApMAkGByqGSM44BAMEMDAuAhUBS844BOB% 2f8NgEGuepMgLaKbVEGGUCFQFLs6HiI% 21BWT1MejMqvABd3% 2fJFVMw% 3d% 3d; <MessageLogTraceRecord> <HttpResponse xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> <StatusCode>OK</StatusCode> <StatusDescription>OK</StatusDescription> <WebHeaders> <Content-Length>359</Content-Length> <Content-Type>text/xml; charset=utf-8</Content-Type> <Set-Cookie>MYSAPSSO2=AjExMDABAAxQMDEwMDA1MSAgICACAAMwNDADAAhEMTEgICAgIAQADDIwMTAxMTEwMTIwOQUABAAAAAgGAAFYCQABU%2f8A9jCB8wYJKoZIhvcNAQcCoIHlMIHiAgEBMQswCQYFKw4DAhoFADALBgkqhkiG9w0BBwExgcIwgb8CAQEwEzAOMQwwCgYDVQQDEwNQMTECAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEwMTExMDEyMDk0OFowIwYJKoZIhvcNAQkEMRYEFJC%2fNFLVBnu1ZAodWTlPApEs8sApMAkGByqGSM44BAMEMDAuAhUBS844BOB%2f8NgEGuepMgLaKbVEGGUCFQFLs6HiI%21BWT1MejMqvABd3%2fJFVMw%3d%3d; path=/; domain=.<domain ... ></Set-Cookie> <Server>SAP NetWeaver Application Server / ABAP 700</Server> </WebHeaders> </HttpResponse> <SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"></s:Header> <SOAP-ENV:Body> <rfc:ZTestRfcResult xmlns:rfc="urn:sap-com:document:sap:soap:functions:mc-style"> <TestOutput xmlns="">Result:</TestOutput> </rfc:ZTestRfcResult> </SOAP-ENV:Body> </SOAP-ENV:Envelope> </MessageLogTraceRecord> 

I do not know what might happen. Any ideas?

Thanks in advance

+6
web-services wcf sap
source share
1 answer

Offline, it looks like when you created the proxy (BTW, what method did you use for this?), SAP told .NET that the parameter and the response would be in some namespace, but you are sending the parameter in an empty namespace ("). Maybe therefore, the SAP service returns β€œResult:". You may get a null response because your proxy server might expect the TestOutput element to be in a different namespace.

Take a look at the generated proxy classes and see what namespaces are expected.

+3
source share

All Articles