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 cliente através da [[PHSYS_API |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. | Para ilustrar o processo de cadastro de cliente através da [[PHSYS_API |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 | + | procedure C_PHInsertPessoa; |
− | + | var | |
+ | Cliente: TPHServerClass; | ||
+ | Q:TPHQuery; | ||
begin | 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 | |
− | end; | + | 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 | begin | ||
− | + | ||
end. | end. | ||
Edição das 14h09min de 2 de abril de 2024
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_PHInsertPessoa; 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_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 } ] }