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.  
+
Para ilustrar o processo de cadastro de clientes através da [[PHSYS_API|PHSYS API]], foi criado um exemplo usando o script '''C_PHInsertClient'''. Este script insere os dados e adiciona um registro na tabela '''PESSOAS''' do sistema ERP através da classe.
  
São consumidos 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:
+
São utilizados parâmetros como nome, endereço, número, bairro, tipo de pessoa (física ou jurídica), CPF ou CNPJ, que devem ser preenchidos no conteúdo do '''Body da Requisição''' ao realizar a requisição. Alguns campos, como país, estado, tipo de logradouro e município, são preenchidos de forma fixa para simplificar o exemplo. Abaixo está o conteúdo do script:
  
 
  procedure C_PHInsertClient;
 
  procedure C_PHInsertClient;
Linha 68: Linha 68:
 
  end.
 
  end.
  
Neste script existe o procedimento '''C_PHInsertClient''' que realiza a criação do registro de cliente dentro do ERP utilizando a respectiva classe e preenchendo algumas informações através dos parâmetros parâmetros que são inseridos no '''Body da Requisição'''.
+
Neste script, o procedimento '''C_PHInsertClient''' verifica se o CNPJ passado por parâmetro já está cadastrado em alguma pessoa dentro do ERP. Se sim, uma mensagem de erro é retornada para a requisição através do parâmetro Result, conforme definido:
 +
 
 +
ParamByName('Result').AsString := '{"Erro" : "CNPJ/CPF já cadastrado no ERP."}';
 +
 
 +
Caso o CPF/CNPJ não esteja presente em nenhum registro do ERP, é criado um novo registro de cliente utilizando a classe correspondente e preenchendo algumas informações com os parâmetros fornecidos no '''Body da Requisição'''.
  
 
Para consumir os parâmetros preenchido no '''Body da Requisição''' é utilizado no método '''ParamByName''', da seguinte maneira:
 
Para consumir os parâmetros preenchido no '''Body da Requisição''' é utilizado no método '''ParamByName''', da seguinte maneira:
Linha 84: Linha 88:
 
  ParamByName('CNPJCPF').AsString;       
 
  ParamByName('CNPJCPF').AsString;       
  
Ao final do script, foi atribuido o parâmetro Result da seguinte maneira:
+
A resposta do script para o sucesso contém a atribuição do parâmetro Result da seguinte maneira:
  
 
  ParamByName('Result').AsString := '{"ID_PHSYS" : "'+ intToStr(Cliente.CampoDoNome('ID').AsLargeInt)+'"}';
 
  ParamByName('Result').AsString := '{"ID_PHSYS" : "'+ intToStr(Cliente.CampoDoNome('ID').AsLargeInt)+'"}';
  
O parâmetro '''Result''' é utilizado para definir o retorno da requisição, quando realizada a requisição através da API, será retornado apenas o conteúdo do parâmetro '''Result''', neste caso, conterá uma string em formato JSON que conterá o atributo '''PHSYS_ID''' que possuíra o valor do ID deste novo registro que foi inserido na tabela '''PESSOAS'''.
+
O parâmetro '''Result''' é utilizado para definir o retorno da requisição. Ao realizar a requisição através da API, apenas o conteúdo do parâmetro '''Result''' será retornado, contendo uma string em formato JSON com o atributo '''PHSYS_ID''', que terá o valor do ID do novo registro inserido na tabela PESSOAS
  
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.
+
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 a 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.
  
 
  {  
 
  {  

Edição atual tal como às 17h58min de 3 de abril de 2024

Para ilustrar o processo de cadastro de clientes através da PHSYS API, foi criado um exemplo usando o script C_PHInsertClient. Este script insere os dados e adiciona um registro na tabela PESSOAS do sistema ERP através da classe.

São utilizados parâmetros como nome, endereço, número, bairro, tipo de pessoa (física ou jurídica), CPF ou CNPJ, que devem ser preenchidos no conteúdo do Body da Requisição ao realizar a requisição. Alguns campos, como país, estado, tipo de logradouro e município, são preenchidos de forma fixa para simplificar o exemplo. Abaixo está 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.

Neste script, o procedimento C_PHInsertClient verifica se o CNPJ passado por parâmetro já está cadastrado em alguma pessoa dentro do ERP. Se sim, uma mensagem de erro é retornada para a requisição através do parâmetro Result, conforme definido:

ParamByName('Result').AsString := '{"Erro" : "CNPJ/CPF já cadastrado no ERP."}'; 

Caso o CPF/CNPJ não esteja presente em nenhum registro do ERP, é criado um novo registro de cliente utilizando a classe correspondente e preenchendo algumas informações com os parâmetros fornecidos no Body da Requisição.

Para consumir os parâmetros preenchido no Body da Requisição é utilizado no método ParamByName, da seguinte maneira:

ParamByName('Nome').AsString;

ParamByName('Logradouro').AsString;

ParamByName('Numero').AsInteger;

ParamByName('Bairro').AsString;

ParamByName('TipoPessoa').AsInteger; 
                                                                                                       
ParamByName('CNPJCPF').AsString;      

A resposta do script para o sucesso contém a atribuição do parâmetro Result da seguinte maneira:

ParamByName('Result').AsString := '{"ID_PHSYS" : "'+ intToStr(Cliente.CampoDoNome('ID').AsLargeInt)+'"}';

O parâmetro Result é utilizado para definir o retorno da requisição. Ao realizar a requisição através da API, apenas o conteúdo do parâmetro Result será retornado, contendo uma string em formato JSON com o atributo PHSYS_ID, que terá o valor do ID do novo registro inserido na tabela PESSOAS

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 a 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
       }
   ]
}