Array de objetos - WebService - Delphi

Web service

Delphi

19/01/2019

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

Curtidas 2

Melhor post

Augusto Tiago

Augusto Tiago

21/01/2019

Depois de muito quebrar a cabeça consegui Resolver.

Pode encerrar o tópico.

Obrigado
GOSTEI 1
POSTAR