Clique aqui para ler esse artigo em PDF.
Mão na Massa
Integrando sua aplicação com a busca de CEPS dos Correios – Win32
O dia a dia da empresa não deixa tempo para nada, é preciso fazer mais coisas em menos tempo, e o preenchimento de cadastros muitas vezes chega a ser irritante e repetitivo. Esse é um desafio para o programador, adivinhar o que o usuário precisará digitar é impossível, mas podemos ajudá-lo usando ferramentas e nossa própria imaginação para criar artifícios que os ajudem a serem mais produtivos.
Mostrarei uma forma de reduzir bastante o tempo e trabalho de inclusão de um cadastro de fornecedor, mostrando na prática como utilizar o Web Service de consulta de CEPs dos Correios, onde o usuário digitará o CEP do fornecedor e o endereço completo será preenchido automaticamente através da busca de logradouros, diminuindo drasticamente a quantidade de campos a serem preenchidos.
O Web Service de CEPs já existe a um bom tempo, porém com um pequeno detalhe, ele foi criado apenas para ser integrado ao Office 2003, dificultando um pouco o trabalho de integração com outros aplicativos, apesar disso é perfeitamente possível utilizá-lo a partir de aplicações Delphi.
Isso ficou um pouco obscuro durante um tempo, até que finalmente o nosso amigo Rodrigo Sendin trilhou o caminho das pedras e em seu artigo na edição anterior mostrou como realizar o processo em uma aplicação Delphi for .NET. De forma semelhante, transportei a idéia para o mundo Win32 e resolvi então escrever este artigo para demonstrar aos usuários de Delphi (VCL) como acessar o serviço e usá-lo de uma forma útil.
Importando o Web Service dos Correios
Podemos encontrar no site dos Correios (www.correios.com.br) quase no rodapé da página principal, o sistema de busca de CEPs. No mesmo quadro, mais abaixo encontramos um link que direciona para “outras formas de consulta” (www.correios.com.br/servicos/cep/cep_loc_log.cfm).
Nessa página, no menu lateral esquerdo existe o link: Veja como consultar o CEP no Office da Microsoft (www.correios.com.br/parcerias/cep/office2003/default.cfm), onde você encontra as instruções de como instalar o Web Service no Office 2003.
Seguindo as instruções da página, durante o processo de instalação, o Office exibe uma janela com um endereço direcionando para o Web Service (Figura 1), a extensão ASMX indica que o Web Service foi criado com ASP.NET, e será esse endereço que usaremos para fazer as consultas.
Figura 1. Extraindo o endereço do Web Service do Office
Criando o projeto
Crie um novo projeto no Delphi. Para obter acesso ao Web Service usaremos SOAP através de uma interface que o Delphi gerará por meio do WSDL Importer. No menu File>New>Other, selecione a aba WebServices e então o WSDL Importer.
No wizard que aparecerá, digite o endereço do Web Service. O valor a ser digitado, é: “http://consultacep.correios.com.br/office2003/Query.asmx?WSDL”. O ?WSDL serve para que o Web Service retorne sua descrição e funções remotas disponíveis, se quiser ver o retorno detalhado abra o endereço anterior em seu navegador (Figura 2).
Figura 2. WSDL Import do Delphi
Depois de digitar o endereço, clique em Next e veja que o Delphi gerou uma unit com a interface de acesso ao Web Service, que possui apenas uma função chamada Query (Figura 3).