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/
 


Reply via email to