Artigo Clube Delphi 82 - Integrando sua aplicação com a busca de CEPS dos Correios - Win32

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Artigo da Revista Clube Delphi Edição 82.

Esse artigo faz parte da revista Clube Delphi Edição 82. Clique aqui para ler todos os artigos desta edição

. imagem_pdf.jpg

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).

 

Figura 3. Interface gerada pelo WSDL Import para acesso ao Web Service

 

Após finalizar o assistente você terá uma nova unit em seu projeto, Query.pas. Como nosso objetivo é criar um cadastro de fornecedores, precisaremos de um banco de dados e a devida tabela para armazenar os fornecedores cadastrados. Neste exemplo utilizaremos o Firebird como banco de dados e os componentes dbExpress para acessá-lo.

 

Criando o banco de dados

Criei uma estrutura simples para a tabela de fornecedores, apenas para demonstrar o funcionamento do Web Service. Vamos então criar o banco de dados de testes através do script da Listagem 1, usando seu gerenciador Firebird preferido ou mesmo usando o isql na pasta bin do Firebird. Lembre-se de criar a pasta mostrada no script ou altere o caminho do arquivo para o de sua preferência.

 

Listagem 1. Script para criação do banco de dados de exemplo

CREATE DATABASE 'LOCALHOST:C:\CLUBEDELPHI\TESTE_CEP.FDB'

USER 'SYSDBA' PASSWORD 'masterkey' PAGE_SIZE 4096;

 

CREATE TABLE FORNECEDORES (

  ID INTEGER NOT NULL,

  RAZAO_SOCIAL VARCHAR(200) NOT NULL,

  CEP VARCHAR(8) NOT NULL,

  ENDERECO VARCHAR(200),

  NUMERO INTEGER,

  BAIRRO VARCHAR(100),

  CIDADE VARCHAR(150),

  UF CHAR(2),

  CNPJ_CPF VARCHAR(18),

  TELEFONE VARCHAR(22),

  CONTATO VARCHAR(200),

  WEBSITE VARCHAR(200),

  EMAIL VARCHAR(200));

 

COMMIT WORK;

ALTER TABLE FORNECEDORES ADD PRIMARY KEY (ID);

COMMIT WORK;

 

Criando o cadastro de fornecedores

Após criar o banco de dados, volte ao Delphi e adicione ao formulário os componentes: SQLConnection, SimpleDataset, DataSource, um "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?