Bij 1 WSDL import krijg ik o.a. deze code te zien. Nu ken ik het fenomeen 'type' na de implementation niet.
Delphi Code:
  1. // ************************************************************************ //
  2.   // Namespace : [url]http://webservices.client.florecom.org/Government/PortDefinitions[/url]
  3.   // soapAction: |[url]http://webservices.client.florecom.org/Government/exporter/PutCertificate_315||http://webservices.client.florecom.org/Government/exporter/GetCertificateStatus_301|http://webservices.client.florecom.org/Government/exporter/GetCertificateDocument_302[/url]
  4.   // transport : [url]http://schemas.xmlsoap.org/soap/http[/url]
  5.   // style     : document
  6.   // use       : literal
  7.   // binding   : KetenRegisterClientExport
  8.   // service   : GovernmentExporter
  9.   // port      : ExportPort
  10.   // URL       : [url]https://prepilotexport.bkd.eu/ws/krce_com.php[/url]
  11.   // ************************************************************************ //
  12.   GovernmentExporterPorts = interface(IInvokable)
  13.   ['{B8083D6B-2487-F925-BD13-372B9DCA91B2}']
  14.  
  15.     // Cannot unwrap:
  16.     //     - Input element wrapper name does not match operation's name
  17.     function  PutCertificate(const body: PutCertificateRequest): PutCertificateResponse; stdcall;
  18.  
  19.     // Cannot unwrap:
  20.     //     - Input element wrapper name does not match operation's name
  21.     function  PutCertificateCancel(const body: PutCertifcateCancelRequest): PutCertifcateCancelResponse; stdcall;
  22.  
  23.     // Cannot unwrap:
  24.     //     - Input element wrapper name does not match operation's name
  25.     //     - More than one strictly out element was found
  26.     function  GetCertificateStatus(const body: GetCertificateStatusRequest): GetCertificateStatusResponse; stdcall;
  27.  
  28.     // Cannot unwrap:
  29.     //     - Input element wrapper name does not match operation's name
  30.     //     - More than one strictly out element was found
  31.     function  GetAsyncCertificateStatus(const body: GetAsyncCertificateStatusRequest): GetAsyncCertificateStatusResponse; stdcall;
  32.  
  33.     // Cannot unwrap:
  34.     //     - Input element wrapper name does not match operation's name
  35.     function  GetInspection(const body: GetInspectionRequest): GetInspectionResponse; stdcall;
  36.  
  37.     // Cannot unwrap:
  38.     //     - Input element wrapper name does not match operation's name
  39.     function  GetCertificateDocument(const body: GetCertificateDocumentRequest): GetCertificateDocumentResponse; stdcall;
  40.   end;
  41.  
  42.  
  43.  
  44. implementation
  45.  
  46. type
  47.  
  48.   GovernmentExporterPortsImpl = class(TInvokableClass, GovernmentExporterPorts)
  49.   public
  50.     { GovernmentExporterPorts }
  51.  
  52.     // Cannot unwrap:
  53.     //     - Input element wrapper name does not match operation's name
  54.     function  PutCertificate(const body: PutCertificateRequest): PutCertificateResponse; stdcall;
  55.  
  56.     // Cannot unwrap:
  57.     //     - Input element wrapper name does not match operation's name
  58.     function  PutCertificateCancel(const body: PutCertifcateCancelRequest): PutCertifcateCancelResponse; stdcall;
  59.  
  60.     // Cannot unwrap:
  61.     //     - Input element wrapper name does not match operation's name
  62.     //     - More than one strictly out element was found
  63.     function  GetCertificateStatus(const body: GetCertificateStatusRequest): GetCertificateStatusResponse; stdcall;
  64.  
  65.     // Cannot unwrap:
  66.     //     - Input element wrapper name does not match operation's name
  67.     //     - More than one strictly out element was found
  68.     function  GetAsyncCertificateStatus(const body: GetAsyncCertificateStatusRequest): GetAsyncCertificateStatusResponse; stdcall;
  69.  
  70.     // Cannot unwrap:
  71.     //     - Input element wrapper name does not match operation's name
  72.     function  GetInspection(const body: GetInspectionRequest): GetInspectionResponse; stdcall;
  73.  
  74.     // Cannot unwrap:
  75.     //     - Input element wrapper name does not match operation's name
  76.     function  GetCertificateDocument(const body: GetCertificateDocumentRequest): GetCertificateDocumentResponse; stdcall;
  77.   end;
  78.  
  79. function GovernmentExporterPortsImpl.PutCertificate(const body: PutCertificateRequest): PutCertificateResponse;
  80. begin
  81.   { TODO - Implement method PutCertificate }
  82. end;
  83.  
  84. function GovernmentExporterPortsImpl.PutCertificateCancel(const body: PutCertifcateCancelRequest): PutCertifcateCancelResponse;
  85. begin
  86.   { TODO - Implement method PutCertificateCancel }
  87. end;
  88.  
  89. function GovernmentExporterPortsImpl.GetCertificateStatus(const body: GetCertificateStatusRequest): GetCertificateStatusResponse;
  90. begin
  91.   { TODO - Implement method GetCertificateStatus }
  92. end;
  93.  
  94. function GovernmentExporterPortsImpl.GetAsyncCertificateStatus(const body: GetAsyncCertificateStatusRequest): GetAsyncCertificateStatusResponse;
  95. begin
  96.   { TODO - Implement method GetAsyncCertificateStatus }
  97. end;
  98.  
  99. function GovernmentExporterPortsImpl.GetInspection(const body: GetInspectionRequest): GetInspectionResponse;
  100. begin
  101.   { TODO - Implement method GetInspection }
  102. end;
  103.  
  104. function GovernmentExporterPortsImpl.GetCertificateDocument(const body: GetCertificateDocumentRequest): GetCertificateDocumentResponse;
  105. begin
  106.   { TODO - Implement method GetCertificateDocument }
  107. end;

Normaal voeg ik dit toe aan de WSDL import om de HTTPRio aan te sturen.
Delphi Code:
  1. Function GetGovernmentExporterPorts(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): GovernmentExporterPorts;
  2.  
  3. implementation
  4.  
  5. uses System.SysUtils, clDefaults;
  6.  
  7. function GetGovernmentExporterPorts(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): GovernmentExporterPorts;
  8. const
  9. //  defWSDL = 'https://acclongexport.bkd.eu/ws/krce_com.php?wsdl';
  10. //  defURL  = 'https://acclongexport.bkd.eu/ws/krce_com.php';
  11.   defSvc  = 'GovernmentExporter';
  12.   defPrt  = 'ExportPort';
  13. var
  14.   RIO: THTTPRIO;
  15.   defWSDL : string;
  16.   defURL  : string;
  17.  begin
  18.   defWSDL := uDefaults.getvalue('WDSL_SITE') + '/' + uDefaults.getvalue('DEFKRCE') + '?wsdl';
  19.   defUrl  := uDefaults.getvalue('WDSL_SITE') + '/' + uDefaults.getvalue('DEFKRCE');
  20.   Result := nil;
  21.   if (Addr = '') then
  22.   begin
  23.     if UseWSDL then
  24.       Addr := defWSDL
  25.     else
  26.       Addr := defURL;
  27.   end;
  28.   if HTTPRIO = nil then
  29.     RIO := THTTPRIO.Create(nil)
  30.   else
  31.     RIO := HTTPRIO;
  32.   try
  33.     Result := (RIO as GovernmentExporterPorts);
  34.     if UseWSDL then
  35.     begin
  36.       RIO.WSDLLocation := Addr;
  37.       RIO.Service := defSvc;
  38.       RIO.Port := defPrt;
  39.     end else
  40.       RIO.URL := Addr;
  41.     //timeout connectie
  42.     RIO.HTTPWebNode.ConnectTimeout := RIO.HTTPWebNode.ConnectTimeout * 5;
  43. //    RIO.HTTPWebNode.SendTimeout := RIO.HTTPWebNode.SendTimeout * 5;
  44.     RIO.HTTPWebNode.ReceiveTimeout := RIO.HTTPWebNode.ReceiveTimeout * 5;
  45.  
  46.  
  47.   finally
  48.     if (Result = nil) and (HTTPRIO = nil) then
  49.       RIO.Free;
  50.   end;
  51. end;
Maar als functie wordt aangeroepen, krijg ik de melding dat deze niet bestaat.

Hoe roep ik nu de functie aan?