Q:

flex fusion charts with webservice

I have flex project where i want to call webservice and pass values from it to the xml file to update fusion chart xml
My code is 

 
<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.events.FlexEvent;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        public var PUENumber:String;
        protected var xmlLoader:URLLoader;
        [Bindable]
        public var avgPUEXml:XML = new XML;

        protected function init():void
        {
            xmlLoader = new URLLoader();
            xmlLoader.addEventListener(Event.COMPLETE,setDataXML)
            xmlLoader.load(new URLRequest("data/AvgPUE.xml")); //Loading xml file for the chart from the folder
        };

        protected function setDataXML(event:Event):void
        {
            avgPUEXml = XML(event.target.data);
            avgPUEXml.value = PUENumber; //updating chart xml value
            fw.FCDataXML = avgPUEXml.toString();
            fw.FCRender(); 
        };

         protected function getDC_POWERdataResult_resultHandler(event:ResultEvent):void
        {
            PUENumber = getDC_POWERdataResult.lastResult; //getting value to update in xml file
            init();
        } 
         protected function bordercontainer1_creationCompleteHandler(event:FlexEvent):void
        {
            getDC_POWERdataResult.token = mGEMWS.getDCPUE("4","715"); //user details to get data from the method
        } 

    ]]>
</fx:Script>

<fx:Declarations>
    <s:CallResponder id="getDC_POWERdataResult" result="getDC_POWERdataResult_resultHandler(event)"/>
    <mgemws:MGEMWS id="mGEMWS" showBusyCursor="true"
                   fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"/>
</fx:Declarations>

    <ns1:FusionWidgets id="fw" FCChartType="Bulb" FCDataXML="avgPUEXml" />

in the declaration am calling web service. and on creationCompelete am sending userid details to get data from webservice. now where exactly i need to call init function so that it updates xml file with values coming from web service and display the fusion widget

A:

You don't need the 'setDataXML' handler method. Also you don't need any 'URLLoader' or 'URLRequest' in the 'init' method. FusionCharts supports XML data as well as XML path. So remove the 'setDataXML' and remove all the codes from the 'init' method and add just fw.addEventListener(FCEvent.FCRenderEvent, wgdtRendHandler);
and add below handler method -
protected function wgdtRendHandler(e:FCEvent):void{
     e.target.FCSetDataURL='data/AvgPUE.xml';
     e.target.removeEventHandler(FCEvent.FCRenderEvent, wgdRendHandler);
}

I think this should work for you. In case you still don't get the updated data in the chart, check the XML file in the 'init' method whether it's updated properly at that point of time.

