No vídeo de hoje, vamos demonstrar em como preencher informações do endereço conforme o CEP informado (através da API REST da ViaCEP).
A dúvida de hoje, nos perguntaram, se seria possível criar alguma parametrização num cadastro do Protheus, onde ao digitar o CEP já consumisse a API da ViaCEP e preenchesse as informações de Endereço, Cidade, Estado, entre outras.
Pensando nisso, montamos um exemplo, onde vamos mostrar em como fazer isso, usando como base a tabela SA4 de Fornecedores, e a função zViaCEP disponível no seguinte link: https://terminaldeinformacao.com/2020/08/06/exemplo-de-integracao-com-viacep-usando-fwrest/.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zVid0207
Função acionada na validação do campo de CEP na tela de Transportadoras
@type Function
@author Atilio
@since 29/08/2024
@example u_zVid0207()
@obs Deve ser colocado no X3_VLDUSER (Validação de Usuário) da seguinte forma:
Iif(ExistBlock("zVid0207"), u_zVid0207(), .T.)
Como pré-requisito, deve ser feito o download da função zViaCEP adaptada pelo Súlivan Simões, disponível nesse link:
/*/
User Function zVid0207()
Local aArea := GetArea()
Local lContinua := .T.
Private jJson
//Busca o CEP conforme o campo informado
jJson := u_zViaCep(M->A4_CEP)
//Se não veio erro
If Type("jJson[erro]") == "U"
//Atualiza os campos com o retorno da função
M->A4_END := AvKey(jJson['logradouro'], "A4_END ")
M->A4_BAIRRO := AvKey(jJson['bairro'], "A4_BAIRRO ")
M->A4_MUN := AvKey(jJson['localidade'], "A4_MUN ")
M->A4_EST := AvKey(jJson['uf'], "A4_EST ")
M->A4_COD_MUN := AvKey(jJson['ibge'], "A4_COD_MUN")
M->A4_DDD := AvKey(jJson['ddd'], "A4_DDD ")
//Atualiza a tela
GetDRefresh()
EndIf
RestArea(aArea)
Return lContinua
Bom pessoal, por hoje é só.
Abraços e até a próxima.