Delphi Code:
procedure TForm1.Button1Click(Sender: TObject);
var SOAPkre : KREPortType;
Request : ValidateListRequest;
Response : ValidateListResponse;
Header : KRHeaderType;
begin
SOAPkre := GetKREPortType(True);
Request := ValidateListRequest.Create;
Header := KRHeaderType.Create;
with Header do
begin
Username.Text := username;
Password.Text := wachtwoord;
Checksum.Text := checksum;
ExporterParty.PrimaryID.schemeID := kvk;
end;
Request.Header := Header;
Response := SOAPkre.GetValidateList(Request);
Header.Free;
Request.Free;
end;
Dit is een stukje van de imported WSDL unit.
Delphi Code:
// ************************************************************************ //
// XML : ValidateListRequest, global, <element>
// Serializtn: [xoLiteralParam]
// Info : Wrapper
// ************************************************************************ //
ValidateListRequest = class(TRemotable)
private
FHeader: KRHeaderType;
public
constructor Create; override;
destructor Destroy; override;
published
property Header: KRHeaderType read FHeader write FHeader;
end;
constructor ValidateListRequest.Create;
begin
inherited Create;
FSerializationOptions := [xoLiteralParam];
end;
destructor ValidateListRequest.Destroy;
begin
System.SysUtils.FreeAndNil(FHeader);
inherited Destroy;
end;
KRHeaderType = class(TRemotable)
private
FUsername: TextType;
FPassword: TextType;
FChecksum: TextType;
FChecksum_Specified: boolean;
FExporterParty: AgentPartyType;
procedure SetChecksum(Index: Integer; const ATextType: TextType);
function Checksum_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property Username: TextType read FUsername write FUsername;
property Password: TextType read FPassword write FPassword;
property Checksum: TextType Index (IS_OPTN) read FChecksum write SetChecksum stored Checksum_Specified;
property ExporterParty: AgentPartyType read FExporterParty write FExporterParty;
end;
In principe geen rare dingen te zien.
Ik begrijp een stukje in de help niet:
Note: To create a class that represents scalar values that do not correspond directly to an Object Pascal type, use TRemotableXS as a base class instead. TRemotableXS is a descendant of the TRemotable class.
Betekent dat ik de objecten verkeert inialiseert?. Dat zal 0x0000000c verklaren.
Ik zie via de debugger dat het bij regel 10 fout gaat.
Bookmarks