Ich möchte über eine vorhandene
wsdl-Datei Daten versenden.
Dazu habe ich die
wsdl-Datei in Delphi 7 übernommen.
Unter anderem wurde folgendes generiert:
Delphi-Quellcode:
WarrantyArticle = class(TRemotable)
private
FarticleNumber: WideString;
FrequestedAmount: Integer;
published
property articleNumber : WideString read FarticleNumber write FarticleNumber;
property requestedAmount: Integer read FrequestedAmount write FrequestedAmount;
end;
WarrantyApplication = class(TRemotable)
private
FapplicantName : WideString;
Farticle : WarrantyArticle;
public
destructor Destroy; override;
published
property applicantName : WideString read FapplicantName write FapplicantName;
property article : WarrantyArticle read Farticle write Farticle;
end;
Übertragen wird dann sowas:
<applicantName>ApplicantName</applicantName>
- <article>
<articleNumber>9022 371 1020</articleNumber>
<requestedAmount>5</requestedAmount>
</article>
Soweit funktioniert das ganze auch einwandfrei.
Nur in der
wsdl-Datei steht bei Article, dass es sich hierbei um einen Array handelt.
Irgendwie hat mir Delphi das hier falsch übersetzt.
Denn wie soll ich hierbei mehrere Datensätze übertragen?
Deshalb habe ich das ganze etwas angepasst.
Delphi-Quellcode:
WarrantyArticle = class(TRemotable)
private
FarticleNumber: WideString;
FrequestedAmount: Integer;
published
property articleNumber : WideString read FarticleNumber write FarticleNumber;
property requestedAmount: Integer read FrequestedAmount write FrequestedAmount;
end;
ArticleArray = array of WarrantyArticle; // wurde von mir hinzugefügt
WarrantyApplication = class(TRemotable)
private
FapplicantName : WideString;
FArticleArray : ArticleArray;
public
destructor Destroy; override;
published
property applicantName : WideString read FapplicantName write FapplicantName;
property article : ArticleArray read FArticleArray write FArticleArray; // geändert
end;
Wenn ich das ganze jetzt ordentlich fülle, dann kommt dabei sowas raus:
<applicantName>ApplicantName</applicantName>
- <article>
- <WarrantyArticle>
<articleNumber>9022 371 1020</articleNumber>
<requestedAmount>5</requestedAmount>
</WarrantyArticle>
- <WarrantyArticle>
<articleNumber>0000 988 5211</articleNumber>
<requestedAmount>1</requestedAmount>
</WarrantyArticle>
</article>
Hier bekomme ich eine Fehlermeldung:
WarrantyArticle kann nicht entserialisiert werden.
Was ich auch verstehen kann. Denn ich brauche folgenden Aufbau:
<applicantName>ApplicantName</applicantName>
- <article>
<articleNumber>9022 371 1020</articleNumber>
<requestedAmount>5</requestedAmount>
</article>
- <article>
<articleNumber>0000 988 5211</articleNumber>
<requestedAmount>1</requestedAmount>
</article>
Also nix mit WarrantyArticle.
Egal was und wie ich es auch versuche, ich bekomme diesen Aufbau nicht hin.
Kann mir jemand dabei helfen?