Hello All, If have some existing web services that were broken when I upgraded to the 3.1 flex SDK. I believe it has to do with the SOAP Decoder. I needed to get the newest SDK because there were other fixes I was awaiting.
I have an Actionscript type that I'm decoding through the SchemaTypeRegistry: public class FooDogVO implements IValueObject { public var quantityBasedFunding : Boolean; public var numRecordsOrdered : int; public var numRecordsForPurchase : int; public var invoiceItems : ArrayCollection = new ArrayCollection(); public var fundedQuantityAccounts : ArrayCollection = new ArrayCollection(); public var paymentAccounts : ArrayCollection = new ArrayCollection(); ... } I'm calling a WebService that is returning the following SOAP Type, that is mapped via the SchemaTypeRegister to FooDogVO: <xsd:complexType name="FooDogType"> <xsd:sequence> <xsd:element name="numRecordsOrdered" type="xsd:int"/> <xsd:element name="quantityBasedFunding" type="xsd:boolean"/> <xsd:element maxOccurs="1" minOccurs="0" name="fundedQuantityAccounts"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="fundedQuantityAccount" type="PaymentOptionType"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="numRecordsForPurchase" type="xsd:int"/> <xsd:element maxOccurs="1" minOccurs="0" name="invoiceItems"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="invoiceItem" type="InvoiceItemType"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="total" type="xsd:double"/> <xsd:element maxOccurs="1" minOccurs="0" name="paymentAccounts"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="paymentAccount" type="PaymentOptionType"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="applied" type="xsd:double"/> <xsd:element name="remaining" type="xsd:double"/> <xsd:element name="allowNewCreditCard" type="xsd:boolean"/> <xsd:element maxOccurs="1" minOccurs="0" name="newCreditCard" type="PaymentOptionType"/> </xsd:sequence> </xsd:complexType> Before the Flex 3.1 update, The SOAP decoder properly made the FooDogVO.paymentAccounts property an ArrayCollection of PaymentOptionTypes. Now, however, with the Flex 3.1 SDK update, the FoDogVO.paymentAccouns is an ArrayCollection to an ArrayCollection of PaymentOptionTypes. It's now FooDogVO.paymentAccounts.[ArrayCollection of PaymentOptionTypes] So, I'm looking at the list of Bug fixes for Flex SDK 3.1 and I find the following two bugs: https://bugs.adobe.com/jira/browse/SDK-14321 https://bugs.adobe.com/jira/browse/SDK-14871 But I'm not really sure what's going on with the new Soap Decoder stuff. It seems like I was inadvertently performing a workaround before, but what really should be the proper mapping of elements of completTypes to ArrayCollections? Thanks for any input on a) what's going on b) how I should properly be handling this, whether on the Web Service side, or the Flex client. Naturally, I can always manually remap the properties when the Soap result completes, keeping my VOs (which the application is coded against) the same, but ideally, I'd just do "the right thing" with the SOAP Decoder/Schema Type registry. Thanks, Todd