Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-08-03 Thread Angelo Anolin
Hi Tracy,
apologies that it took me quite a while to reply and continue this. been 
sidetracked on another project.

anyway, when I have passed the xmllistcollection as string to .net, what method 
would i use to parse the information in the .net side?

thanks.

regards,

Angelo




From: Tracy Spratt tr...@nts3rd.com
To: flexcoders@yahoogroups.com
Sent: Wednesday, 8 July, 2009 12:48:27
Subject: RE: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService





var sXML:String = “root”;
sXML += myXMLListCollection .toXMLSTring( );
sXML+= “/root”;
myWebService. setUserPermits( sXML,sSID) ;
 
on the .net side:
WebMethod(Descripti on:=Updates multiple UserPermit records) _
  Public Function setUserPermits(ByVal sRowsXml As String, ByVal sSId As 
String) As DataTable
…
 
 
 
Tracy Spratt,
Lariat Services, development services available



From:flexcod...@yahoogro ups.com [mailto: flexcod...@yahoogro ups.com ] On 
Behalf Of Angelo Anolin
Sent: Tuesday, July 07, 2009 8:09 PM
To: flexcod...@yahoogro ups.com
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService
 




Hi Tracy,
 
I would certainly appreciate if you could point me in the right direction on 
using XMLListCollection and sending it back to .NET as a string.  
 
Thanks.
 
Regards,
 
Angelo
 



From:Tracy Spratt tr...@nts3rd. com
To: flexcod...@yahoogro ups.com
Sent: Tuesday, 7 July, 2009 4:45:56
Subject: RE: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService
Why not use XMLListCollection and send the xml to .net as a string?  There is 
little value in building an ArrayCollection of generic obects.  You can 
sort/filter an XMLListCollection.
 
XML is more verbose than some other methods, but if bandwidth is truly an 
issue, then you should be looking at a binary protocol.
 
Tracy Spratt,
Lariat Services, development services available



From:flexcod...@yahoogro ups.com [mailto: flexcod...@yahoogro ups.com ] On 
Behalf Of Angelo Anolin
Sent: Friday, July 03, 2009 2:09 AM
To: flexcod...@yahoogro ups.com
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService
 



Hi Sam,
Basically this is the process which I am using.
 
.NET
Retrieve records from Oracle DB and store the same into a dataset.  Return the 
dataset as XML string via the command DataSet.GetXML.
 
Flex
In the event handler of my webservice method call, I parse the string into XML, 
then ArrayCollection via the following codes:
 
private var _xmlData:XML;
[Bindable] private var arrDP:ArrayCollecti on = new ArrayCollection;
_xmlData = XML(event.result) ;
var oTemp:Object;
var xl:XMLList = _xmlData.children( );
var i:int;
for(i = 0; i  xl.length(); i++)  
{
 oTemp = {NAME:xl[i]. NAME.text( ), TEAM:xl[i].TEAM. text(), 
    JERSEY :xl[i] .JERSEY.text( ), MANAGER:xl[i] .MANAGER. text()};
 arrDP.addItem( oTemp);
}
 
and in my datagrid, I am setting its dataProvider to the arrDP variable.
 
I used Array Collection because I implemented a search and filter functionality 
which searches and filters the data accordingly for the dataprovider which is 
then reflected back to the datagrid.
Now, when I need to return the ArrayCollection to .NET, I simply pass the same 
as a parameter to a .NET function which accepts ArrayList as parameter.
 
.NET
Once the function receieves the arraycollection (which is then now an array 
list), I get the arrays inside the arraylist and get the values inside the 
array. 
 
I think by doing things like this, it may not be the best way.
 
You mentioned you'd map the XML to typed objects in .NET.  How can I do this?
 
Instead of using arraycollection as dataprovider in my datagrid, can I use 
another which would be much easier when I pass back to the .NET function?
 
Whats the best way to interact large set of data (datasets) between .NET and 
Flex?
 
Thanks a lot.

 
 



From:Sam Lai samuel@gmail. com
To: flexcod...@yahoogro ups.com
Sent: Friday, 3 July, 2009 13:52:12
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService
Instead of using an array list and trying to emulate the type-less
abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
does the XML from your Flex app differ too wildly to do this?

Are you using the XmlSerializer to deserialize this? Or are you using
WCF? Or are you doing it some other way, or manually?

I'd provide an example, but I don't know enough details on your
situation to give something useful :)

2009/7/3 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the 

Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-07 Thread Angelo Anolin
Hi Sam Lai,

THanks for the input and my apologies for replying late since I felt the need 
to get deeper on the issue I am encountering.

In my web service, the arraycollection is received as an array list and yes, it 
is like an array of xml nodes.

In my arraycollection, say I have 5 columns and when one of the columns 
contains an empty string, when I pass it to my .NET webservice, the arraylist 
will have an array which only contains 4 columns (instead of the expected 5).  
That is why the empty field is actually causing me some problems.

I am trying to find some E4x documentation / article specifically tackling this 
kind of .NET and Flex integration. Do you know of some?

Thanks and regards,

Angelo





From: Sam Lai samuel@gmail.com
To: flexcoders@yahoogroups.com
Sent: Saturday, 4 July, 2009 12:54:53
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService





I just wrote up a simple C# web service that accepts an ArrayList:

[WebMethod]
public bool ArrayListTest( System.Collectio ns.ArrayList a)
{ ... }

Then in Flex I wrote this,

mx:Script
![CDATA[
import mx.collections. ArrayCollection;
private function sendWebServiceCall( ):void
{
trace(appComplete );
ws.ArrayListTest( new ArrayCollection( [ {name:bob, id:808 }, {
name:fred, id: }]));
}
]]
/mx:Script
mx:WebService wsdl=http://localhost: 63868/Service1. asmx?WSDL id=ws
mx:operation name=ArrayListTest  result=trace( event.result) 
fault=trace( event.fault. faultString) /
/mx:WebService

When sendWebServiceCall is triggered, it calls the C# web service and
passes the ArrayCollection to it.

In the web service, the ArrayCollection is received as an array list
of XmlNodes. Each XmlNode contains a node for each field, even if it
is an empty string.

tns:id xmlns:tns=http://tempuri. org/808/tns:id
tns:name xmlns:tns=http://tempuri. org/bob/tns:name

tns:id xmlns:tns=http://tempuri. org//tns:id
tns:name xmlns:tns=http://tempuri. org/fred/tns: name

Is this anything like what you're getting? The edge case you described
in another email about an empty string causing problems doesn't seem
to cause problems.

Also see inline.

2009/7/3 Angelo Anolin angelo_anolin@ yahoo.com:
 I think by doing things like this, it may not be the best way.

 You mentioned you'd map the XML to typed objects in .NET.  How can I do
 this?

As you're using a dataset, this isn't really an option. A dataset as
opposed to a collection of typed objects are two ways of handling data
from data sources; it is arguable which way is better.

The problem in your case, is that the XML generated as a result of
passing an ArrayCollection to a web service method cannot be passed
into the dataset's readXml method. (Even if it could by inferring a
schema, it would be different to your database's schema.)

The only way I know of to do seamless transfer of data without having
to parse XML is to use WebORB. Otherwise you will have to parse the
XML produced on both sides to re-create the dataset/object.

 Instead of using arraycollection as dataprovider in my datagrid, can I use
 another which would be much easier when I pass back to the .NET function?

I wonder if it is possible to bind your datagrid directly to the e4x
XML? That way you can pass the entire XML doc back to .NET via the web
service, and hence you can re-create the dataset using
dataset.readXML.

  _ _ __
 From: Sam Lai samuel@gmail. com
 To: flexcod...@yahoogro ups.com
 Sent: Friday, 3 July, 2009 13:52:12
 Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
 Passed to .NET WebService

 Instead of using an array list and trying to emulate the type-less
 abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
 does the XML from your Flex app differ too wildly to do this?

 Are you using the XmlSerializer to deserialize this? Or are you using
 WCF? Or are you doing it some other way, or manually?

 I'd provide an example, but I don't know enough details on your
 situation to give something useful :)

 2009/7/3 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollectio n = new ArrayCollection( [{ID:001 ,
 Value:Select },
 {ID:002,
 Value:Choose },
     {ID:003,
 Value:},]) ;

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

 Adding to my problem is the fact that the arrays inside the array 

Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-07 Thread Angelo Anolin
Hi Tracy,

I would certainly appreciate if you could point me in the right direction on 
using XMLListCollection and sending it back to .NET as a string.  

Thanks.

Regards,

Angelo





From: Tracy Spratt tr...@nts3rd.com
To: flexcoders@yahoogroups.com
Sent: Tuesday, 7 July, 2009 4:45:56
Subject: RE: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService





Why not use XMLListCollection and send the xml to .net as a string?  There is 
little value in building an ArrayCollection of generic obects.  You can 
sort/filter an XMLListCollection.
 
XML is more verbose than some other methods, but if bandwidth is truly an 
issue, then you should be looking at a binary protocol.
 
Tracy Spratt,
Lariat Services, development services available



From:flexcod...@yahoogro ups.com [mailto: flexcod...@yahoogro ups.com ] On 
Behalf Of Angelo Anolin
Sent: Friday, July 03, 2009 2:09 AM
To: flexcod...@yahoogro ups.com
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService
 




Hi Sam,
Basically this is the process which I am using.
 
.NET
Retrieve records from Oracle DB and store the same into a dataset.  Return the 
dataset as XML string via the command DataSet.GetXML.
 
Flex
In the event handler of my webservice method call, I parse the string into XML, 
then ArrayCollection via the following codes:
 
private var _xmlData:XML;
[Bindable] private var arrDP:ArrayCollecti on = new ArrayCollection;
_xmlData = XML(event.result) ;
var oTemp:Object;
var xl:XMLList = _xmlData.children( );
var i:int;
for(i = 0; i  xl.length(); i++)  
{
 oTemp = {NAME:xl[i]. NAME.text( ), TEAM:xl[i].TEAM. text(), 
    JERSEY :xl[i] .JERSEY.text( ), MANAGER:xl[i] .MANAGER. text()};
 arrDP.addItem( oTemp);
}
 
and in my datagrid, I am setting its dataProvider to the arrDP variable.
 
I used Array Collection because I implemented a search and filter functionality 
which searches and filters the data accordingly for the dataprovider which is 
then reflected back to the datagrid.
Now, when I need to return the ArrayCollection to .NET, I simply pass the same 
as a parameter to a .NET function which accepts ArrayList as parameter.
 
.NET
Once the function receieves the arraycollection (which is then now an array 
list), I get the arrays inside the arraylist and get the values inside the 
array. 
 
I think by doing things like this, it may not be the best way.
 
You mentioned you'd map the XML to typed objects in .NET.  How can I do this?
 
Instead of using arraycollection as dataprovider in my datagrid, can I use 
another which would be much easier when I pass back to the .NET function?
 
Whats the best way to interact large set of data (datasets) between .NET and 
Flex?
 
Thanks a lot.

 
 



From:Sam Lai samuel@gmail. com
To: flexcod...@yahoogro ups.com
Sent: Friday, 3 July, 2009 13:52:12
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService
Instead of using an array list and trying to emulate the type-less
abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
does the XML from your Flex app differ too wildly to do this?

Are you using the XmlSerializer to deserialize this? Or are you using
WCF? Or are you doing it some other way, or manually?

I'd provide an example, but I don't know enough details on your
situation to give something useful :)

2009/7/3 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollectio n = new ArrayCollection( [{ID:001 ,
 Value:Select },
 {ID:002,
 Value:Choose },
     {ID:003,
 Value:},]) ;

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

 Adding to my problem is the fact that the arrays inside the array list when
 read in .NET should have the object ID and Value be in order but they are
 not.  This is further true when there are many items in the array
 collection.  Sometimes, the first item becomes the last one in the array
 list, and sometimes the order is not well.

 In any case, I am finding a solution on how I would be able to pass an
 ArrayCollection to .NET and be able to parse it properly.

 Thanks.

  _ _ __
 From: Sam Lai samuel@gmail. com
 To: flexcod...@yahoogro ups.com
 Sent: Thursday, 2 July, 2009 15:46:58
 Subject: Re: [flexcoders] 

RE: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-07 Thread Tracy Spratt
var sXML:String = root;

sXML += myXMLListCollection.toXMLSTring();

sXML+= /root;

myWebService.setUserPermits(sXML,sSID);

 

on the .net side:

WebMethod(Description:=Updates multiple UserPermit records) _

  Public Function setUserPermits(ByVal sRowsXml As String, ByVal sSId As
String) As DataTable

.

 

 

 

Tracy Spratt,

Lariat Services, development services available

  _  

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
Behalf Of Angelo Anolin
Sent: Tuesday, July 07, 2009 8:09 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
Passed to .NET WebService

 






Hi Tracy,

 

I would certainly appreciate if you could point me in the right direction on
using XMLListCollection and sending it back to .NET as a string.  

 

Thanks.

 

Regards,

 

Angelo

 

  _  

From: Tracy Spratt tr...@nts3rd.com
To: flexcoders@yahoogroups.com
Sent: Tuesday, 7 July, 2009 4:45:56
Subject: RE: [flexcoders] ArrayCollection Does Not Show Items In Order When
Passed to .NET WebService

Why not use XMLListCollection and send the xml to .net as a string?  There
is little value in building an ArrayCollection of generic obects.  You can
sort/filter an XMLListCollection.

 

XML is more verbose than some other methods, but if bandwidth is truly an
issue, then you should be looking at a binary protocol.

 

Tracy Spratt,

Lariat Services, development services available

  _  

From: flexcod...@yahoogro ups.com [mailto: flexcod...@yahoogro ups.com ] On
Behalf Of Angelo Anolin
Sent: Friday, July 03, 2009 2:09 AM
To: flexcod...@yahoogro ups.com
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
Passed to .NET WebService

 





Hi Sam,

Basically this is the process which I am using.

 

.NET
Retrieve records from Oracle DB and store the same into a dataset.  Return
the dataset as XML string via the command DataSet.GetXML.

 

Flex
In the event handler of my webservice method call, I parse the string into
XML, then ArrayCollection via the following codes:

 

private var _xmlData:XML;
[Bindable] private var arrDP:ArrayCollecti on = new ArrayCollection;

_xmlData = XML(event.result) ;
var oTemp:Object;
var xl:XMLList = _xmlData.children( );

var i:int;
for(i = 0; i  xl.length(); i++)  
{
 oTemp = {NAME:xl[i]. NAME.text( ), TEAM:xl[i].TEAM. text(), 
JERSEY :xl[i] .JERSEY.text( ), MANAGER:xl[i] .MANAGER. text()};
 arrDP.addItem( oTemp);
}

 

and in my datagrid, I am setting its dataProvider to the arrDP variable.

 

I used Array Collection because I implemented a search and filter
functionality which searches and filters the data accordingly for the
dataprovider which is then reflected back to the datagrid.

Now, when I need to return the ArrayCollection to .NET, I simply pass the
same as a parameter to a .NET function which accepts ArrayList as parameter.

 

.NET
Once the function receieves the arraycollection (which is then now an array
list), I get the arrays inside the arraylist and get the values inside the
array. 

 

I think by doing things like this, it may not be the best way.

 

You mentioned you'd map the XML to typed objects in .NET.  How can I do
this?

 

Instead of using arraycollection as dataprovider in my datagrid, can I use
another which would be much easier when I pass back to the .NET function?

 

Whats the best way to interact large set of data (datasets) between .NET and
Flex?

 

Thanks a lot.


 

 

  _  

From: Sam Lai samuel@gmail. com
To: flexcod...@yahoogro ups.com
Sent: Friday, 3 July, 2009 13:52:12
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
Passed to .NET WebService

Instead of using an array list and trying to emulate the type-less
abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
does the XML from your Flex app differ too wildly to do this?

Are you using the XmlSerializer to deserialize this? Or are you using
WCF? Or are you doing it some other way, or manually?

I'd provide an example, but I don't know enough details on your
situation to give something useful :)

2009/7/3 Angelo Anolin angelo_anolin@ mailto:angelo_anolin%40yahoo.com
yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollectio n = new ArrayCollection( [{ID:001 ,
 Value:Select },
 {ID:002,
 Value:Choose },
 {ID:003,
 Value:},]) ;

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

RE: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-06 Thread Tracy Spratt
Why not use XMLListCollection and send the xml to .net as a string?  There
is little value in building an ArrayCollection of generic obects.  You can
sort/filter an XMLListCollection.

 

XML is more verbose than some other methods, but if bandwidth is truly an
issue, then you should be looking at a binary protocol.

 

Tracy Spratt,

Lariat Services, development services available

  _  

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
Behalf Of Angelo Anolin
Sent: Friday, July 03, 2009 2:09 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
Passed to .NET WebService

 






Hi Sam,

Basically this is the process which I am using.

 

.NET
Retrieve records from Oracle DB and store the same into a dataset.  Return
the dataset as XML string via the command DataSet.GetXML.

 

Flex
In the event handler of my webservice method call, I parse the string into
XML, then ArrayCollection via the following codes:

 

private var _xmlData:XML;
[Bindable] private var arrDP:ArrayCollection = new ArrayCollection;

_xmlData = XML(event.result);
var oTemp:Object;
var xl:XMLList = _xmlData.children();

var i:int;
for(i = 0; i  xl.length(); i++)  
{
 oTemp = {NAME:xl[i].NAME.text(), TEAM:xl[i].TEAM.text(), 
JERSEY:xl[i].JERSEY.text(), MANAGER:xl[i].MANAGER.text()};
 arrDP.addItem(oTemp);
}

 

and in my datagrid, I am setting its dataProvider to the arrDP variable.

 

I used Array Collection because I implemented a search and filter
functionality which searches and filters the data accordingly for the
dataprovider which is then reflected back to the datagrid.

Now, when I need to return the ArrayCollection to .NET, I simply pass the
same as a parameter to a .NET function which accepts ArrayList as parameter.

 

.NET
Once the function receieves the arraycollection (which is then now an array
list), I get the arrays inside the arraylist and get the values inside the
array. 

 

I think by doing things like this, it may not be the best way.

 

You mentioned you'd map the XML to typed objects in .NET.  How can I do
this?

 

Instead of using arraycollection as dataprovider in my datagrid, can I use
another which would be much easier when I pass back to the .NET function?

 

Whats the best way to interact large set of data (datasets) between .NET and
Flex?

 

Thanks a lot.


 

 

  _  

From: Sam Lai samuel@gmail.com
To: flexcoders@yahoogroups.com
Sent: Friday, 3 July, 2009 13:52:12
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
Passed to .NET WebService

Instead of using an array list and trying to emulate the type-less
abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
does the XML from your Flex app differ too wildly to do this?

Are you using the XmlSerializer to deserialize this? Or are you using
WCF? Or are you doing it some other way, or manually?

I'd provide an example, but I don't know enough details on your
situation to give something useful :)

2009/7/3 Angelo Anolin angelo_anolin@ mailto:angelo_anolin%40yahoo.com
yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollectio n = new ArrayCollection( [{ID:001 ,
 Value:Select },
 {ID:002,
 Value:Choose },
 {ID:003,
 Value:},]) ;

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

 Adding to my problem is the fact that the arrays inside the array list
when
 read in .NET should have the object ID and Value be in order but they are
 not.  This is further true when there are many items in the array
 collection.  Sometimes, the first item becomes the last one in the array
 list, and sometimes the order is not well.

 In any case, I am finding a solution on how I would be able to pass an
 ArrayCollection to .NET and be able to parse it properly.

 Thanks.

  _ _ __
 From: Sam Lai samuel@gmail. com mailto:samuel.lai%40gmail.com 
 To: flexcod...@yahoogro ups.com mailto:flexcoders%40yahoogroups.com 
 Sent: Thursday, 2 July, 2009 15:46:58
 Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order
When
 Passed to .NET WebService

 How is it being parsed in .NET? You can parse it into a hashtable, or
 better yet, use a pre-defined object.

 Not sure why the order is different, but it is probably fragile to
 rely on the order in this case.

 2009/7/2 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi FlexCoders,

 I have an array 

Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-03 Thread Angelo Anolin
Hi Sam,
Basically this is the process which I am using.

.NET
Retrieve records from Oracle DB and store the same into a dataset.  Return the 
dataset as XML string via the command DataSet.GetXML.

Flex
In the event handler of my webservice method call, I parse the string into XML, 
then ArrayCollection via the following codes:

private var _xmlData:XML;
[Bindable] private var arrDP:ArrayCollection = new ArrayCollection;
_xmlData = XML(event.result);
var oTemp:Object;
var xl:XMLList = _xmlData.children();
var i:int;
for(i = 0; i  xl.length(); i++)  
{
 oTemp = {NAME:xl[i].NAME.text(), TEAM:xl[i].TEAM.text(), 
    JERSEY:xl[i].JERSEY.text(), MANAGER:xl[i].MANAGER.text()};
 arrDP.addItem(oTemp);
}

and in my datagrid, I am setting its dataProvider to the arrDP variable.

I used Array Collection because I implemented a search and filter functionality 
which searches and filters the data accordingly for the dataprovider which is 
then reflected back to the datagrid.
Now, when I need to return the ArrayCollection to .NET, I simply pass the same 
as a parameter to a .NET function which accepts ArrayList as parameter.

.NET
Once the function receieves the arraycollection (which is then now an array 
list), I get the arrays inside the arraylist and get the values inside the 
array. 

I think by doing things like this, it may not be the best way.

You mentioned you'd map the XML to typed objects in .NET.  How can I do this?

Instead of using arraycollection as dataprovider in my datagrid, can I use 
another which would be much easier when I pass back to the .NET function?

Whats the best way to interact large set of data (datasets) between .NET and 
Flex?

Thanks a lot.

 




From: Sam Lai samuel@gmail.com
To: flexcoders@yahoogroups.com
Sent: Friday, 3 July, 2009 13:52:12
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService





Instead of using an array list and trying to emulate the type-less
abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
does the XML from your Flex app differ too wildly to do this?

Are you using the XmlSerializer to deserialize this? Or are you using
WCF? Or are you doing it some other way, or manually?

I'd provide an example, but I don't know enough details on your
situation to give something useful :)

2009/7/3 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollectio n = new ArrayCollection( [{ID:001 ,
 Value:Select },
 {ID:002,
 Value:Choose },
     {ID:003,
 Value:},]) ;

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

 Adding to my problem is the fact that the arrays inside the array list when
 read in .NET should have the object ID and Value be in order but they are
 not.  This is further true when there are many items in the array
 collection.  Sometimes, the first item becomes the last one in the array
 list, and sometimes the order is not well.

 In any case, I am finding a solution on how I would be able to pass an
 ArrayCollection to .NET and be able to parse it properly.

 Thanks.

  _ _ __
 From: Sam Lai samuel@gmail. com
 To: flexcod...@yahoogro ups.com
 Sent: Thursday, 2 July, 2009 15:46:58
 Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
 Passed to .NET WebService

 How is it being parsed in .NET? You can parse it into a hashtable, or
 better yet, use a pre-defined object.

 Not sure why the order is different, but it is probably fragile to
 rely on the order in this case.

 2009/7/2 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi FlexCoders,

 I have an array collection which I am populating as follows:

 var oTemp:Object;
 var xl:XMLList = _xmlData.children( );
 var i:int;
 for(i = 0; i  xl.length(); i++)
 {
  oTemp = {ID_TAG:xl[i] .ID.text( ), CAT_TAG:xl[i] .CAT.text( ),
 DET_TAG:xl[i] .DET.text( ), REP_DATE_TAG: xl[i].REP_ DATE.text( ),
 IND_TAG:xl[i] .IND.text( )};
  arrDP.addItem( oTemp);
 }
 Now, when I pass back this Array Collection back into a web service, the
 fields are not in order as I have added them into the array collection.

 I am expecting that in my Web Service, when I parse this arraycollection
 (via arraylist), I would be getting the same order of columns as I have
 added them, i.e. the first array in the array list would have element 0 to
 be the value I placed in the ID.

 Since the arraylist does 

Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-03 Thread Sam Lai
I just wrote up a simple C# web service that accepts an ArrayList:

[WebMethod]
public bool ArrayListTest(System.Collections.ArrayList a)
{ ... }

Then in Flex I wrote this,

mx:Script
![CDATA[
import mx.collections.ArrayCollection;
private function sendWebServiceCall():void
{
trace(appComplete);
ws.ArrayListTest(new ArrayCollection([ 
{name:bob, id:808 }, {
name:fred, id: }]));
}
]]
/mx:Script
mx:WebService wsdl=http://localhost:63868/Service1.asmx?WSDL; id=ws
mx:operation name=ArrayListTest result=trace(event.result)
 fault=trace(event.fault.faultString)/
/mx:WebService

When sendWebServiceCall is triggered, it calls the C# web service and
passes the ArrayCollection to it.

In the web service, the ArrayCollection is received as an array list
of XmlNodes. Each XmlNode contains a node for each field, even if it
is an empty string.

tns:id xmlns:tns=http://tempuri.org/;808/tns:id
tns:name xmlns:tns=http://tempuri.org/;bob/tns:name

tns:id xmlns:tns=http://tempuri.org/;/tns:id
tns:name xmlns:tns=http://tempuri.org/;fred/tns:name

Is this anything like what you're getting? The edge case you described
in another email about an empty string causing problems doesn't seem
to cause problems.

Also see inline.

2009/7/3 Angelo Anolin angelo_ano...@yahoo.com:
 I think by doing things like this, it may not be the best way.

 You mentioned you'd map the XML to typed objects in .NET.  How can I do
 this?

As you're using a dataset, this isn't really an option. A dataset as
opposed to a collection of typed objects are two ways of handling data
from data sources; it is arguable which way is better.

The problem in your case, is that the XML generated as a result of
passing an ArrayCollection to a web service method cannot be passed
into the dataset's readXml method. (Even if it could by inferring a
schema, it would be different to your database's schema.)

The only way I know of to do seamless transfer of data without having
to parse XML is to use WebORB. Otherwise you will have to parse the
XML produced on both sides to re-create the dataset/object.

 Instead of using arraycollection as dataprovider in my datagrid, can I use
 another which would be much easier when I pass back to the .NET function?

I wonder if it is possible to bind your datagrid directly to the e4x
XML? That way you can pass the entire XML doc back to .NET via the web
service, and hence you can re-create the dataset using
dataset.readXML.

 
 From: Sam Lai samuel@gmail.com
 To: flexcoders@yahoogroups.com
 Sent: Friday, 3 July, 2009 13:52:12
 Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
 Passed to .NET WebService

 Instead of using an array list and trying to emulate the type-less
 abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
 does the XML from your Flex app differ too wildly to do this?

 Are you using the XmlSerializer to deserialize this? Or are you using
 WCF? Or are you doing it some other way, or manually?

 I'd provide an example, but I don't know enough details on your
 situation to give something useful :)

 2009/7/3 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollectio n = new ArrayCollection( [{ID:001 ,
 Value:Select },
 {ID:002,
 Value:Choose },
     {ID:003,
 Value:},]) ;

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

 Adding to my problem is the fact that the arrays inside the array list
 when
 read in .NET should have the object ID and Value be in order but they are
 not.  This is further true when there are many items in the array
 collection.  Sometimes, the first item becomes the last one in the array
 list, and sometimes the order is not well.

 In any case, I am finding a solution on how I would be able to pass an
 ArrayCollection to .NET and be able to parse it properly.

 Thanks.

  _ _ __
 From: Sam Lai samuel@gmail. com
 To: flexcod...@yahoogro ups.com
 Sent: Thursday, 2 July, 2009 15:46:58
 Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order
 When
 Passed to .NET WebService

 How is it being parsed in .NET? You can parse it into a hashtable, or
 better yet, use a pre-defined object.

 Not sure why the order is 

Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-02 Thread Sam Lai
How is it being parsed in .NET? You can parse it into a hashtable, or
better yet, use a pre-defined object.

Not sure why the order is different, but it is probably fragile to
rely on the order in this case.

2009/7/2 Angelo Anolin angelo_ano...@yahoo.com:


 Hi FlexCoders,

 I have an array collection which I am populating as follows:

 var oTemp:Object;
 var xl:XMLList = _xmlData.children();
 var i:int;
 for(i = 0; i  xl.length(); i++)
 {
  oTemp = {ID_TAG:xl[i].ID.text(), CAT_TAG:xl[i].CAT.text(),
 DET_TAG:xl[i].DET.text(), REP_DATE_TAG:xl[i].REP_DATE.text(),
 IND_TAG:xl[i].IND.text()};
  arrDP.addItem(oTemp);
 }
 Now, when I pass back this Array Collection back into a web service, the
 fields are not in order as I have added them into the array collection.

 I am expecting that in my Web Service, when I parse this arraycollection
 (via arraylist), I would be getting the same order of columns as I have
 added them, i.e. the first array in the array list would have element 0 to
 be the value I placed in the ID.

 Since the arraylist does not have the field tag (represented by ID_TAG,
 DET_TAG, CAT_TAG, etc..), it becomes a trial and error (hit and miss) on my
 part since I can only reference the value via the index on the array.

 Now, how would I be able to include the tags inside array collection such
 that when I read them as an array list in my .NET webservice, I know which
 element I am referring to in a particular index.

 Thanks.

 Regards,
 Angelo


 


Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-02 Thread Angelo Anolin
Hi Sam,

Care to show some examples? I am parsing the arrayCollection into an ArrayList 
on .NET.  This is particularly not too appealing since I just discovered that 
for example, if one of the objects in the arraycollection would have an empty 
string value, the number of items inside the array is not reflected properly in 
.NET.

Like:

private var arrR:ArrayCollection = new ArrayCollection([{ID:001, 
Value:Select},
{ID:002, 
Value:Choose},
    {ID:003, Value:},]);

When I pass this var arrR into a .NET webservice and delegate it to an 
ArrayList, the items in the array list will have one of the arrays only 
containing 1 item (instead of 2).

Adding to my problem is the fact that the arrays inside the array list when 
read in .NET should have the object ID and Value be in order but they are not.  
This is further true when there are many items in the array collection.  
Sometimes, the first item becomes the last one in the array list, and sometimes 
the order is not well.

In any case, I am finding a solution on how I would be able to pass an 
ArrayCollection to .NET and be able to parse it properly.

Thanks.





From: Sam Lai samuel@gmail.com
To: flexcoders@yahoogroups.com
Sent: Thursday, 2 July, 2009 15:46:58
Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When 
Passed to .NET WebService





How is it being parsed in .NET? You can parse it into a hashtable, or
better yet, use a pre-defined object.

Not sure why the order is different, but it is probably fragile to
rely on the order in this case.

2009/7/2 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi FlexCoders,

 I have an array collection which I am populating as follows:

 var oTemp:Object;
 var xl:XMLList = _xmlData.children( );
 var i:int;
 for(i = 0; i  xl.length(); i++)
 {
  oTemp = {ID_TAG:xl[i] .ID.text( ), CAT_TAG:xl[i] .CAT.text( ),
 DET_TAG:xl[i] .DET.text( ), REP_DATE_TAG: xl[i].REP_ DATE.text( ),
 IND_TAG:xl[i] .IND.text( )};
  arrDP.addItem( oTemp);
 }
 Now, when I pass back this Array Collection back into a web service, the
 fields are not in order as I have added them into the array collection.

 I am expecting that in my Web Service, when I parse this arraycollection
 (via arraylist), I would be getting the same order of columns as I have
 added them, i.e. the first array in the array list would have element 0 to
 be the value I placed in the ID.

 Since the arraylist does not have the field tag (represented by ID_TAG,
 DET_TAG, CAT_TAG, etc..), it becomes a trial and error (hit and miss) on my
 part since I can only reference the value via the index on the array.

 Now, how would I be able to include the tags inside array collection such
 that when I read them as an array list in my .NET webservice, I know which
 element I am referring to in a particular index.

 Thanks.

 Regards,
 Angelo


 




  

Re: [flexcoders] ArrayCollection Does Not Show Items In Order When Passed to .NET WebService

2009-07-02 Thread Sam Lai
Instead of using an array list and trying to emulate the type-less
abilities of AS3, I'd try to map the XML to typed objects in .NET. Or
does the XML from your Flex app differ too wildly to do this?

Are you using the XmlSerializer to deserialize this? Or are you using
WCF? Or are you doing it some other way, or manually?

I'd provide an example, but I don't know enough details on your
situation to give something useful :)

2009/7/3 Angelo Anolin angelo_ano...@yahoo.com:


 Hi Sam,

 Care to show some examples? I am parsing the arrayCollection into an
 ArrayList on .NET.  This is particularly not too appealing since I just
 discovered that for example, if one of the objects in the arraycollection
 would have an empty string value, the number of items inside the array is
 not reflected properly in .NET.

 Like:

 private var arrR:ArrayCollection = new ArrayCollection([{ID:001,
 Value:Select},
 {ID:002,
 Value:Choose},
     {ID:003,
 Value:},]);

 When I pass this var arrR into a .NET webservice and delegate it to an
 ArrayList, the items in the array list will have one of the arrays only
 containing 1 item (instead of 2).

 Adding to my problem is the fact that the arrays inside the array list when
 read in .NET should have the object ID and Value be in order but they are
 not.  This is further true when there are many items in the array
 collection.  Sometimes, the first item becomes the last one in the array
 list, and sometimes the order is not well.

 In any case, I am finding a solution on how I would be able to pass an
 ArrayCollection to .NET and be able to parse it properly.

 Thanks.

 
 From: Sam Lai samuel@gmail.com
 To: flexcoders@yahoogroups.com
 Sent: Thursday, 2 July, 2009 15:46:58
 Subject: Re: [flexcoders] ArrayCollection Does Not Show Items In Order When
 Passed to .NET WebService

 How is it being parsed in .NET? You can parse it into a hashtable, or
 better yet, use a pre-defined object.

 Not sure why the order is different, but it is probably fragile to
 rely on the order in this case.

 2009/7/2 Angelo Anolin angelo_anolin@ yahoo.com:


 Hi FlexCoders,

 I have an array collection which I am populating as follows:

 var oTemp:Object;
 var xl:XMLList = _xmlData.children( );
 var i:int;
 for(i = 0; i  xl.length(); i++)
 {
  oTemp = {ID_TAG:xl[i] .ID.text( ), CAT_TAG:xl[i] .CAT.text( ),
 DET_TAG:xl[i] .DET.text( ), REP_DATE_TAG: xl[i].REP_ DATE.text( ),
 IND_TAG:xl[i] .IND.text( )};
  arrDP.addItem( oTemp);
 }
 Now, when I pass back this Array Collection back into a web service, the
 fields are not in order as I have added them into the array collection.

 I am expecting that in my Web Service, when I parse this arraycollection
 (via arraylist), I would be getting the same order of columns as I have
 added them, i.e. the first array in the array list would have element 0 to
 be the value I placed in the ID.

 Since the arraylist does not have the field tag (represented by ID_TAG,
 DET_TAG, CAT_TAG, etc..), it becomes a trial and error (hit and miss) on
 my
 part since I can only reference the value via the index on the array.

 Now, how would I be able to include the tags inside array collection such
 that when I read them as an array list in my .NET webservice, I know which
 element I am referring to in a particular index.

 Thanks.

 Regards,
 Angelo