Hello,
I have a problem with parameters in webservice call.
One of my webservice's parameters is defined as "OUT"
direction, that is it "acts as another return value": the
webservice sets the value of this OUT parameter and after I call
the WS, I should be able to read back this value in my client.
However, after the WS call Flex only lets me access "main"
result of WS - in "lastResult" property of WS tag. I do not know
how to get the value of that OUT parameter...
The only solution I found is to switch resultFormat on WS's
<mx:operation> tag to "e4x", then I can get whole server
response and read the OUT parameter from there. This is not a good
solution for me though, as the response will be XML - it will not
be parsed to Objects, as it is in default resultFormat setting; and
I really need to have it parsed.
So:
do you have any other idea how to access webservice OUT mode
parameters in Flex?Example:
- WS definition in C#:
[WebMethod]
public string OutParamTest (out string outParam) {
outParam = "This is my parameter with mode set to OUT. Come
to papa!";
return "This is normal return value";
}
- Flex:
<mx:WebService id="testWS" wsdl="..."
result="Alert(testWS.OutParamTest.lastResult)">
testWS.OutParamTest ()
// displays "This is normal return value". How to get to the
"This is my parameter with mode set to OUT" ???
- Example SOAP result from WS call:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<OutParamTestResponse xmlns="
http://tempuri.org/">
<OutParamTestResult>This is normal return
value</OutParamTestResult>
<outParam>This is my parameter with mode set to OUT.
Come to papa!</outParam>
</OutParamTestResponse>
</soap:Body>
</soap:Envelope>
- WSDL of webservice (generated automatically):
(...)
<s:element name="OutParamTestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="OutParamTestResult" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="outParam"
type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
(...)