Exemplo de Gravação de Registro de Pessoa Com PHSYS API

Revisão de 16h49min de 25 de março de 2024 por Alex.vieira (discussão | contribs)

Para ilustrar o processo de cadastro de cliente através da PHSYS API, foi criado um exemplo através do script C_INSERTCLIENTE. Este script é responsável por inserir os dados na tabela de PESSOAS do sistema ERP. Ele recebe parâmetros como nome, endereço, número, bairro, tipo de pessoa (física ou jurídica), e CPF ou CNPJ. Além disso, preenche alguns campos, como país, estado, tipo de logradouro, município e se é cliente, de forma fixa.

procedure C_INSERTCLIENTE;
 var Q:TPHQuery;                                                  
begin
 Q := NewPHQuery;                            
 try
   Q.Cadastro := 'CLIENTES';
   Q.NovoRegistro;

   { Preenchidos através dos parâmetros presentes no Body da Requisição }          
                               
   Q.FieldByName('NOME').AsString        := ParamByName('Nome').AsString;
   Q.FieldByName('LOGRADOURO').AsString  := ParamByName('Logradouro').AsString;
   Q.FieldByName('NUMERO').AsInteger     := ParamByName('Numero').AsInteger;
   Q.FieldByName('BAIRRO').AsString      := ParamByName('Bairro').AsString;
   Q.FieldByName('TIPOPESSOA').AsInteger := ParamByName('TipoPessoa').AsInteger;                                                                                                         
   Q.FieldByName('CNPJCPF').AsString     := ParamByName('CNPJCPF').AsString;        

   { Preenchidos de Forma Fixa }

   Q.FieldByName('PAIS').AsLargeInt           := 1;   { Valor Padrão: Brasil }
   Q.FieldByName('ESTADO').AsLargeInt         := 24;  { Valor Padrão: SC }        
   Q.FieldByName('TIPOLOGRADOURO').AsLargeInt := 1;   { Valor Padrão: Rua}        
   Q.FieldByName('MUNICIPIO').AsLargeInt      := 3;   { Valor Padrão: Blumenau }
   Q.FieldByName('EHCLIENTE').AsString        := 'S'; { Valor Padrão: Sim }

   Q.Post;
   
   { Retorna o ID da PHSYS do registro que foi cadastrado através da integração }
   ParamByName('ID_PHSYS').AsLargeInt := Q.FieldByName('ID').AsLargeInt;                                                                                                                                        
 
 finally
  Q.Free;                                
 end;                
end;

begin

end.

Para enviar os dados de cadastro para a API, é necessário criar um objeto JSON no Body da Requisição contendo os parâmetros necessários para execução do script C_INSERTCLIENTE. Este objeto deve incluir a classe TPHSProcScript, o procedimento Executar, e os parâmetros PHSProcedimento e PHSScriptNome com os valores C_INSERTCLIENTE. Os demais parâmetros, como nome, endereço, número, etc., devem ser incluídos com seus respectivos valores.

{ 
   "Classe":"TPHSProcScript", 
   "Procedimento":"Executar",
   "Parametros":[{
           "Nome":"PHSProcedimento",
           "Tipo":"string",
           "Valor":"C_INSERTCLIENTE"
       },
       {
           "Nome":"PHSScriptNome",
           "Tipo":"string",
           "Valor":"C_INSERTCLIENTE"
       },
       {
           "Nome":"Nome",
           "Tipo":"string",
           "Valor":"Pedro Henrique"  
       },
       {
           "Nome":"Logradouro",
           "Tipo":"string",
           "Valor":"Pedro Zimmerman"  
       },
       {
           "Nome":"Numero",
           "Tipo":"integer",
           "Valor": 25  
       },
       {
           "Nome":"Bairro",
           "Tipo":"string",
           "Valor": "Itoupavazinha" 
       },
       {
           "Nome":"TipoPessoa",
           "Tipo":"integer",
           "Valor": 1
       },
       {
           "Nome":"CNPJCPF",
           "Tipo":"string",
           "Valor": "598.956.949-11" 
       }
   ]
}

Após enviar a requisição para a API, o script será executado e o cliente será cadastrado no sistema. O retorno da API incluirá o ID do cliente cadastrado, que pode ser utilizado para futuras consultas ou atualizações. Este processo permite cadastrar clientes de forma automatizada e integrada com o sistema ERP, proporcionando mais agilidade e precisão nas operações de cadastro. Segue a baixo o retorno da requisição contendo o ID do registro gerado na PHSYS.

{
   "Parametros": [
       {
           "Nome": "ID_PHSYS",
           "Tipo": "largeint",
           "Valor": 53
       }
   ]
}