Array de objetos - WebService - Delphi

19/01/2019

0

Bom dia,

Gostaria de saber se alguém poderia me ajudar na seguinte situação:

Estou fazendo uma integração com o web service da Jucesp, o qual exige dois níveis de autenticação: autenticação no servidor web e autenticação no SIL. Até ai tudo bem consegui fazer a conexão e também consigo fazer a maioria das consultas.

Porém tem alguns métodos ex: InformarInicioLicenciamentoAltoRisco que são passados parametros para ele e não estou conseguindo.

Se alguém puder me demonstrar como chamar o método corretamente e passar os parâmetros eu agradeço muito.


function  InformarInicioLicenciamentoAltoRisco(const parameters: InformarInicioLicenciamentoAltoRiscoRequest): InformarInicioLicenciamentoAltoRiscoResponse; stdcall; 

-------------------------------------------------------------------
InformarInicioLicenciamentoAltoRiscoRequest = class(TRemotable)
  private
    FParametros: ArrayOfInformarInicioLicenciamentoAltoRiscoParameters;
    FParametros_Specified: boolean;
    procedure SetParametros(Index: Integer; const AArrayOfInformarInicioLicenciamentoAltoRiscoParameters: ArrayOfInformarInicioLicenciamentoAltoRiscoParameters);
    function  Parametros_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
    destructor Destroy; override;
  published
    property Parametros: ArrayOfInformarInicioLicenciamentoAltoRiscoParameters  Index (IS_OPTN) read FParametros write SetParametros stored Parametros_Specified;
  end;
-----------------------------------------------------------------
  InformarInicioLicenciamentoAltoRiscoResponse = class(TRemotable)
  private
    FResultados: ArrayOfItemTransacao;
    FResultados_Specified: boolean;
    FResultCode: Integer;
    FResultDescription: string;
    FResultDescription_Specified: boolean;
    procedure SetResultados(Index: Integer; const AArrayOfItemTransacao: ArrayOfItemTransacao);
    function  Resultados_Specified(Index: Integer): boolean;
    procedure SetResultDescription(Index: Integer; const Astring: string);
    function  ResultDescription_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
    destructor Destroy; override;
  published
    property Resultados:        ArrayOfItemTransacao  Index (IS_OPTN) read FResultados write SetResultados stored Resultados_Specified;
    property ResultCode:        Integer               read FResultCode write FResultCode;
    property ResultDescription: string                Index (IS_OPTN) read FResultDescription write SetResultDescription stored ResultDescription_Specified;
  end;
-------------------------------------------------
  InformarInicioLicenciamentoAltoRiscoParameters = class(TRemotable)
  private
    FProtocolo: string;
    FProtocolo_Specified: boolean;
    FInicioAtendimento: TXSDateTime;
    FIdOrgao: Integer;
    FProtocoloAtendimento: string;
    FProtocoloAtendimento_Specified: boolean;
    procedure SetProtocolo(Index: Integer; const Astring: string);
    function  Protocolo_Specified(Index: Integer): boolean;
    procedure SetProtocoloAtendimento(Index: Integer; const Astring: string);
    function  ProtocoloAtendimento_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Protocolo:            string       Index (IS_OPTN) read FProtocolo write SetProtocolo stored Protocolo_Specified;
    property InicioAtendimento:    TXSDateTime  read FInicioAtendimento write FInicioAtendimento;
    property IdOrgao:              Integer      read FIdOrgao write FIdOrgao;
    property ProtocoloAtendimento: string       Index (IS_OPTN) read FProtocoloAtendimento write SetProtocoloAtendimento stored ProtocoloAtendimento_Specified;
  end;



Código que não funciona abaixo:

procedure TForm1.Button3Click(Sender: TObject);
var
  funcaoenvio : InformarInicioLicenciamentoAltoRiscoRequest;
  funcaoparamentros : InformarInicioLicenciamentoAltoRiscoParameters;
  tempo : TXSDateTime;
begin
        Tempo := TXSDateTime(FormatDateTime('YYYY-MM-DD-T',now));

        funcaoenvio :=  InformarInicioLicenciamentoAltoRiscoRequest.Create;
        funcaoparamentros :=  InformarInicioLicenciamentoAltoRiscoParameters.Create;
       funcaoparamentros.Protocolo := '1659780201895';
       funcaoparamentros.InicioAtendimento :=  tempo ;
       funcaoparamentros.IdOrgao:= 464 ;       //id do orgão
       funcaoparamentros.ProtocoloAtendimento:= '19384/2018';


           //Dessa forma abaixo a aplicação da erro na execução
           //funcaoenvio.Parametros[0].Protocolo:=  '1659780201895';
          // funcaoenvio.Parametros[0].InicioAtendimento:=  tempo;
          // funcaoenvio.Parametros[0].IdOrgao:=  464 ;
           //funcaoenvio.Parametros[0].ProtocoloAtendimento:=  '19384/2018';

        showmessage( inttostr(GetIOperacionais.InformarInicioLicenciamentoAltoRisco(funcaoenvio).ResultCode) );

end;
Augusto Tiago

Augusto Tiago

Responder

Post mais votado

21/01/2019

Depois de muito quebrar a cabeça consegui Resolver.

Pode encerrar o tópico.

Obrigado

Augusto Tiago

Augusto Tiago
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar