I'm trying to get data from an ALM application we use(Collabnet TeamForge) using a SOAP webservice, and am running into a problem. I should mention that I am new to both Flex, and webservices.
I used the "Import Web Services" option in Flex Builder 3, and had it generate code for all operations in the WSDL. Some of them work just fine. However, there are several where the data from the SOAP response does not get into the Flex object. The senario that doesn't work is when the response contains a data type that extends another datatype. In TeamForge, they have a type called TrackerSoapRow. It extends FolderSoapRow, adding 3 fields. The problem seems to be that in the response from TeamForge, the 3 fields defined in TrackerSoapRow are in the middle of the fields defined in FolderSoapRow. I've debugged into it, and the problem occures in mx.rpc.xml.XMLDecoder.getApplicableValues( starting at line 2204 of XMLDecoded.as). As I read the code, the only way a match can be found is if the fields in the response are in the exact same order as in the definintion. When its processing the extended data type( by a call to XMLDecoder.decodeComplexExtension ) at some point, one of the derived type's fields is encountered, and the process stops.
I have called the service using soapui and verified that all the data I expect is in the response.
As I mentioned, I'm new to web services. So, I suppose its possible that the format of the data being returned from TeamForge is incorrect. That they are not supposed to intermingle base and derived fields. If thats the case, then I need to report this as a bug to Collabnet.
All help is appreciated.