Importer WSDL con Delphi XE8, SOAPUI app client

di il
1 risposte

Importer WSDL con Delphi XE8, SOAPUI app client

Salve a tutta la comunità.
Devo realizzare un programma che deve connettersi con il Sistema Tessera Sanitaria del ministero, tramite sistema SOAPUI.
Ho importato una WSDL (rilasciata dal MEF) in Delphi XE8
Elenco le parti salienti del file importato:
  • VisualizzaErogatoRichiesta = class(TRemotable)
  • VisualizzaErogatoRicevuta = class(TRemotable)
  • function visualizzaErogato
- - - - - - - - - - - - - -- - - - - -- - - --

VisualizzaErogatoRichiesta = class(TRemotable)

VisualizzaErogatoRichiesta = class(TRemotable)
  private
    FpinCode: stringType;
    FcodiceRegioneErogatore: stringType;
    FcodiceAslErogatore: stringType;
    FcodiceSsaErogatore: stringType;
    Fpwd: pwdType;
    Fnre: nreType;
    FcfAssistito: stringType;
    FcfAssistito_Specified: boolean;
    FtipoOperazione: tipoOperazioneType;
    procedure SetcfAssistito(Index: Integer; const AstringType: stringType);
    function  cfAssistito_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property pinCode:                stringType          read FpinCode write FpinCode;
    property codiceRegioneErogatore: stringType          read FcodiceRegioneErogatore write FcodiceRegioneErogatore;
    property codiceAslErogatore:     stringType          read FcodiceAslErogatore write FcodiceAslErogatore;
    property codiceSsaErogatore:     stringType          read FcodiceSsaErogatore write FcodiceSsaErogatore;
    property pwd:                    pwdType             read Fpwd write Fpwd;
    property nre:                    nreType             read Fnre write Fnre;
    property cfAssistito:            stringType          Index (IS_OPTN) read FcfAssistito write SetcfAssistito stored cfAssistito_Specified;
    property tipoOperazione:         tipoOperazioneType  read FtipoOperazione write FtipoOperazione;
  end;
VisualizzaErogatoRicevuta = class(TRemotable)

  VisualizzaErogatoRicevuta = class(TRemotable)
  private
    Fnre: nreType;
    Fnre_Specified: boolean;
    FcfMedico1: cfMedicoType;
    FcfMedico1_Specified: boolean;
    ....
    .... ecc
Interfaccia WSDL con funzione di richiamo:
  visualizzaErogatoPT = interface(IInvokable)
  ['{AD9DB9DE-E3E4-1FD0-171D-FD78913E0E54}']

    // Cannot unwrap:
    //     - Input element wrapper name does not match operation's name
    //     - More than one strictly out element was found

    function  visualizzaErogato(const VisualizzaErogatoRichiesta: VisualizzaErogatoRichiesta): VisualizzaErogatoRicevuta; stdcall;
  end;

function GetvisualizzaErogatoPT(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): visualizzaErogatoPT;
Ho difficoltà a richiamare la funzione:
visualizzaErogato

procedure TMainF.Button3Click(Sender: TObject);
var
  interfaccia: visualizzaErogatoPT;
  richiesta : VisualizzaErogatoRichiesta;
  ricevuta : VisualizzaErogatoRicevuta;
begin
  try
   richiesta.pinCode := 'xxxxxxxx';
   richiesta.codiceRegioneErogatore := '180';
   richiesta.codiceAslErogatore := '145';
   richiesta.codiceSsaErogatore := '11111';
   richiesta.pwd := '';
   richiesta.nre := '299299299';
   richiesta.cfAssistito:='YYYYYYYYY';
   richiesta.tipoOperazione := '1';

      interfaccia := GetvisualizzaErogatoPT(true);
      ricevuta := interfaccia.visualizzaErogato(richiesta);
      label1.Caption := ricevuta.nre;

  except
    on E: Exception do
     showmessage(E.Message);
  end;
end;
Mi potete aiutare a capire dove sbaglio?

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte