Exemplo de Gravação de Registro de Pessoa Com PHSYS API
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.
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:
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 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.
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;
Ao final do script, foi atribuido o 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, 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 do registro que foi inserido na tabela PESSOAS do ERP.
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
}
]
}