on 10-20-2010 1:38 AM
I have created a BLT in MII (version 12.0.11 build 14), and am trying to use the WSDLGen to consume the web service generated by the transaction. I was originally trying in VB.NET, and had problems returning any results, so I switched to consuming the web service from another BLT.
When I enter the WSDLGen URL in the web service action block, it returns the XacuteWSSoap port and Xacute operation as expected. It also provides the input paramters to my first BLT as expected. However, when I enter parameters for the web service action block and run it, it does not return anything.
I have determined that the target transaction that I am trying to run is indeed executing, because part of the transaction saves the OutputXML to a file. After executing the webservice, I can export that file from the MII server, and it contains the output I expect. The webservice just doesn't return the output to the calling procedure.
Any thoughts on this one?
Hi,
one idea: in your target BLT, what datatype is the output parameter that should contain the expected result? If XML, try changing the datatype to String.
Besides from that, are there any entries in the NetWeaver Log when you test the webcall?
Michael
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This does allow the transaction to return the desired XML in text format. It's too bad it has to be done this way as now the transaction will pass everything as text instead of XML which will be a little less efficient when calling from .NET. It would be nice if SAP set up the WSDLGen to automatically contain the output structure of the OutputXML when it is in XML format.
Thanks very much for your help!
John
Is there any news that this will be solved in a future release? Because this is just pathetic!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi jlwilloz,
I believe that I have the same problem as you.
I have a XML structure within a MII Transaction that I want to send as an Output to the transaction WebService.
If I set the Output to type XML it doesn't work.
If the Output is set to String it returns the output value, but doing it that way creates a very bad WSDL definition of the WebService, making it a lot harder to create a client for that service.
I've tried to set the XSD on the XML output, but I keep getting a "Premature End of File" error...
Did you get your web service to work properly?
Or did you just give up and use the string output instead?
Thanks,
Marcelo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Unfortunately I was never able to get this to work properly. I had a reference document set up for the OutputXML variable describing the structure of the output, but it never would show up properly in the WSDL. I am currently using string output. I am hoping that this will be fixed in later versions. We are currently on 12.0.
I'm using 12.1, but still having the same problem.
When you assign a XSD file to the output does that work?
With the XSD information, MII should be able to create a WSDL for the output and create the XML output properly.
I've validated my XSD file with all kinds of XML validators (like XMLSpy) and it still gives me the "premature end of file" error when I click on OK to assign the XSD file to the XML output.
On the transaction properties, when I add a new property and choose the type as XML, it gives me the option to assign a XSD to it. Check the print screen bellow:
[http://i79.photobucket.com/albums/j160/bonk22/XML_output.jpg]
The problem is that when I assign a XSD there and click OK, it gives me an error saying: "premature end of file"
I've checked the XSD, validated it with XMLSpy, validated it with online tools and it all seems fine...
I'm guessing it has no other way than sending the XML as a string.
It doesn't really make sense to send an XML as an encoded string, since we are talking about web services.
Hard to explain to a client that I cannot return a XML in a web service call...
You are correct the url I gave you is internal and I meant it just as an example. If you are not seeing the output of the web service from the .NET side it's generally because the output of the transaction is not defined from the MII side. Make sure that you an XML output parameter assigned to your transaction. In addtion make sure that you have assigned a reference doument to that parameter. After yuou do that you must refresh the web service in .NET.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We are using version 12.0.9, so I don't think it's a version issue. Within Visual Studio we add a web reference with the following url:
http://sapnt187:50000/XMII/WSDLGen/Bemis/ShopFloor/Common/ws_com_GetPlant
The VB.NET code to refernce this web service looks like this:
Dim webService As New GetPlantWS.XacuteWS
Dim inputParams As New GetPlantWS.InputParams
Dim results As GetPlantWS.Rowset
inputParams.Plant = plant
results = webService.Xacute(Me.serverUserID, Me.serverPassword, inputParams)
.NET provides the web service specific InputParams and Rowset types.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I can't connect to the WSDLGen link you sent since it must be a server internal to your company. Could you please post the text that appears when you go to this link?
As you mentioned, .NET provides all of the input params for me when I use the webservice, but it doesn't provide anything with regards to the output data structure that is in the outputXML file. I can only get it to return the entire outputXML as text and then read it into a XML.XMLDocument object in .NET.
The output parameter can be of type XML. If you do this you need to assign a reference document to the output variable. Once this is you can reference the returned information in VB.NET as a strongly typed collection. We have a large application that makes calls to many transactions using this technique.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I wish it were so. I already had a reference document correctly assigned to the OutputXML when I tried this the first time. I also verified that it was working properly by calling the transaction from another BLT, and noting that I could see the full XML structure of the OutputXML. However, when I used the WSDLGen to set up a reference in .NET, I could not see any of the output structure in Visual Studio.
What version of MII are you running? Maybe this is a bug in 12.0.11 (the version we are running currently).
Can you send me an example of the WSDLGen that you get from the transaction you are talking about? If the output structure can be discovered in .NET, it must be defined in the WSDLGen. In my case, it is not. Only the input structure.
John
User | Count |
---|---|
12 | |
7 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.