Web Services com Flex
Olá a todos. Neste post vou fala um pouco sobre umas das formas que o flex usa para comunicação com outras linguagens de programação, os web services. Irei mostrar somente como e feita a chamada pelo flex, usando o objeto WebService para realizar esta operação. Segue o codigo para análise:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function clickBotao():void{
//chamada da operação do web service
webService.getOperation("OperacaoWebService").send();
}
private function retornaWebService(evt:ResultEvent):void{
//O retorno do seu web service deve ser tratado aqui
trace(evt.result);
}
private function erroWebService(erro:FaultEvent):void{
Alert.show("Ocorreu um erro!");
}
]]>
</mx:Script>
<mx:Button x="430" y="66" label="Botão" click="clickBotao();"/>
<mx:WebService id="webService" wsdl="http://meudominio.com.br/MeuWebService.asmx?wsdl">
<mx:operation name="OperacaoWebService" result="retornaWebService(event)" fault="erroWebService(event)"/>
</mx:WebService>
</mx:Application>
Logo a cima temos a classe WebService com uma operação chamada de “OperacaoWebService”, este nome será substituido pelo nome do web service desenvolvido. No exemplo não existe passagem de parâmetros, e o mesmo pode existir retorno ou não.
Neste exemplo é usado um web service asp net mas poderia ser usado um em php, jsp e outros. A implementação do web service não aparece no exemplo, ficando livre para futuras implementações.
Na prática ele servirá para buscar uma lista de objetos, retonar uma string ou mesmo chamar um procedimento simples sem parâmetros.
Tanto o erro quanto o retorno são tratados no objeto operation, e neste objeto também que podemos passar parâmetros caso necessário. Na hora da chamada do web service basta colocar os dados no send. Segue o exemplo:
webService.getOperation("OperacaoWebService").send(“Nome”, “Endereco”, “CEP”);
Por hoje e só. Ate++
2 Responses to “Web Services com Flex”
Leave a Reply

Paulo on agosto 12th, 2010
Cristian, estou tentando chamar um webservice duas vezes (operações diferentes), por exemplo um popula um drop dow e outro popula um datagrid e estou recebendo um erro 2032 Erro de Fluxo, notei que isso acontece sempre quando realizo um send() de duas operações de um webservice, existe alguma maneira de contornar isto ?
Obrigado
Cristian Klauss on agosto 27th, 2010
Dente verificar o nome e o caminho do seu web service dendo cuidado para que a sua pagina chamada realmente exista. Caso você esteja chamando os web services de um dominio e o seu projeto flex esteja local tente adicionar um arquivo chamado crossdomain.xml que deve ficar junto com o flex.