Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Microsoft BizTalk-Adapter für mySAP Business Suite unterstützt nachrichtenstreaming zwischen sich selbst und einer Clientanwendung. Mit dem SAP-Adapter werden Operationen aufgerufen, und Antworten werden durch den Austausch von SOAP-Nachrichten empfangen. Ein SOAP-Nachrichtentext besteht aus XML-Knoten.
Es gibt zwei Arten von Nachrichtenstreaming, die vom Adapter unterstützt werden:
Node Streaming. Beim Knotenstreaming kann eine Nachricht nacheinander von einem Knoten zum anderen zwischen dem Client und dem Adapter gestreamt werden. Dies bedeutet, dass der gesamte Wert eines Knotens in einen Puffer gelesen und dann an den Empfänger gesendet wird.
Node-Value-Streaming. Im Knotenwert-Streaming kann der tatsächliche Wert des Knotens in Blöcken zwischen dem Client und dem Adapter gestreamt werden. Node-Value Streaming ist nützlich für das Senden oder Empfangen großer IDOCs mithilfe von SendIdoc- oder ReceiveIdoc-Vorgängen. Dies liegt daran, dass das gesamte IDOC in einem einzigen Knoten enthalten ist. (Im Gegensatz zu einem stark typierten Sende- oder Empfangsvorgang, bei dem die IDOC-Daten in viele Knoten unterteilt sind).
Von Bedeutung
Das Streaming von Knotenwerten wird nur zwischen dem Adapter und einer Clientanwendung unterstützt. Der SAP-Adapter unterstützt kein End-to-End-Node-Value-Streaming mit dem SAP-System. Dies liegt daran, dass diese Funktionalität von der SAP-Clientbibliothek nicht unterstützt wird.
Beide Streamingmodi basieren auf der Unterstützung des Knotenstreamings und des Node-Wert-Streamings für Nachrichten in WCF. Aus diesem Grund ist Streaming eng mit der Erstellung und Nutzung von Nachrichten durch den Adapter und eine Clientanwendung verknüpft. Ein Ergebnis ist, dass die Unterstützung für Nachrichtenstreaming nicht für alle Programmiermodelle identisch ist.
Die Abschnitte in diesem Thema enthalten:
Grundlegende Hintergrundinformationen dazu, wie Nachrichtenstreaming in WCF unterstützt wird und wie es vom Adapter implementiert wird.
Informationen dazu, wie Nachrichtenstreaming unterstützt wird, wenn Sie den Adapter in jedem Programmiermodell verwenden.
Grundlagen des Streamings
Die Vom SAP-Adapter implementierte Unterstützung für Streaming ist eine Kombination von:
Unterstützung für Nachrichtenstreaming in WCF.
Streamingunterstützung in der SAP-Clientbibliothek.
Die Art und Weise, wie Nachrichten intern vom Adapter erstellt und genutzt werden.
Unterstützung für Nachrichtenstreaming in WCF
Wie WCF streaming für eine Nachricht unterstützt, hängt sowohl davon ab, wie die Nachricht erstellt wird als auch davon, wie die Nachricht genutzt wird.
Eine WCF-Nachricht wird mithilfe der statischen Create-Methode von System.ServiceModel.Channels.Message erstellt. Diese Methode verfügt über mehrere Überladungen von Funktionen, die verschiedene Möglichkeiten zum Übergeben des Nachrichtentexts ermöglichen. Eine WCF-Nachricht kann durch Übergeben des Nachrichtentexts erstellt werden:
Ein System.Xml.XmlReader oder
Ein System.ServiceModel.Channels.BodyWriter.
Eine WCF-Nachricht kann mithilfe von bestimmten Methoden oder Konfigurationen verarbeitet werden.
XmlReader durch Aufrufen von Message.GetReaderAtBodyContents(), oder
Ein XmlDictionaryWriter durch Aufrufen von Message.WriteBodyContents(XmlDictionaryWriter).
Die folgende Tabelle zeigt, wie WCF sich für verschiedene Kombinationen zum Erstellen und Verwenden von Nachrichten verhält.
Nachricht erstellt mit | Mit der Nachricht verbrauchtes Element | WCF-Verhalten |
---|---|---|
XmlBodyWriter | XmlDictionaryWriter | Node-Value-Streaming wird unterstützt. WCF rohrt die beiden Autoren zusammen, um Streaming zu ermöglichen. Sowohl der XmlBodyWriter als auch der XmlDictionaryWriter müssen knotenwertbasiertes Streaming unterstützen, damit es eintritt. |
XmlBodyWriter | XmlReader | Das Knotenstreaming wird unterstützt. WCF puffert den XmlReader intern. |
XmlReader | XmlDictionaryWriter | Das Knotenstreaming wird unterstützt. WCF puffert XmlReader intern und greift auf XmlDictionaryWriter zurück. |
XmlReader | XmlReader | Das Knotenstreaming wird unterstützt. WCF puffert den XmlReader intern. |
Streamingunterstützung in der SAP-Clientbibliothek
Die SAP-Clientbibliothek unterstützt kein Streaming. Daher wird das End-to-End-Node-Value-Streaming vom SAP-Adapter nicht unterstützt.
Interne Nachrichtenverarbeitung durch den Adapter
Der Adapter unterstützt streaming auf folgende Weise:
Der Adapter verarbeitet die vom Client empfangene SendIdDoc-Anforderungsnachricht mithilfe einer benutzerdefinierten Implementierung von XmlDictionaryWriter. Es verwendet alle anderen Nachrichten, die vom Client mit einem XmlReader empfangen wurden.
Der Adapter erstellt die ReceiveIdoc-Anforderungsnachricht, die sie mithilfe einer benutzerdefinierten Implementierung von XmlBodyWriter an den Client sendet. Er erstellt alle anderen Nachrichten, die er mithilfe eines XmlReader an den Client sendet.
Streamingunterstützung im WCF-Kanalmodell
Die folgende Tabelle enthält detaillierte Informationen dazu, wie Streaming im WCF-Kanalmodell unterstützt wird.
Vorgang | Node-Streaming | Node-Value Streaming | BESCHREIBUNG |
---|---|---|---|
Ausgehende RFC- und BAPI-Vorgänge (vom Client bis zum Adapter) | Nicht unterstützt | Nicht unterstützt | |
Ausgehende tRFC-Vorgänge (vom Client zum Adapter) | Nicht unterstützt | Nicht unterstützt | |
IDOC-Sendevorgang (stark typiert) | Nicht unterstützt | Nicht unterstützt | |
IDOC-Empfangsvorgang (stark typiert) | Unterstützt | Nicht unterstützt | |
SendIdoc-Vorgang (Zeichenfolge) | Unterstützt | Unterstützt | Der Adapter verwendet einen XmlDictionaryWriter, um die Anforderungsnachricht zu verarbeiten. Wenn der Client die Nachricht mit einem BodyWriter erstellt, tritt ein Knotenwertstreaming vom Client auf den Adapter auf. |
ReceiveIdoc-Vorgang (Zeichenfolge) | Unterstützt | Unterstützt | Der Adapter verwendet einen BodyWriter zum Erstellen der Anforderungsnachricht. Wenn der Client die Nachricht mit einem XmlDictionaryWriter verwendet, findet ein Streaming der Knotendaten vom Adapter zum Client statt. |
Eingehende RFC-Vorgänge | Nicht unterstützt | Nicht unterstützt | |
Eingehende tRFC-Vorgänge | Nicht unterstützt | Nicht unterstützt |
Informationen zum Implementieren von Node-Value-Streaming in Ihrem Code zum Senden und Empfangen von Flat file (string) IDOCs mithilfe der SendIdoc- und ReceiveIdoc-Vorgänge finden Sie unter Stream Flat-File IDOCs in SAP mithilfe des WCF-Kanalmodells.
Streamingunterstützung im WCF-Dienstmodell
Die Serialisierung und Deserialisierung zwischen der XML-Darstellung einer Nachricht und der Objektdarstellung des verwalteten Codes dieser Nachricht erfordert das Schreiben und Lesen der gesamten Nachricht in den Arbeitsspeicher. Aus diesem Grund werden weder Knotenstreaming noch Node-Wert-Streaming vom WCF-Dienstmodell unterstützt.
Streamingunterstützung in BizTalk Server
Die folgende Tabelle enthält detaillierte Informationen dazu, wie Streaming in BizTalk Server unterstützt wird.
Vorgang | Node-Streaming | Node-Value Streaming | BESCHREIBUNG |
---|---|---|---|
RFC- und BAPI-Vorgänge (vom Client zum Adapter) | Nicht unterstützt | Nicht unterstützt | |
tRFC-Vorgänge (vom Client zum Adapter) | Nicht unterstützt | Nicht unterstützt | |
IDOC-Sendevorgang (stark typiert) | Nicht unterstützt | Nicht unterstützt | |
IDOC-Empfangsvorgang (stark typiert) | Unterstützt | Nicht unterstützt | |
SendIdoc-Vorgang (Zeichenfolge) | Unterstützt | Unterstützt | Der WCF-Custom Adapter verwendet einen BodyWriter zum Erstellen der Anforderungsnachricht, sodass das Streaming mit Knotenwerten unterstützt wird. |
ReceiveIdoc-Vorgang (Zeichenfolge) | Unterstützt | Unterstützt | Der WCF-Custom-Adapter verwendet einen XmlDictionaryWriter, um die Anforderungsnachricht zu verarbeiten, wobei das Streaming von Knotenwerten unterstützt wird. |
Eingehende RFC-Vorgänge | Nicht unterstützt | Nicht unterstützt | |
Eingehende tRFC-Vorgänge | Nicht unterstützt | Nicht unterstützt |