Doug,

can you share your mxml code?
Did you assign your as classes to any variable?


João Fernandes

-----Original Message-----
From: [email protected] on behalf of Douglas Knudsen
Sent: Thu 22-Jun-06 3:05 AM
To: [email protected]
Subject: [flexcoders] array of CFCs and RemoteObject FB2B3
 
Ok, having some struggles here with ColdFusion CFCs, related AS VOs,
and remoteobject.
Say I have a CFC called Customer.cfc which is bean styled.  It has a
property Addresses which is a array of Address.cfc also bean styled.
Similarly I have ActionScript VOs setup and registered to map to the
CFCs.  Ok, I build a Flex app that retrieves a Customer object.  It
gets mapped over to AS ok, I can see the array of Address objects and
see they are typed correctly.  Now I call a method via RemoteObject
called save() passing the Customer object to this method.  Bomb!  When
the AS array of objects is passed to CF it loses its type.  Below  I
have some code example of what things look like.

Thoughts?

Customer.cfc
<cfcomponent>
<cfproperty name="customerId" type="numeric" default="0" />
<cfproperty name="addresses" type="address[]"  />

<cfscript>
                variables.customerId= 0;
                variables.address = ArrayNew(1);
        </cfscript>

<cffunction name="getCustomerId" output="false" access="public"
returntype="numeric">
                <cfreturn variables.customerId>
        </cffunction>

        <cffunction name="setCustomerId" output="false" access="public"
returntype="void">
                <cfargument name="val" required="true">
                        <cfset variables.customerId = arguments.val>
        </cffunction>

<cffunction name="getAddress" output="false" access="public"
returntype="address[]">
                <cfreturn variables.address >
        </cffunction>

        <cffunction name="setAddress" output="false" access="public" 
returntype="void">
                <cfargument name="val" required="true" type="address[]" >
                <cfset variables.address = arguments.val>
        </cffunction>

</cfcomponent>

address.cfc
<cfcomponent >
        <cfproperty name="addressId" type="numeric" default="0">
        <cfproperty name="address1" type="string" default="">
        <cfproperty name="city" type="string" default="">
        <cfproperty name="state" type="string" default="">
        <cfproperty name="zip" type="string" default="">

        <cfscript>
                //Initialize the CFC with the default properties values.
                variables.addressId = 0;
                variables.address1 = "";
                variables.city = "";
                variables.state = "";
                variables.zip = "";
        </cfscript>

        <cffunction name="init" output="false" returntype="address">
                <cfreturn this>
        </cffunction>
        <cffunction name="getAddressId" output="false" access="public"
returntype="any">
                <cfreturn variables.AddressId>
        </cffunction>

        <cffunction name="setAddressId" output="false" access="public"
returntype="void">
                <cfargument name="val" required="true">
                <cfif (IsNumeric(arguments.val)) OR (arguments.val EQ "")>
                        <cfset variables.AddressId = arguments.val>
                <cfelse>
                        <cfthrow message="'#arguments.val#' is not a valid 
numeric"/>
                </cfif>
        </cffunction>

        <cffunction name="getAddress1" output="false" access="public" 
returntype="any">
                <cfreturn variables.Address1>
        </cffunction>

        <cffunction name="setAddress1" output="false" access="public"
returntype="void">
                <cfargument name="val" required="true">
                <cfset variables.Address1 = arguments.val>
        </cffunction>

        <cffunction name="getCity" output="false" access="public" 
returntype="any">
                <cfreturn variables.City>
        </cffunction>

        <cffunction name="setCity" output="false" access="public" 
returntype="void">
                <cfargument name="val" required="true">
                <cfset variables.City = arguments.val>
        </cffunction>

        <cffunction name="getState" output="false" access="public" 
returntype="any">
                <cfreturn variables.State>
        </cffunction>

        <cffunction name="setState" output="false" access="public" 
returntype="void">
                <cfargument name="val" required="true">
                <cfset variables.State = arguments.val>
        </cffunction>

        <cffunction name="getZip" output="false" access="public" 
returntype="any">
                <cfreturn variables.Zip>
        </cffunction>

        <cffunction name="setZip" output="false" access="public" 
returntype="void">
                <cfargument name="val" required="true">
                <cfset variables.Zip = arguments.val>
        </cffunction>


</cfcomponent>

customer.as
package customer
{
        [RemoteClass(alias="customer")]

        [Bindable]
        public dynamic class customer
        {

                public var customerId:Number = 0;
                public var address:Array;
                
                public function custumer()
                {
                }

        }
}

address.as
package address
{
        [RemoteClass(alias="address")]

        [Bindable]
        public dynamic class address
        {

                public var addressId:Number = 0;
                public var address1:String = "";
                public var city:String = "";
                public var state:String = "";
                public var zip:String = "";

                public function address()
                {
                }

        }
}


-- 
Douglas Knudsen
http://www.cubicleman.com
this is my signature, like it?



------------------------ Yahoo! Groups Sponsor --------------------~--> 
See what's inside the new Yahoo! Groups email.
http://us.click.yahoo.com/2pRQfA/bOaOAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~-> 

--
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/
 

<<winmail.dat>>

Reply via email to