Ja sei, ja sei.....

vou fazer assim primeiro faço o uploader do arquivo.
depois chamo a webservice  e processo o arquivo e ja trago o retorno de uma
so vez do que ja esperar ele processar...
mais ou menos como o Rogerio falo.
2011/1/5 Helio Antonio Francisco Silva <[email protected]>

> Problema rogerio que clipper pela web e bem precario entao tenho de
> construir uma casa com pedras e gravetos.
> Estou usando sim o evento COMPLETE mas como voce falo ali em cima @Pablo
> Souza ele chama quando eu faço o Upload e nao quando eu executo todo o meu
> processo.
>
> Vou postar meu codigo aqui
> <?xml version="1.0" encoding="utf-8"?>
> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009";
>    xmlns:s="library://ns.adobe.com/flex/spark"
>    xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%"
> creationComplete="initApp()" >
>  <fx:Declarations>
>   <s:RadioButtonGroup id="grup_carga_fazer"/>
>   <!-- Place non-visual elements (e.g., services, value objects) here -->
>  </fx:Declarations>
>  <fx:Script>
>   <![CDATA[
>    import mx.managers.PopUpManager;
>    import mx.controls.Alert;
>    import mx.core.IVisualElement;
>    import mx.controls.ProgressBar;
>    import flash.net.FileReference;
>    import mx.controls.Alert;
>
>
>    private var fileRef:FileReference;
>
>    private const FILE_UPLOAD_URL:String = "
> http://ip.ip.ip.ip:8080/pp/u_upCargas.apw";;
>    private var percent:Number = 0;
>    private var percentFull :Number = 100;
>    private var regradeTres:Number = 0;
>
>    private function handleCloseEvent():void {
>     PopUpManager.removePopUp(this);
>    }
>
>    public function initApp():void{
>     //Inicializa o controle de Upload de arquivos
>     fileRef = new FileReference();
>     fileRef.addEventListener(Event.SELECT, fileRef_select);
>     fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress);
>     fileRef.addEventListener(Event.COMPLETE, fileRef_complete);
>
>     //Esconde o segundo Grupo
>     group_caminho.visible = false;
>     group_caminho.includeInLayout = false;
>    }
>
>    public function setDataContrato(crt:String, crtNome:String,
> crtTp:String):void{
>     CCUA_NumContrat.text = crt;
>     CCUA_Nome.text = crtNome;
>     CCUA_tipoContrato.text = crtTp;
>    }
>    private function abrefechaCaminho(tp:Number):void{
>     if(tp == 1){
>      group_caminho.visible = false;
>      group_caminho.includeInLayout = false;
>     }else if(tp == 2){
>      browseAndUpload();
>     }
>    }
>
>    //PARTE DE UPLOAD
> =============================================================================
>    private function browseAndUpload():void {
>     fileRef.browse();
>    }
>
>    private function fileRef_select(evt:Event):void {
>
>     try {
>      fileRef.upload(new URLRequest(FILE_UPLOAD_URL));
>      group_caminho.visible = true;
>      group_caminho.includeInLayout = true;
>     } catch (err:Error) {
>      pBar.label = "ERROR: zero-byte file";
>     }
>    }
>
>    private function fileRef_progress(evt:ProgressEvent):void {
>     pBar.visible = true;
>     pBar.mode = "manual";
>     regradeTres = Math.ceil(((evt.bytesLoaded*100)/ evt.bytesTotal));
>     pBar.setProgress(regradeTres, percentFull);
>     pBar.label = Math.ceil(((evt.bytesLoaded*100)/ evt.bytesTotal))+"% de
> "+percentFull+"%";
>     if(regradeTres >= 100){
>      pBar.label = "Upload Completo, aguarde!!!";
>     }
>    }
>
>    private function fileRef_complete(evt:Event):void {
>     pBar.visible = false;
>     group_caminho.visible = false;
>     group_caminho.includeInLayout = false;
>     Alert.show("Arquivo carregado para o servidor","Arquivo carregado para
> o servidor.");
>    }
>   ]]>
>  </fx:Script>
>  <s:TitleWindow close="handleCloseEvent();" width="884" height="526"
> horizontalCenter="0" verticalCenter="-37" id="PainelCargaContratosUpload"
> title="Carga de Cartões e Upload de Arquivos">
>   <s:VGroup x="0" y="0" width="100%" height="100%">
>    <s:HGroup width="100%" height="85">
>     <mx:Form width="100%" height="83">
>      <mx:FormHeading label="Informações Referentes ao Contrato"/>
>      <mx:FormItem width="937" paddingTop="5">
>       <s:HGroup width="100%" height="100%">
>        <s:Label x="19" y="4" text="Contrato:" fontWeight="bold"/>
>        <s:Label text="------" id="CCUA_NumContrat"/>
>        <mx:Spacer width="15"/>
>        <s:Label text="Nome:" fontWeight="bold"/>
>        <s:Label text="---------   ------- --------" id="CCUA_Nome"/>
>        <mx:Spacer width="15"/>
>        <s:Label text="Tipo do Contrato:" fontWeight="bold"/>
>        <s:Label text="---------   ------- --------"
> id="CCUA_tipoContrato"/>
>       </s:HGroup>
>      </mx:FormItem>
>     </mx:Form>
>    </s:HGroup>
>    <s:HGroup width="100%" height="100%">
>     <s:VGroup width="172" height="100%" paddingLeft="9" paddingTop="5">
>      <s:Label text="O que você deseja fazer ?" width="149" paddingTop="5"
> textAlign="center"/>
>      <s:RadioButton label="Carregar ultima carga "
> click="abrefechaCaminho(1);" value="1" groupName="grup_carga_fazer"/>
>      <s:RadioButton label="Fazer uma nova carga"
> click="abrefechaCaminho(2);" value="2" groupName="grup_carga_fazer"/>
>      <s:VGroup width="161" height="52" paddingLeft="2" paddingTop="2"
> id="group_caminho">
>       <mx:ProgressBar id="pBar" visible="true" x="85" y="0"
> labelPlacement="top" minimum="1" maximum="100" width="153"/>
>      </s:VGroup>
>      <mx:HRule width="100%"/>
>      <s:Button label="Aplicar Carga"/>
>     </s:VGroup>
>     <s:VGroup width="100%" height="100%" paddingLeft="2" paddingRight="2"
> paddingTop="2" paddingBottom="2">
>      <mx:DataGrid width="698" height="367" paddingRight="2"
> paddingBottom="2" paddingLeft="2" paddingTop="2">
>       <mx:columns>
>        <mx:DataGridColumn headerText="Column 1" dataField="col1"/>
>        <mx:DataGridColumn headerText="Column 2" dataField="col2"/>
>        <mx:DataGridColumn headerText="Column 3" dataField="col3"/>
>       </mx:columns>
>      </mx:DataGrid>
>     </s:VGroup>
>    </s:HGroup>
>   </s:VGroup>
>  </s:TitleWindow>
> </s:Group>
>   so troca ro endereço ipipipip por um endereço pra fazer o upload por
> exemplo.
>
>   2011/1/5 Rogério Casal <[email protected]>
>
>> Cara muito legal sua dúvida, seguinte:
>> 1º A responsabilidade dessa chamada da webservice vai se iniciar no
>> frontEnd ou apenas no backend?
>> 2º Vc pode seguir a seguinte seguencia, Carregar o arquivo, chamar metodo
>> para persistir os dados no banco(se entendi certo vc quer gravar no Banco) e
>> no result do metodo de gravação de dados, vc pode chamar a webService.
>>
>> observações a serem consideradas, utilize um metodo de result do
>> remoteObject no backend vc coloca retornando um boolean para dizer se
>> persistio ou não. Então quando vc chamar a webService terá certeza que os
>> dados foram inseridos no banco de dados. evitando problemas com
>> assicronismo.
>>
>> espero ter compreendido sua dúvida.
>>
>>
>> Em 5 de janeiro de 2011 16:34, Helio Antonio Francisco Silva <
>> [email protected]> escreveu:
>>
>>  Entao rogerio meu problema e o seguinte.
>>>
>>> digamos que eu tenho um arquivo texto de 15 mil usuarios para serem
>>> carregados para o sistema.
>>> Primeiro eu faço o Upload ate ai molezinha...
>>>
>>> Quando eu terminar o Upload eu vou startar uma webservice para trazer os
>>> primeiro 50 registros dos 15 mil... para paginar caso o usuario precise...
>>> mas quem me garante que quando eu terminei o Upload o meu programa no caso
>>> uma pagina web ja inserido tudo na tabela... por que no programa que eu faço
>>> o Upload eu ja jogo tudo dentro a onde precisa.
>>>
>>> Entao eu queria saber.  o quando terminar a minha rotina de Upload e
>>> inserir no banco ja posso chamar a webservice que nao vai dar problema ???
>>>
>>> exemplo
>>> *
>>>
>>> private
>>> **const* FILE_UPLOAD_URL:String =" *
>>> http://ip.ip.ip.ip:8080/pp/u_upCargas.apw"*;*
>>>
>>> try
>>> *{
>>>     fileRef.upload(*new* URLRequest(FILE_UPLOAD_URL));
>>>     group_caminho.visible = *true*;
>>>     group_caminho.includeInLayout = *true*;
>>> } *catch* (err:Error) {
>>>     pBar.label = *"ERROR: zero-byte file"*;
>>> }
>>>
>>> esse Upload so vai terminar nao quando eu enviar o arquivo mas sim quando
>>> eu enviar e processar o que eu tenho de processar ?
>>> essa e minha duvida
>>>
>>>
>>>
>>> 2011/1/5 Rogério Casal <[email protected]>
>>>
>>> Bom, eu acredito que seja sincrono, pois se não fosse a referencia sempre
>>>> seria nula, mas existem particularidades de situações se vc estiver com
>>>> problemas em carregamento de arquivo posta para que possamos avaliar.
>>>>
>>>> att.:
>>>> Rogério Casal
>>>> Software Developer
>>>> Fone: 81 8805-4303
>>>> www.rogeriocasal.com.br
>>>>
>>>>
>>>> Em 5 de janeiro de 2011 16:11, Helio Antonio Francisco Silva <
>>>> [email protected]> escreveu:
>>>>
>>>>>   Procurei e nao achei...
>>>>> alguem poderia me dizer isso ?
>>>>>
>>>>> --
>>>>> *Hélio Antonio Fransico Silva*
>>>>> Desenvolvedor web
>>>>> Certificado Flash developer
>>>>> Certificado Flash Design
>>>>> Certificado web developer
>>>>> Consultor Microsiga / Totvs
>>>>> Desenvolvedor ADVPL / ASP
>>>>> Analista de sistemas e ERP Sênior.
>>>>>
>>>>> --
>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>> [email protected]
>>>>> Para sair da lista, envie um email em branco para
>>>>> [email protected]
>>>>> Mais opções estão disponíveis em
>>>>> http://groups.google.com/group/flexdev
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Rogério Casal
>>>> Software Developer
>>>> Fone: 81 8805-4303
>>>> www.rogeriocasal.com.br
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>>
>>>
>>>
>>> --
>>> *Hélio Antonio Fransico Silva*
>>> Desenvolvedor web
>>> Certificado Flash developer
>>> Certificado Flash Design
>>> Certificado web developer
>>> Consultor Microsiga / Totvs
>>> Desenvolvedor ADVPL / ASP
>>> Analista de sistemas e ERP Sênior.
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> Rogério Casal
>> Software Developer
>> Fone: 81 8805-4303
>> www.rogeriocasal.com.br
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> *Hélio Antonio Fransico Silva*
> Desenvolvedor web
> Certificado Flash developer
> Certificado Flash Design
> Certificado web developer
> Consultor Microsiga / Totvs
> Desenvolvedor ADVPL / ASP
> Analista de sistemas e ERP Sênior.
>
>


-- 
*Hélio Antonio Fransico Silva*
Desenvolvedor web
Certificado Flash developer
Certificado Flash Design
Certificado web developer
Consultor Microsiga / Totvs
Desenvolvedor ADVPL / ASP
Analista de sistemas e ERP Sênior.

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a