estou trabalhando em uma rotina de busca de dados e inclusão na SA1, está funcionando perfeitamente, mas não me parece estar de forma inteligente, alguma dica?
parte dos fontes abaixo.
classe de busca conexão APi
method WsBuscaCli() Class BuscaCLi
local aHeader := {}
local oRest := nil
local nStatus := 0
local cError := ""
oRest := FWRest():New("https://bbee4269-e0f9-40ec-b645-a49a8196adb3-00-3ot0ojtpprab0.riker.replit.dev/AddClientes")
oRest:setPath( "" )
if( oRest:Get( aHeader ) )
cError := ""
nStatus := HTTPGetStatus(@cError)
if( nStatus >= 200 .AND. nStatus <= 299 )
if( !Empty( oRest:getResult() ) )
::cResult := DecodeUtf8( oRest:getResult() )
endif
else
::cError := cError
endif
else
::cError := DecodeUtf8( oRest:getLastError() ) + iif( !Empty( oRest:getResult() ), CRLF + DecodeUtf8( oRest:getResult() ) , "" )
endif
::oJson:fromjson(::cResult)
return ::oJson
Classe recebendo o retorno da api e execuntando metodo de gravação
//Estrutura da classe e métodos
Class RotinaCli
data cError
data oCliente
data oRet
data oExeWs
method new_Cliente() constructor
method get_Cliente()
method exec_WServiceCli()
method exec_Rotina()
EndClass
//metodo construtor
method new_Cliente() class RotinaCli
::cError := ""
::oRet := JsonObject():new()
::oCliente := ClienteInc():new_ClienteSA1() //populando objeto com class/metodos de gravação
::oExeWs := BuscaCLi():New_BuscaCli()
return
//metodo de chamado para os metodos abaixo
method exec_Rotina() class RotinaCli
if(Empty(::cError))
::exec_WServiceCli()
endif
if(Empty(::cError))
::get_Cliente()
endif
return
//metodo com retorno do APi
method exec_WServiceCli() class RotinaCli
::oRet := ::oExeWs:WsBuscaCli()
return ::oRet["Sucesso"]:GetJsonObject()
//metodo que recebe os dados e executa o metodo de gravação
method get_Cliente() class RotinaCli
//ALIAS
::oCliente:cFil :=xFilial("SA1")
::oCliente:cCodigo := ::oRet["Sucesso"]:GetJsonObject("Codigo") ::oCliente:cNome := ::oRet["Sucesso"]:GetJsonObject("Nome")
::oCliente:cLoja := ::oRet["Sucesso"]:GetJsonObject("Loja")
::oCliente:cPessoa := ::oRet["Sucesso"]:GetJsonObject("Pessoa")
::oCliente:cEndereco := ::oRet["Sucesso"]:GetJsonObject("Endereco")
::oCliente:cNfantasia := ::oRet["Sucesso"]:GetJsonObject("NFantasia")
::oCliente:cBairro := ::oRet["Sucesso"]:GetJsonObject("Bairro")
::oCliente:cTipo := ::oRet["Sucesso"]:GetJsonObject("Tipo")
::oCliente:cEstado := ::oRet["Sucesso"]:GetJsonObject("Estado")
::oCliente:nCep := ::oRet["Sucesso"]:GetJsonObject("Cep")
::oCliente:cMunicip := ::oRet["Sucesso"]:GetJsonObject("Municipio")
::oCliente:cRegiao := ::oRet["Sucesso"]:GetJsonObject("")
::oCliente:cDescRegiao := ::oRet["Sucesso"]:GetJsonObject("")
::oCliente:cNatureza := ::oRet["Sucesso"]:GetJsonObject("Natureza")
::oCliente:cCpfCnpj := ::oRet["Sucesso"]:GetJsonObject("CPF/CNPJ")
::oCliente:Incluir_Cli(3)
return