Freigeben über


Streaming und der SAP-Adapter

Der Microsoft BizTalk-Adapter für mySAP Business Suite unterstützt das Nachrichtenstreaming zwischen sich selbst und einer Clientanwendung. Mit dem SAP-Adapter werden Vorgänge aufgerufen, und Antworten werden zurückgegeben, indem SOAP-Nachrichten ausgetauscht werden. Ein SOAP-Nachrichtentext besteht aus XML-Knoten.

Es gibt zwei Arten von Nachrichtenstreaming, die vom Adapter unterstützt werden:

  • Knotenstreaming. Beim Knotenstreaming kann eine Nachricht gleichzeitig zwischen dem Client und dem Adapter gestreamt werden. Dies bedeutet, dass der gesamte Wert eines Knotens in einen Puffer eingelesen und dann an den Empfänger gesendet wird.

  • Knotenwertstreaming. Beim Knotenwertstreaming kann der tatsächliche Wert des Knotens in Blöcken zwischen dem Client und dem Adapter gestreamt werden. Das Streaming von Knotenwerten ist nützlich für das Senden oder Empfangen großer IDOCs mithilfe der SendIdoc- oder ReceiveIdoc-Vorgänge. Dies liegt daran, dass das gesamte IDOC in einem einzelnen Knoten enthalten ist. (Im Gegensatz zu einem stark typisierten Sende- oder Empfangsvorgang, bei dem die IDOC-Daten in viele Knoten unterteilt werden.

Wichtig

Das Streaming von Knotenwerten wird nur zwischen dem Adapter und einer Clientanwendung unterstützt. Der SAP-Adapter unterstützt kein End-to-End-Node-Wert-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 für das Knotenstreaming und das Knotenwertstreaming für Nachrichten in WCF. Aus diesem Grund ist das Streaming eng daran gebunden, wie Nachrichten sowohl vom Adapter als auch von einer Clientanwendung erstellt und genutzt werden. Ein Ergebnis davon ist, dass die Unterstützung für das Nachrichtenstreaming nicht für alle Programmiermodelle gleich ist.

Die Abschnitte in diesem Thema enthalten Folgendes:

  • Grundlegende Hintergrundinformationen dazu, wie das 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.

Streaminggrundlagen

Die Unterstützung für das vom SAP-Adapter implementierte Streaming besteht aus folgenden Kombinationen:

  • Unterstützung des Nachrichtenstreamings 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 das 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, die verschiedene Möglichkeiten unterstützen, den Nachrichtentext zu übergeben. Eine WCF-Nachricht kann erstellt werden, indem Sie den Nachrichtentext mit übergeben:

    • Ein System.Xml. XmlReader oder

    • Ein System.ServiceModel.Channels.BodyWriter.

  • Eine WCF-Nachricht kann mit verwendet werden

    • Ein XmlReader durch Aufrufen von Message.GetReaderAtBodyContents() oder

    • Ein XmlDictionaryWriter durch Aufrufen von Message.WriteBodyContents(XmlDictionaryWriter).

    In der folgenden Tabelle wird das Verhalten von WCF für verschiedene Kombinationen des Erstellens und Verwendens von Nachrichten veranschaulicht.

Nachricht erstellt mit Mit verarbeitete Nachricht WCF-Verhalten
XmlBodyWriter XmlDictionaryWriter Das Knotenwertstreaming wird unterstützt. WCF leitet die beiden Writer zusammen, um das Streaming zu ermöglichen. Sowohl der XmlBodyWriter als auch der XmlDictionaryWriter müssen knotenwertbasiertes Streaming unterstützen, damit dies erfolgt.
XmlBodyWriter XmlReader Knotenstreaming wird unterstützt. WCF puffert den XmlReader intern.
XmlReader XmlDictionaryWriter Knotenstreaming wird unterstützt. WCF puffert den XmlReader intern und ruft den XmlDictionaryWriter zurück.
XmlReader XmlReader Knotenstreaming wird unterstützt. WCF puffert den XmlReader intern.

Streamingunterstützung in der SAP-Clientbibliothek

Streaming wird von der SAP-Clientbibliothek nicht unterstützt. Daher wird das Streaming von End-to-End-Knotenwerten vom SAP-Adapter nicht unterstützt.

Interne Nachrichtenverarbeitung durch den Adapter

Der Adapter unterstützt das Streaming auf folgende Weise:

  • Der Adapter nutzt die Vom Client empfangene SendIdDoc-Anforderungsnachricht mithilfe einer benutzerdefinierten Implementierung von XmlDictionaryWriter. Es nutzt alle anderen Nachrichten, die vom Client mit einem XmlReader empfangen werden.

  • Der Adapter erstellt die ReceiveIdoc-Anforderungsnachricht, die er mithilfe einer benutzerdefinierten Implementierung von XmlBodyWriter an den Client sendet. Es erstellt alle anderen Nachrichten, die mit einem XmlReader an den Client gesendet werden.

Streamingunterstützung im WCF-Kanalmodell

Die folgende Tabelle enthält ausführliche Informationen zur Unterstützung des Streamings im WCF-Kanalmodell.

Vorgang Knotenstreaming Node-Value Streaming BESCHREIBUNG
Ausgehende RFC- und BAPI-Vorgänge (vom Client 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 typisiert) Nicht unterstützt Nicht unterstützt
IDOC-Empfangsvorgang (stark typisiert) Unterstützt Nicht unterstützt
SendIdoc-Vorgang (Zeichenfolge) Unterstützt Unterstützt Der Adapter verwendet einen XmlDictionaryWriter , um die Anforderungsnachricht zu nutzen. Wenn der Client die Nachricht mit einem BodyWriter erstellt, erfolgt das Streaming des Knotenwerts vom Client zum Adapter.
ReceiveIdoc-Vorgang (Zeichenfolge) Unterstützt Unterstützt Der Adapter verwendet einen BodyWriter , um die Anforderungsnachricht zu erstellen. Wenn der Client die Nachricht mit einem XmlDictionaryWriter nutzt, erfolgt das Streaming des Knotenwerts vom Adapter zum Client.
Eingehende RFC-Vorgänge Nicht unterstützt Nicht unterstützt
Eingehende tRFC-Vorgänge Nicht unterstützt Nicht unterstützt

Informationen zum Implementieren von Knoten-Wert-Streaming in Ihrem Code zum Senden und Empfangen von Flatfile-IDOCs (Zeichenfolgen) 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

Zum Serialisieren und Deserialisieren zwischen der XML-Darstellung einer Nachricht und der Darstellung des verwalteten Codeobjekts dieser Nachricht muss die gesamte Nachricht geschrieben und in den Arbeitsspeicher gelesen werden. Aus diesem Grund wird weder das Knotenstreaming noch das Knotenwertstreaming aus dem WCF-Dienstmodell unterstützt.

Streamingunterstützung in BizTalk Server

Die folgende Tabelle enthält ausführliche Informationen dazu, wie Streaming in BizTalk Server unterstützt wird.

Vorgang Knotenstreaming 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 typisiert) Nicht unterstützt Nicht unterstützt
IDOC-Empfangsvorgang (stark typisiert) 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 Knotenwertstreaming unterstützt wird.
ReceiveIdoc-Vorgang (Zeichenfolge) Unterstützt Unterstützt Der WCF-Custom-Adapter verwendet einen XmlDictionaryWriter , um die Anforderungsnachricht zu nutzen, sodass das Knotenwertstreaming unterstützt wird.
Eingehende RFC-Vorgänge Nicht unterstützt Nicht unterstützt
Eingehende tRFC-Vorgänge Nicht unterstützt Nicht unterstützt

Weitere Informationen

Entwickeln Ihrer SAP-Anwendungen