Mudanças entre as edições de "Exemplo de Gravação de Registro de Pessoa Com PHSYS API"

Linha 1: Linha 1:
Para ilustrar o processo de cadastro de clientes através da [[PHSYS_API |PHSYS API]], foi criado um exemplo através do script '''C_PHInsertClient'''. Este script é responsável por inserir os dados e incluir um registro na tabela '''PESSOAS''' do sistema ERP através da classe. Este script consome parâmetros como nome, endereço, número, bairro, tipo de pessoa (física ou jurídica), e CPF ou CNPJ que devem ser preenchidos através do conteúdo do '''Body da Requisição''' quando realizada a requisição. Alguns campos, como país, estado, tipo de logradouro, município são preenchidos de forma fixa para facilitar a exemplificação. Segue abaixo o conteúdo do script:
+
Para ilustrar o processo de cadastro de clientes através da [[PHSYS_API |PHSYS API]], foi criado um exemplo através do script '''C_PHInsertClient'''. Este script é responsável por inserir os dados e incluir um registro na tabela '''PESSOAS''' do sistema ERP através da classe.  
 +
 
 +
Este script consome parâmetros como nome, endereço, número, bairro, tipo de pessoa (física ou jurídica), e CPF ou CNPJ que devem ser preenchidos através do conteúdo do '''Body da Requisição''' quando realizada a requisição. Alguns campos, como país, estado, tipo de logradouro, município são preenchidos de forma fixa para facilitar a exemplificação. Segue abaixo o conteúdo do script:
  
 
  procedure C_PHInsertClient;
 
  procedure C_PHInsertClient;

Edição das 17h14min de 3 de abril de 2024

Para ilustrar o processo de cadastro de clientes através da PHSYS API, foi criado um exemplo através do script C_PHInsertClient. Este script é responsável por inserir os dados e incluir um registro na tabela PESSOAS do sistema ERP através da classe.

Este script consome parâmetros como nome, endereço, número, bairro, tipo de pessoa (física ou jurídica), e CPF ou CNPJ que devem ser preenchidos através do conteúdo do Body da Requisição quando realizada a requisição. Alguns campos, como país, estado, tipo de logradouro, município são preenchidos de forma fixa para facilitar a exemplificação. Segue abaixo o conteúdo do script:

procedure C_PHInsertClient;
var 
  Cliente: TPHServerClass;
  Q:TPHQuery;                                                                
begin
  IniciarTransacao;                
  try
    Q:= NewPHQuery;            
    try
      Q.Add('SELECT ID '+
           'FROM PESSOAS '+
           'WHERE CNPJCPF = :CNPJCPF ');                 

      Q.ParamByName('CNPJCPF').AsString := ParamByName('CNPJCPF').AsString;  
      Q.Open;
                    
      if not (Q.RecordCount > 0 ) then
      begin
        ParamByName('Cadastro').AsString := 'CLIENTES';                                                                    
        Cliente := NewPHServerClass('CLIENTES');
        try
           Cliente.NovoRegistro;
           
           { Preenchidos através dos parâmetros presentes no Body da Requisição }          
                              
           Cliente.CampoDoNome('NOME').AsString        := ParamByName('Nome').AsString;
           Cliente.CampoDoNome('LOGRADOURO').AsString  := ParamByName('Logradouro').AsString;
           Cliente.CampoDoNome('NUMERO').AsInteger     := ParamByName('Numero').AsInteger;
           Cliente.CampoDoNome('BAIRRO').AsString      := ParamByName('Bairro').AsString;
           Cliente.CampoDoNome('TIPOPESSOA').AsInteger := ParamByName('TipoPessoa').AsInteger;                                                                                                         
           Cliente.CampoDoNome('CNPJCPF').AsString     := ParamByName('CNPJCPF').AsString;        

           { Preenchidos de Forma Fixa }

           Cliente.CampoDoNome('PAIS').AsLargeInt           := 1;   { Valor Padrão: Brasil }
           Cliente.CampoDoNome('ESTADO').AsLargeInt         := 24;  { Valor Padrão: SC }        
           Cliente.CampoDoNome('TIPOLOGRADOURO').AsLargeInt := 1;   { Valor Padrão: Rua}        
           Cliente.CampoDoNome('MUNICIPIO').AsLargeInt      := 3;   { Valor Padrão: Blumenau }                 

           Cliente.Salvar;

           ParamByName('Result').AsString := '"ID_PHSYS" : "'+ intToStr(Cliente.CampoDoNome('ID').AsLargeInt)+'"';
                                                                                
        finally
           Cliente.Free;                        
        end;                 
      end else
      begin
        ParamByName('Result').AsString := '{"Erro" : "CNPJ/CPF já cadastrado no ERP."}';                                                            
      end;

      ConfirmarTransacao;          
    finally
      Q.Free;                                
    end;                           
  except                
    CancelarTransacao;
    ParamByName('Result').AsString :='{"Erro" : "'+ MensagemErro +'"}';  ;                                        
  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_PHInsertClient. Este objeto deve incluir a classe TPHSProcScript, o procedimento Executar, e os parâmetros PHSProcedimento e PHSScriptNome com os valores C_PHInsertClient. 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 abaixo o retorno da requisição contendo o ID do registro gerado na PHSYS.

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