Die Daten werden zuerst von einem XMLPort in ein temporäres BLOB Feld übertragen und anschließend in ein v6.0 Microsoft XML DOMDocument60 geladen. Der InStream für die Message wird dann aus dem DOMDocument generiert:
- Code: Alles auswählen
...
OutStream := OutMessage.GetStream;
CREATE(DOMDocument);
TempBlob.Blob.CREATEOUTSTREAM(BlobOutStream);
DataXMLPort.SETDESTINATION(BlobOutStream);
DataXMLPort.EXPORT;
TempBlob.Blob.CREATEINSTREAM(BlobInStream);
DOMDocument.load(BlobInStream);
DOMDocument.save(OutStream);
InMessage := OutMessage.SendWaitForReply(GetTimeout);
...
Der Empfang der Message schaut folgendermaĂźen aus:
Communication Component Event trigger "Messag" hat den VAR Parameter InMessage.
- Code: Alles auswählen
InStream := InMessage.GetStream;
CREATE(DOMDocument);
DOMDocument.load(InStream);
Beim Laden des InStreams in das DOMDocument tritt ein Fehler auf, dass die Elemente nicht korrekt geschlossen werden, so als ob der InStream nicht vollständig übertragen worden wäre. Keine Ahnung warum. Messages mit weniger Inhalt werden ohne Probleme übertragen und verarbeitet.
Weiß wer Bescheid, ob es eine Größenbeschränkung für die Communication Component Message gibt?