quinta-feira, 4 de outubro de 2012

Busca de Endereço Através do CEP no Dynamics CRM 2011

          Uma funcionalidade interessante que podemos implementar no Dynamics CRM 2011 é a busca do endereço de uma Conta através do CEP. Para realizarmos este processo, necessitamos editar o formulário da entidade e adicionarmos os JavaScripts necessários.
          Antes de iniciar a implementação da funcionalidade é necessário criar um Recurso da Web do tipo Script e importar a biblioteca JQuery no formulário, o download desta biblioteca pode ser realizado no site http://jquery.org/.
          Tento a biblioteca no formulário, criamos outro Recurso da Web, que no meu caso chamei de "BuscaEndereco", onde contém a função que realiza a busca do CEP. Abaixo eu tenho um exemplo desta função:

function BuscaCEP(){

var cep = Xrm.Page.getAttribute("address1_postalcode").getValue();


/*Limpa os Valores do Campos de Endereço*/

Xrm.Page.getAttribute("address1_line1").setValue('');
Xrm.Page.getAttribute("address1_line2").setValue('');
Xrm.Page.getAttribute("address1_city").setValue('');
Xrm.Page.getAttribute("address1_stateorprovince").setValue('');
Xrm.Page.getAttribute("address1_country").setValue('');

/*Faz a chamado do Web Service e popula os campos com o retorno obtido*/

$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=" + cep, function(){
        if(resultadoCEP["resultado"] == 1){
              var TipoLogradouro = resultadoCEP["tipo_logradouro"] + ' ' + resultadoCEP["logradouro"];
              Xrm.Page.getAttribute("address1_line1").setValue(unescape(TipoLogradouro)); 
              Xrm.Page.getAttribute("address1_line2").setValue(unescape(resultadoCEP["bairro"])); 
              Xrm.Page.getAttribute("address1_city").setValue(unescape(resultadoCEP["cidade"])); 
              Xrm.Page.getAttribute("address1_stateorprovince").setValue(unescape(resultadoCEP["uf"])); 
              Xrm.Page.getAttribute("address1_country").setValue("Brasil"); 
        } 

/*Mensagem de alerta caso o endereço não seja localizado*/

        if(resultadoCEP["resultado"] == 0){
              alert("Endereço não Localizado!");
        }
   });
}

          Implementados os dois Recursos da Web, é necessário determinar em que momento em que realizamos a chamada do Script. Neste caso realizamos a chamada do recurso "BuscaEndereco" no momento em que o CEP da conta é alterado. Para isso realizo a chamada da função "BuscaCEP" no OnChange do campo CEP.


          Realizada esta implementação, basta salvar e publicar o formulário, que ao alterar o CEP, os dados de endereço serão preenchidos automaticamente. Esta funcionalidade pode ser implementada nas demais entidades que possuem endereço.


Nenhum comentário:

Postar um comentário