Freigeben über


Vorgänge für tRFCs in SAP

Transaktions-RFCs (tRFCs) sind RFCs, die als Teil einer logischen Arbeitseinheit (LUW) aufgerufen werden. Auf einem SAP-System enthält eine LUW alle schritte, die zum Ausführen einer Geschäfts- oder Programmieraufgabe erforderlich sind. Ein tRFC stellt eine Möglichkeit zum Aufrufen eines RFC dar. es ist kein eindeutiges SAP-Artefakt.

Sie können den Microsoft BizTalk-Adapter für mySAP Business Suite sowohl als tRFC-Client als auch als tRFC-Server verwenden.

  • Als tRFC-Client ermöglicht der Adapter Ihrer Anwendung das Aufrufen eines einzelnen RFC in einer LUW im SAP-System. Dies garantiert eine einmalige Ausführung des RFC. Dies impliziert kein Transaktionsverhalten.

  • Als tRFC-Server ermöglicht der Adapter den Empfang mehrerer RFCs innerhalb einer LUW. Der Adapter unterstützt eingehende tRFC-Aufrufe in einem Transaktionskontext. das Commit- und Rollbackverhalten unterstützt wird.

tRFC-Vorgänge

Ein tRFC impliziert eine Möglichkeit, einen RFC zu aufrufen. Es handelt sich nicht um ein separates SAP-Artefakt. Daher wird jeder RFC auf dem SAP-System (für das der Adapter Metadaten abrufen kann) vom SAP-Adapter auch als tRFC angezeigt. tRFCs werden durch RFC-Namen als Vorgänge unter dem TrFC-Metadatenkategorieknoten angezeigt. (Sie können unter dem TRFC-Knoten nach tRFCs suchen, wenn Sie das Add Adapter Service Reference Plug-In oder das Add-In Consume Adapter Service Service verwenden.)

Der SAP-Adapter unterstützt Folgendes auf tRFCs:

  • IMPORTparameter

  • CHANGING-Parameter (nur die Eingabeseite des CHANGING-Parameters wird unterstützt)

Hinweis

tRFCs werden asynchron ausgeführt, sodass keine Ausgabewerte (EXPORT- oder CHANGING-Parameter) für sie zurückgegeben werden.

Ein GUID-Parameter wird vom Adapter für tRFC-Vorgänge angezeigt. Diese GUID wird vom Adapter der SAP-Transaktions-ID (TID) zugeordnet, die dem tRFC zugeordnet ist. Sie können diesen GUID-Parameter für Folgendes verwenden:

  • Bestätigen Sie die tRFC auf dem SAP-System in tRFC-Clientaufrufen. Hierzu wird der RfcConfirmTransId-Vorgang aufgerufen. Dies ist ein spezieller Vorgang, der vom Adapter aufgetaucht ist, um eine TID im SAP-System zu bestätigen.

  • Rufen Sie die tatsächliche SAP-TID ab, die für einen tRFC-Wert in tRFC-Client- und tRFC-Serverszenarien vom Adapter verwendet wird. Hierzu verwenden Sie die SAP-Hilfsprogrammmethode ConvertGuidToTid.

    Weitere Informationen zu diesen Vorgängen finden Sie unter Spezielle Vorgänge. Weitere Informationen zu den Nachrichtenstrukturen und SOAP-Aktionen, die vom Adapter für tRFCs verwendet werden, finden Sie unter Nachrichtenschemas für tRFC-Vorgänge.

Aufrufen von Transaktions-RFCs in einem SAP-System

In der Regel werden tRFCs verwendet, um einen oder mehrere RFC-Aufrufe innerhalb einer einzelnen LUW auszuführen. Aufgrund von Einschränkungen im SAP RFC SDK unterstützt der SAP-Adapter jedoch nur einen einzelnen tRFC pro LUW. Aus diesem Grund erstellt der Adapter eine LUW (SAP TID) für jede tRFC. Für solche Clients definiert SAP eine LUW als Mechanismus, um die einmalige Ausführung des RFC zu gewährleisten, und impliziert keine Commit- und Rollback-basierten Transaktionen.

In den folgenden Schritten werden die Aufgaben zusammengefasst, die in einem RFC-Clientaufruf mithilfe des SAP-Adapters ausgeführt werden. Einige dieser Schritte werden vom Adapterclient ausgeführt, andere vom Adapter.

  1. Der Adapterclient sendet eine Anforderungsnachricht für den tRFC-Vorgang. Der Adapterclient kann optional eine GUID in dieser Meldung bereitstellen.

  2. Der SAP-Adapter empfängt die Anforderungsnachricht und verwendet das RFC SDK, um eine Transaktions-ID (TID) aus dem SAP-System abzurufen. Wenn die Anforderungsnachricht eine GUID enthält, ordnet der Adapter diese GUID der SAP-TID zu. Andernfalls erstellt der Adapter eine neue GUID und ordnet sie der SAP TID zu.

  3. Der Adapter verwendet die TID, um den tRFC-Aufruf an den SAP-Server zu tätigen. Die status der TID wird im SAP-System als ABGESCHLOSSEN gekennzeichnet.

  4. Der Adapter gibt die GUID (die der TID zugeordnet ist) in der Antwortnachricht an den Adapterclient zurück.

  5. Der Adapterclient ruft den RfcConfirmTransID-Vorgang auf dem Adapter auf, wobei die GUID im vorherigen Schritt zurückgegeben wurde.

  6. Der Adapter verwendet die GUID in der RfcConfirmTransID-Anforderungsnachricht, um die SAP-TID zu identifizieren und den tRFC-Aufruf im SAP-System zu bestätigen. Dadurch löscht der SAP-Server den TID-Eintrag aus seiner Datenbank.

Hinweis

tRFC-Clientaufrufe geben keine EXPORT- oder CHANGING-Parameter zurück.

Weitere Informationen:

Empfangen eingehender transaktionsseitiger RFC-Aufrufe von einem SAP-System

Sie können den Adapter als tRFC-Server verwenden, um tRFCs von SAP zu empfangen. Wenn der Adapter als tRFC-Server einen tRFC empfängt, ruft er den entsprechenden tRFC-Vorgang für Ihre Anwendung auf. Der Adapter unterstützt die folgenden Funktionen, wenn er als tRFC-Server fungiert:

Die TID-Datenbank

Wenn er als tRFC-Server fungiert, verwendet der Adapter eine SQL Server Datenbank – die TID-Datenbank –, um die Transaktions-IDs zu verwalten, die er vom SAP-System empfängt. Beispielsweise wird die TID-Datenbank verwendet, um Aufrufe des SAP-Systems zum Commit, Rollback und Bestätigen der TID zu verwalten. Der Adapter speichert auch die GUID, die er erstellt und jeder SAP TID in der TID-Datenbank ordnet.

Voraussetzungen

Damit der Adapter als tRFC-Server ausgeführt werden kann, müssen Sie sicherstellen, dass Folgendes zutrifft:

  • Der RFC muss im SAP-System deklariert werden. Dadurch kann der Adapter Metadaten abrufen, die den RFC beschreiben, aus dem SAP-System. Der RFC wird tatsächlich in Ihrer Anwendung implementiert.

  • Der Adapter muss sich bei einem RFC-Ziel auf einem SAP-Gateway registrieren. Die Registrierung basiert auf einem logischen Namen namens Programm-ID. Sie geben Parameter im Verbindungs-URI an, um die Programm-ID, das SAP-Gateway und den SAP-Server für diese Registrierung anzugeben.

  • Die TID-Datenbank muss in SQL Server erstellt werden. Dazu müssen Sie ein SQL-Skript ausführen, das vom Setup installiert wird. Das SQL-Skript wird normalerweise unter <Installationslaufwerk>:\Programme\Microsoft BizTalk Adapter Pack installiert. Weitere Informationen finden Sie unter Installieren des BizTalk-Adapterpakets.

  • Die TidDatabaseConnectionString-Bindungseigenschaft muss auf die SQL-Datenbank festgelegt werden, die für die TID-Datenbank Verbindungszeichenfolge. Weitere Informationen zur Bindungseigenschaft TidDatabaseConnectionString finden Sie unter Informationen zum BizTalk-Adapter für mySAP Business Suite-Bindungseigenschaften.

Hinweis

Durch Festlegen der TidDatabaseConnectionString-Bindungseigenschaft wird der Adapter so konfiguriert, dass er als tRFC-Server und nicht als RFC-Server fungiert. Wenn die Bindungseigenschaft TidDatabaseConnectionString festgelegt ist und Sie ein RFC-Ziel im Verbindungs-URI angeben, fungiert der Adapter als tRFC-Server für eingehende Aufrufe vom RFC-Ziel. Wenn diese Bindungseigenschaft nicht festgelegt ist, fungiert der Adapter als RFC-Server.

Verarbeitung eingehender tRFCs durch den Adapter

In den folgenden Schritten werden die Aufgaben zusammengefasst, die vom RFC-Clientaufruf mithilfe des SAP-Adapters ausgeführt werden. Einige dieser Schritte werden vom Adapterclient ausgeführt, andere vom Adapter.

  1. Das SAP-System ruft den Adapter auf, um zu erfragn, ob bereits eine TID verwendet wurde. Der Adapter gibt die entsprechende Antwort an das SAP-System zurück. Wenn die TID neu ist, erstellt der Adapter eine commitfähige Transaktion. Diese Transaktion wird verwendet, um die TID in der TID-Datenbank transaktional zu speichern, wenn das SAP-Programm einen Commit (COMMIT WORK) ausführt. Es wird auch für Anwendungscode verfügbar gemacht, der die eingehenden tRFCs verarbeitet. Darüber hinaus erstellt der Adapter eine GUID, die er der SAP-TID ordnet.

  2. Das SAP-System sendet einen oder mehrere Transaktions-RFCs an den Adapter. Für jede tRFC ruft der Adapter den entsprechenden tRFC-Vorgang für Ihre Anwendung auf. Der Adapter fließt die in Schritt 1 erstellte Transaktion für jeden Vorgang an Ihre Anwendung. Der Adapter übergibt die GUID, die in Schritt 1 in der Anforderungsmeldung für den Vorgang erstellt wurde.

  3. Das SAP-System committ die LUW (COMMIT WORK). Der Adapter versucht, die Transaktion zu committen, die der SAP-TID zugeordnet ist (erstellt in Schritt 1).

    1. Wenn die Transaktion (von Ihrer Anwendung) während eines der Aufrufe in Schritt 2 abgebrochen wurde, tritt ein Fehler auf, wenn der Adapter versucht, die Transaktion zu committen. Der Fehler wird an SAP zurückgegeben. Fahren Sie mit Schritt 4 fort.

    2. Wenn der Commit erfolgreich ist, befindet sich die TID jetzt in der TID-Datenbank. Fahren Sie mit Schritt 5 fort.

  4. Wenn in Schritt 3 ein Fehler aufgetreten ist oder wenn SAP ein Rollback für die LUW (RESTART_OF_BACKGROUNDTASK) anstelle des Commits ausführt, führt der Adapter ein Rollback für die Transaktion aus. In diesem Fall wird die TID nie in der TID-Datenbank beibehalten.

  5. Das SAP-System bestätigt die TID. Der Adapter entfernt die TID aus der TID-Datenbank (vorausgesetzt, dass Schritt 3 erfolgreich abgeschlossen wurde und die TID in der TID-Datenbank vorhanden ist).

Hinweis

Wenn während eines tRFC-Servervorgangs ein Fehler auftritt, der versucht, eine Verbindung mit der TID-Datenbank herzustellen, wird ein Fehlercode, der angibt, dass der eingehende Aufruf von SAP nicht vom SAP-Adapter verarbeitet wurde, an SAP zurückgegeben.

Empfangen von IDOCs als tRFC-Server

Sie verwenden den SAP-Adapter entweder als RFC-Server oder als tRFC-Server, um IDOCs vom SAP-System zu empfangen. In beiden Fällen müssen Sie die ReceiveIdocFormat-Bindungseigenschaft festlegen, um das Format anzugeben, in dem der Adapter die IDOC-Daten an Ihre Anwendung ausgeben soll. Weitere Informationen zum Empfangen von IDOCs mit dem Adapter finden Sie unter Vorgänge auf IDOCs in SAP. Weitere Informationen zu den Eigenschaften der SAP-Adapterbindung finden Sie unter Informationen zu Den Bindungseigenschaften des BizTalk-Adapters für mySAP Business Suite.

Spezielle tRFC-Vorgänge

Der SAP-Adapter kann auch bestimmte spezielle tRFC-Vorgänge im SAP-System ausführen. Ein solcher Vorgang ist RfcConfirmTransID.

  • RfcConfirmTransID. Sie rufen diesen Vorgang auf dem SAP-Adapter auf, um tRFC-Aufrufe an den SAP-Server zu bestätigen. RfcConfirmTransID ist möglicherweise in Szenarien erforderlich, in denen der Adapter verwendet wird, um IDOCs als tRFC an den SAP-Server zu senden. Der Vorgang ist unter dem TRFC-Knoten verfügbar, wenn sie das Add-In Adapter Service Reference Plug-In und Consume Adapter Service Add-In verwenden.

    Weitere Informationen zur Nachrichtenstruktur und soap-Aktion für den RfcConfirmTransID-Vorgang finden Sie unter Nachrichtenschemas für tRFC-Vorgänge.

Weitere Informationen

Herstellen einer Verbindung mit einem SAP-System mithilfe des Adapters