01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:Controle de acesso
Função:Devices
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :
  1. DLOGPORTOS-19078


02. SITUAÇÃO/REQUISITO

Para atendimento da demanda de integração para o controle de acesso foi desenvolvido um componente para acesso à lista de equipamentos ativos cadastrados no ecossistema TOTVS Logística Recintos Aduaneiros. Este componente será responsável por fornecer a lista de equipamentos devidamente cadastrados e em estado ativo na base de dados, mediante autorização para consumo da API.

03. SOLUÇÃO

A implementação da interface depende dos seguintes elementos do framework de desenvolvimento:


São métodos expostos pela implementação da interface ICATRACABase:

  • function TreatRequest(const AConnection: IDBFullConfigConnection; const ARequest: TWebRequest; const AResponse: TWebResponse): THTTPCode;

Não há propriedades expostas pela interface ICATRACABase.

Para utilização da implementação da interface ICATRACABase em aplicações Delphi, segue o exemplo de uso deste componente.


Execução da ação de login:

procedure TComponentDebugger.btnSendToActiveDevicesClick(Sender: TObject);
var
  Request: TWebRequest;
  Response: TWebResponse;
  Return: THTTPCode;
  ResponseJSON: TJSONObject;
begin
  sedtResponse.Lines.Clear;
  Request := TWinCGIRequest.Create(FBasePath + INI_FILE, FBasePath + CONTENT_FILE, FBasePath + OUTPUT_FILE);
  Response := TCGIResponse.Create(Request);

  if chkWithParams.Checked then
  begin
    Request.QueryFields.Add(PAGE_PARAM.Format([edtPage.Text]));
    Request.QueryFields.Add(PAGE_SIZE_PARAM.Format([edtPageSize.Text]));
  end;

  Return := TCATRACAFactory.Instance.GetObject(ACTIVE_DEVICES_CLASS_KEY).TreatRequest(FConnection
                                                                                    , Request
                                                                                    , Response);

  case Return.IsOkResult of
    True : Application.MessageBox(PWideChar(RESPONSE_MESSAGE.Format([Return.Code, Return.Message])), 'Informação', MB_OK or MB_ICONINFORMATION);
    False: Application.MessageBox(PWideChar(RESPONSE_MESSAGE.Format([Return.Code, Return.Message])), 'Erro', MB_OK or MB_ICONERROR);
  end;

  ResponseJSON := Response.Content.ToJSON;
  sedtResponse.Text := ResponseJSON.PrettyFormat(2);
  ResponseJSON.Free;
  Request.Free;
end;

Resultado esperado:


04. DEMAIS INFORMAÇÕES

Outras ações/ações relacionadas 

Por ser dependente do framework de desenvolvimento, os caminhos para os arquivos arquivos desta dependência devem estar presentes no projeto ao ser utilizado.

05. ASSUNTOS RELACIONADOS