Exemplo de Leitura de Registro de Pessoa Com PHSYS API
Com a API é possível acessar diversas funcionalidades, incluindo a consulta de registros na base de dados. Para ilustrar, vamos considerar um cenário onde precisamos obter informações de clientes no ERP. Com a PHSYS API, podemos consumir essas informações de forma fácil e eficiente.
Primeiramente, criamos um script específico dentro do ERP através do módulo desenvolvimento, no qual, foi nomeado C_PHGetPessoasByIDs com e inserido o seguinte comportamento desenvolvido:
procedure C_PHGetPessoasByIDs;
var
Q: TPHQuery;
TextJSON:String;
begin
if not (ParamByName('IDs').IsNull) then
begin
Q := NewPHQuery;
try
Q.Add('SELECT A.ID, '+
' A.NOME, '+
' A.TELEFONE, '+
' B.NOME AS ESTADO, '+
' C.NOME AS MUNICIPIO '+
'FROM PESSOAS A '+
'LEFT JOIN ESTADOS B ON B.ID = A.ESTADO '+
'LEFT JOIN MUNICIPIOS C ON C.ID = A.MUNICIPIO '+
'WHERE A.ID IN ('+ ParamByName('IDs').AsString +')');
Q.Open;
while not Q.Eof do
begin
if (TextJSON <> ) then
TextJSON := TextJSON + ', ';
TextJSON := TextJSON + '{ ' +
'"ID" : "'+ Q.FieldByName('ID').AsString + '",' +
'"Nome" : "'+ Q.FieldByName('NOME').AsString + '",' +
'"Telefone" : "'+ Q.FieldByName('TELEFONE').AsString + '",' +
'"Estado" : "'+ Q.FieldByName('ESTADO').AsString + '",' +
'"Municipio" : "'+ Q.FieldByName('MUNICIPIO').AsString + '"'+
'}';
Q.Next
end;
TextJSON := '"Pessoas" :[' + TextJSON + '],';
TextJSON := TextJSON + '"Quantidade" : "'+ IntToStr(Q.RecordCount) + '"';
TextJSON := '{'+ TextJSON + '}';
ParamByName('Result').AsString := TextJSON;
finally
Q.Free;
end;
end;
end;
begin
end.
Neste script existe o procedimento C_PHGetPessoasByIDs que realiza a consulta das informações cadastrais com base nos IDs que são preenchidos pelo parâmetro IDs do Body da Requisição e realiza a estruturação de uma string em formato de JSON.
Para consumir o parâmetro IDs preenchido no Body da Requisição é utilizado no método ParamByName, da seguinte maneira:
ParamByName('IDs').AsString;
Ao final do script, foi atribuido o parâmetro Result da seguinte maneira:
ParamByName('Result').AsString := TextJSON;
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á a string estruturada em formato JSON através do atributo Pessoas com as informações dos registros consultados através dos IDs juntamente com o atributo Quantidade ao final, que retornará a quantidade de registros retornados pela consulta.
Em seguida, para estruturação da requisição, é necessário que dentro do servidor de aplicação, na página API, seja criada a chave de acesso, na qual, denominamos PHGetPessoasByIDs conforme a imagem abaixo:
Para execução do script específico através da requisição é necessário que seja estruturado o Body da Requisição conforme padrão PHSYS, contendo a classe TPHSProcScript e o procedimento Executar. É necessário que nos parâmetros seja incluso os seguintes parâmetros:
- PHSProcedimento: Preenchido com o nome do procedimento do script que será executado.
- PHSScriptNome: Preenchido com o nome do script que será executado.
- IDs: Preenchido com os IDs dos registros que é desejado retornar as informações cadastrais, separados por "," e sendo do tipo string.
Com essa configuração e o desenvolvimento do script de leitura específico, ao realizar a requisição para a chave de acesso, as informações do cliente são retornadas de acordo com os IDs passado por parâmetro através do Body da Requisição.
Ao executar a requisição, a resposta no Body da Requisição conterá as informações solicitadas, nas quais, podem ser manipuladas da maneira que for necessário, pode ser observado o retorno no exemplo abaixo: