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