Hi Matt, My current problem and questions are concerning serialization, not deserialization. Flex is creating SOAP requests differently for 2 methods of the same service, even though the AS is virtually identical. My only guess is that its due to the WSDL. Here is a recap from my previous posts.
// SERIALIZES AS EXPECTED AND WORKS CORRECTLY args.ContainersToRetrieve = new Array(); args.ContainersToRetrieve.push("Client"); args.ContainersToRetrieve.push("IndustryTrends"); // RESULTING SOAP CALL <ContainersToRetrieve> <ContainerType>Client</ContainerType> <ContainerType>IndustryTrends</ContainerType> // CORRESPONDING PIECE OF WSDL <s:element minOccurs="0" maxOccurs="unbounded" name="ContainerType" type="tns:ContainerType"/> (tns:ContainerType maps to an enum collection) // ==================================== // DOES NOT SERIALIZE AS EXPECTED, CAUSING AN ERROR IN THE WEB SERVICE args.RPRSelections = new Object(); args.RPRSelections.SelectedPlans = new Array(); for(var i:int = 0; i < model.arr_selectedPlans.length; i++) { args.RPRSelections.SelectedPlans.push(model.arr_selectedPlans[i]); } // RESULTING SOAP CALL // ignores the SelectedPlans array that was created. <RPRSelections> <item>78167</item> <item>78173</item> // WHAT IT SHOULD LOOK LIKE <RPRSelections> <SelectedPlans> <PlanNumber>78167</PlanNumber> <PlanNumber>78173</PlanNumber> <SelectedPlans> </RPRSelections> // CORRESPONDING PIECE OF WSDL <s:element minOccurs="0" maxOccurs="1" name="SelectedPlans" type="tns:ArrayOfString"/> <s:complexType name="ArrayOfString"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="PlanNumber" nillable="true" type="s:string"/> </s:sequence> </s:complexType> I would LOVE to know how to fix this as right now its a total deal breaker for my project. Thanks, Ben --- In flexcoders@yahoogroups.com, "Matt Chotin" <[EMAIL PROTECTED]> wrote: > > I'm not sure how WSDL structure would affect deserialization. We have > mappings of the standard types into ActionScript versions. There's not > a huge number of those types so we map as best as possible. Are you > looking for those exact details? As far as RPC vs. doc-literal, I > believe that the WSDL for a doc-lit generally provides less information > that we can use so we're less likely to be able serialize or deserialize > with as much accuracy as we attempt in RPC. If you use > resultFormat="xml" or e4x of course the doc-lit services will work fine, > though I've seen serialization work fine with doc-lit too. > > > > Sorry, not sure if that is very helpful. If you have a more specific > issue I might be able to forward that in, though the engineer who really > knows our library at this point is on vacation. > > > > Matt > > > > > > ________________________________ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of ben.clinkinbeard > Sent: Friday, August 11, 2006 10:48 AM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] Re: Clarification needed on how WSDL affects > conversion of AS objects to SOAP > > > > Hi Matt, > > The types of things I would like to see explained are what I mentioned > in my previous posts. Stuff like how does > WSDL structure affect Flex's serialization of objects? (this is a big > one) and what differences are there in Flex's treatment of Doc/Literal > vs RPC/Encoded web services? > > I would also be more than willing to alpha/beta test any new > functionality as my entire app revolves around .NET web services. > > Thanks, > Ben > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > , "Matt Chotin" <mchotin@> wrote: > > > > We have folks working on a complete rewrite of the web service library > > in an attempt to really bring it up to snuff. However it won't be > > available until the next major release. I believe we do have some web > > service articles in the works. If you have suggestions for what you'd > > like to see as far as tutorials or articles on the subject let me know > > offlist. > > > > > > > > Matt > > > > > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > ] On > > Behalf Of ben.clinkinbeard > > Sent: Wednesday, August 09, 2006 5:56 AM > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Re: Clarification needed on how WSDL affects > > conversion of AS objects to SOAP > > > > > > > > Hi Franck, > > > > I am also impressed at how powerful Flex + web services seem like they > > could be and I don't think my issue is related to a bug. My complaint > > is that, as far as I know, there are zero Adobe sponsored articles or > > tutorials about using web services in anything but the most basic and > > mundane ways. As both of us have said, web services are the mechanism > > that will allow the widest adoption and impact of Flex (I also work in > > an environment where money is not the deciding factor), yet they have > > seemingly ignored the topic in their communications to developers, in > > favor FDS at every turn. > > > > Like FDS, web services are a very complex topic, but we have virtually > > no information on the finer points of their implementation. How does > > WSDL structure affect Flex's serialization of objects (my current > > issue)? What differences are there in Flex's treatment of Doc/Literal > > vs RPC/Encoded web services? Those kinds of things. Without Jesse's > > sample app on how to use web services with Flex 2 + Cairngorm 2 we'd > > really be screwed. > > > > All I am saying is that the focus on FDS seems unrealistic and > > counter-productive to the overarching goal of massive Flex adoption. I > > would venture to guess that the overwhelming majority of organizations > > (90%+) will not deploy FDS. Whether it be due to financial, platform > > or other infrastructure reasons, it simply doesn't fit into most > > stacks. That being said, you would think they could give some more > > detailed info on how to implement the pieces of the framework that the > > rest of us are going to use. Like I said, I think Flex is great. > > Really great. I just don't want to see them blow the adoption > > challenge. Again. > > > > Ben > > > > PS - I am using Doc/literal web services > > > > --- In flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > , "Franck de Bruijn" > > <franck.de.bruijn@> wrote: > > > > > > Hi Ben, > > > > > > > > > > > > Let's try not to be too pessimistic, although you might be right > that > > > Adobe's focus is more on the FDS part than the webservices part. It > > must be > > > a hell of a complicated module and indeed, more money to be gained. > > > > > > > > > > > > I have quite some experience now with webservices, and they are > > extremely > > > difficult to work with. And I don't believe that the first release > of > > a > > > product can be error free. So far, I am quite impressed with the > > support of > > > Flex for webservices, but there will be bugs. It's up to us to > > signal them. > > > > > > > > > > > > I agree with you though that webservices is actually the only > > interesting > > > way of communication with a back-end. For the near future, I don't > > expect to > > > use any of the FDS features for the applications that I wish to > > build (and > > > that is for large corporations that could afford the investment of > > an FDS > > > module). Although webservices are a pain-in-the-neck, they are the > > only hope > > > for a full heterogeneous world of clients and servers. > > > > > > > > > > > > How are you exposing your webservice? Doc/Literal or RPC/Encoded? > > > > > > > > > > > > Cheers, > > > > > > Franck > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > _____ > > > > > > From: flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > [mailto:flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > ] On > > > Behalf Of ben.clinkinbeard > > > Sent: Tuesday, August 08, 2006 8:59 PM > > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > > Subject: [flexcoders] Re: Clarification needed on how WSDL affects > > > conversion of AS objects to SOAP > > > > > > > > > > > > Hi Franck, > > > > > > I am pretty sure this is all related to types and the fact that Flex > > > will serialize primitive types differently than complex ones. The C# > > > code that creates the WS looks like this for the correctly > functioning > > > elements: > > > > > > [XmlArray("ContainersToRetrieve")] > > > [XmlArrayItem("ContainerType", typeof(ContainerType))] > > > ContainerType[] containersToRetrieve, > > > > > > and like this for the incorrect ones: > > > > > > [XmlArray("SelectedPlans")] > > > [XmlArrayItem("PlanNumber")] > > > string[] SelectedPlans > > > > > > I think the only way to fix this would be to have SelectedPlans be > an > > > array of complex objects rather than an array of strings. > > > Unfortunately, I don't believe this is an option as there is other > > > code that relies on this WS. > > > > > > Sigh. I really wish there was more focus on, documentation of and > > > support for web services in Flex. The apparent concentration on FDS > > > seems misguided to me as I don't see is as being a viable option for > > > nearly as many organizations as web services are. I suppose I > > > understand that FDS deployments are where the real money would be > for > > > Adobe, but it rings of the unrealistic and arguably unsuccessful > model > > > upon which Flex 1 and 1.5 were based on. > > > > > > Ben > > > > > > --- In [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> > > ups.com, > > > "Franck de Bruijn" > > > <franck.de.bruijn@> wrote: > > > > > > > > Hi Ben, > > > > > > > > > > > > > > > > I'm not sure if I'm following you, but I'll try :). > > > > > > > > > > > > > > > > I don't have answers, just questions. Let me put them to you: > > > > > > > > * Could it maybe be the type="s:string" part? Is 's' pointing to > the > > > > right xsd namespace? > > > > * I'm curious what is exactly making the 'ContainerType' element > in > > > > your SOAP-message. Is it the name attribute or the type attribute? > > > If it is > > > > the type attribute, then for sure in the PlanNumber element it'll > > > not work > > > > ... > > > > * Could the nesting be a problem? What I see from your code > example, > > > > is that the PlanNumber elements are one level deeper than the > > > ContainerType > > > > elements. Maybe it's an idea to test a webservice operation that > > takes > > > > straight PlanNumber elements? > > > > > > > > > > > > > > > > Good luck! > > > > > > > > Franck > > > > > > > > > > > > > > > > _____ > > > > > > > > From: [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> > > ups.com > > > [mailto:[EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> > > ups.com] > > > On > > > > Behalf Of ben.clinkinbeard > > > > Sent: Tuesday, August 08, 2006 7:29 PM > > > > To: [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> > > ups.com > > > > Subject: [flexcoders] Re: Clarification needed on how WSDL affects > > > > conversion of AS objects to SOAP > > > > > > > > > > > > > > > > I meant to hit preview... here is the rest of my post. > > > > > > > > The pieces of the WSDL that correspond are: > > > > > > > > <s:element minOccurs="0" maxOccurs="unbounded" > name="ContainerType" > > > > type="tns:ContainerType"/> (works correctly) > > > > > > > > and > > > > > > > > <s:element minOccurs="0" maxOccurs="unbounded" name="PlanNumber" > > > > nillable="true" type="s:string"/> (array is disregarded) > > > > > > > > Is nillable="true" causing a problem here? What changes need to be > > > > made to make Flex treat arrays just like objects, like it does in > > the > > > > first operation? > > > > > > > > Thanks, > > > > Ben > > > > > > > > --- In [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> > > > ups.com, > > > > "ben.clinkinbeard" > > > > <ben.clinkinbeard@> wrote: > > > > > > > > > > In one part of my app, I am creating my Operation.arguments > object > > > > > like this: > > > > > > > > > > args.ContainersToRetrieve = new Array(); > > > > > args.ContainersToRetrieve.push("Client"); > > > > > args.ContainersToRetrieve.push("IndustryTrends"); > > > > > > > > > > which, as expected, results in a SOAP call like this: > > > > > > > > > > <ContainersToRetrieve> > > > > > <ContainerType>Client</ContainerType> > > > > > <ContainerType>IndustryTrends</ContainerType> > > > > > > > > > > In a different spot, I am constructing a call in the same > manner: > > > > > args.RPRSelections = new Object(); > > > > > args.RPRSelections.SelectedPlans = new Array(); > > > > > for(var i:int = 0; i < model.arr_selectedPlans.length; i++) > > > > > { > > > > > > args.RPRSelections.SelectedPlans.push(model.arr_selectedPlans[i]); > > > > > } > > > > > > > > > > but that produces the following output, seemingly ignoring the > > > > > SelectedPlans array that was created. > > > > > > > > > > <RPRSelections> > > > > > <item>78167</item> > > > > > <item>78173</item> > > > > > > > > > > > > > > > -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/