Freigeben über


Aufrufen von tRFCs in SAP mithilfe von BizTalk Server

Transaktionale Remotefunktionsaufrufe (tRFCs) garantieren eine einmalige Ausführung eines RFC auf einem SAP-System. Sie können alle vom SAP-Adapter angezeigten RFCs als tRFC aufrufen. Das Aufrufen eines tRFC ähnelt dem Aufrufen eines RFC (siehe Aufrufen von RFCs in SAP mithilfe von BizTalk Server) mit den folgenden Unterschieden:

  • Der SAP-Adapter zeigt tRFCs unter einem anderen Knoten (TRFC) als RFCs (RFC) an.

  • tRFC-Vorgänge enthalten einen GUID-Parameter, der vom SAP-Adapter der SAP-Transaktions-ID für den tRFC zugeordnet wird.

  • Nachdem Sie einen tRFC aufgerufen haben, müssen Sie den RfcConfirmTransID-Vorgang aufrufen, um den tRFC im SAP-System zu bestätigen (committen). Dieser Vorgang wird direkt unter dem TRFC-Knoten unter Nutzung des Adapterdienst-Add-Ins angezeigt.

    Weitere Informationen dazu, wie der SAP-Adapter das Aufrufen eines tRFC unterstützt, finden Sie unter Vorgänge für tRFCs in SAP. Weitere Informationen zur Struktur von SOAP-Nachrichten zum Aufrufen eines tRFC finden Sie unter Nachrichtenschemas für tRFC-Vorgänge.

Aufrufen eines tRFC in einem SAP-System mithilfe von BizTalk Server

Das Ausführen eines Vorgangs auf einem SAP-System mit BizTalk Server umfasst prozedurale Aufgaben, die unter Bausteine zum Erstellen von SAP-Anwendungen beschrieben sind. Um einen tRFC in einem SAP-System aufzurufen, lauten die folgenden Aufgaben:

  1. Erstellen Sie ein BizTalk-Projekt, und generieren Sie ein Schema für den tRFC, den Sie im SAP-System aufrufen möchten. Sie müssen auch ein Schema für den RfcConfirmTransID-Vorgang generieren, um die TID im SAP-System zu committen.

  2. Erstellen Sie Nachrichten im BizTalk-Projekt zum Senden und Empfangen von Nachrichten aus dem SAP-System.

  3. Erstellen Sie eine Orchestrierung, um einen tRFC im SAP-System aufzurufen, und committen Sie dann die TID, die im SAP-System als Reaktion auf den tRFC-Aufruf des SAP-Adapters erstellt wird.

  4. Erstellen sie das BizTalk-Projekt, und stellen Sie es bereit.

  5. Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.

  6. Starten Sie die BizTalk-Anwendung.

    Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.

Beispiel basierend auf diesem Thema

Ein Beispiel, tRFCClient, basierend auf diesem Thema wird auch mit dem BizTalk-Adapterpaket bereitgestellt. Weitere Informationen finden Sie unter Beispiele für den SAP-Adapter.

Generieren eines Schemas

In diesem Thema wird das Schema für Folgendes generiert, um zu veranschaulichen, wie ein tRFC mithilfe des SAP-Adapters aufgerufen wird:

Definieren von Nachrichten und Nachrichtentypen

Das Schema, das Sie zuvor generiert haben, beschreibt die "Typen", die für die Nachrichten in der Orchestrierung erforderlich sind. Eine Nachricht ist in der Regel eine Variable, deren Typ durch das entsprechende Schema definiert wird. Sie müssen das von Ihnen generierte Schema mit den Nachrichten aus der Orchestrierungsansicht des BizTalk-Projekts verknüpfen.

Für dieses Thema müssen Sie vier Nachrichten erstellen: eine Anforderungs-Antwort-Nachricht, die zum Aufrufen des tRFC festgelegt ist, und eine weitere Anforderung-Antwort-Nachricht, die festgelegt ist, um den RfcConfirmTransID-Vorgang aufzurufen.

Führen Sie die folgenden Schritte aus, um Nachrichten zu erstellen und mit dem Schema zu verknüpfen.

  1. Öffnen Sie die Orchestrierungsansicht des BizTalk-Projekts, falls noch nicht geöffnet. Klicken Sie auf Ansicht, zeigen Sie auf Andere Fenster, und klicken Sie auf Orchestrierungsansicht.

  2. Klicken Sie in der Orchestrierungsansicht mit der rechten Maustaste auf Nachrichten, und klicken Sie dann auf Neue Nachricht.

  3. Klicken Sie mit der rechten Maustaste auf die neu erstellte Nachricht, und wählen Sie Eigenschaftenfenster aus.

  4. Gehen Sie im Bereich Eigenschaften für Message_1 wie folgt vor.

    Option Aufgabe
    Bezeichner Geben Sie Request ein.
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie den Nachrichtentyp aus. Wählen Sie beispielsweise tRFC_Client.SAPBindingSchema1.BAPI_SALESORDER_CREATEFROMDAT2 aus, wobei tRFC_Client der Name Ihres BizTalk-Projekts ist. SAPBindingSchema1 ist das Schema, das für BAPI_SALESORDER_CREATEFROMDAT2 generiert wird.
  5. Wiederholen Sie den vorherigen Schritt, um drei weitere Nachrichten zu erstellen. Gehen Sie im Bereich Eigenschaften für die neuen Nachrichten wie folgt vor.

    Festlegen des Bezeichners auf Festlegen des Nachrichtentyps auf
    Antwort tRFC_Client.SAPBindingSchema1.BAPI_SALESORDER_CREATEFROMDAT2Response
    TIDRequest tRFC_Client.SAPBindingSchema3.RfcConfirmTransID
    TIDResponse tRFC_Client.SAPBindingSchema3.RfcConfirmTransIDResponse

Einrichten der Orchestrierung

Sie müssen eine BizTalk-Orchestrierung erstellen, um BizTalk Server zum Aufrufen von tRFCs in einem SAP-System zu verwenden. Bei dieser Orchestrierung löschen Sie eine Anforderungsnachricht an einem definierten Empfangsspeicherort. Die Orchestrierung nutzt diese Nachricht und übergibt sie an das SAP-System. Die Antwort wird von SAP empfangen und an einem anderen Speicherort gespeichert. Die Antwortnachricht enthält eine GUID. Die Orchestrierung enthält ein Shape "Nachricht erstellen ", um die GUID aus der Antwort zu extrahieren und eine Nachricht zu erstellen, die dem Schema des RfcConfirmTransID-Vorgangs entspricht. Die Meldung zum Aufrufen des RfcConfirmTransID-Vorgangs wird mit der GUID als Parameter an das SAP-System gesendet . Eine typische Orchestrierung zum Aufrufen von tRFCs in einem SAP-System, gefolgt von einem RfcConfirmTransID-Vorgang , enthält Folgendes:

  • Senden und Empfangen von Shapes, um Nachrichten an das SAP-System zu senden und Antworten zu empfangen.

  • Ein Shape zum Erstellen von Nachrichten und darin ein Nachrichtenzuweisungs-Shape zum Erstellen einer Nachricht für den RfcConfirmTransID-Vorgang .

  • Ein unidirektionales Empfangsport zum Empfangen von Anforderungsnachrichten, die an das SAP-System gesendet werden, um den tRFC aufzurufen.

  • Ein bidirektionales Sendeport zum Senden von Nachrichten, um den tRFC aufzurufen und die Antwort zu empfangen.

  • Ein bidirektionales Sendeport zum Senden von Nachrichten, um den RfcConfirmTransID-Vorgang aufzurufen und eine Antwort zu empfangen.

  • Zwei unidirektionale Sendeports, um die Antworten aus dem SAP-System an einen Ordner zu senden.

    Eine Beispielorchestrierung sieht wie folgt aus:

    Orchestrierung zum Ausführen eines tRFC-Clientaufrufs

Hinzufügen von Nachrichten-Shapes

Geben Sie die folgenden Eigenschaften für die einzelnen Nachrichtenformen an. Die in der Spalte Shape aufgeführten Namen sind die Namen der Meldungs-Shapes, wie in der vorherigen Orchestrierung angezeigt.

Form Shape-Typ Eigenschaften
ReceiveXml Empfangen – Legen Sie Name auf ReceiveXml fest.
– Legen Sie Activate auf True fest.
SendToLOB Send Name aufSendToLOB festlegen
ReceiveResponse Empfangen Name aufReceiveResponse festlegen
– Legen Sie Activate auf False fest.
SendResponse Send – Legen Sie Name auf SendResponse fest.
SendTIDMsg Send Name aufSendTIDMsg festlegen
ReceiveTIDRsp Empfangen Name aufReceiveTIDRsp festlegen
– Legen Sie Activate auf False fest.
SendTIDRsp Send – Legen Sie Name auf SendTIDRsp fest.

Hinzufügen des Konstrukt-Nachrichten-Shapes

Die Antwort des SAP-Systems für den tRFC-Aufruf enthält eine GUID. Um den tRFC-Aufruf zu committen, müssen Sie dieselbe GUID an den RfcConfirmTransID-Vorgang übergeben. Dazu müssen Sie ein Shape Zum Erstellen von Nachrichten und darin ein Nachrichtenzuweisungs-Shape in die Orchestrierung einschließen. Hier ist der Zweck der Form Nachricht konstruktieren:

  • So extrahieren Sie die GUID aus der Antwort, die vom SAP-System für den tRFC-Aufruf empfangen wird.

  • So erstellen Sie eine Nachricht, die dem Nachrichtenschema für den RfcConfirmTransID-Vorgang entspricht.

    Für das Shape Nachricht konstruktieren müssen Sie die Eigenschaft Message Constructed auf TIDRequest festlegen.

    Sie müssen dem Shape Nachrichtenzuweisung den folgenden Codeauszug hinzufügen:

XmlDoc = new System.Xml.XmlDocument();  
XmlDoc.LoadXml("<RfcConfirmTransID xmlns='http://Microsoft.LobServices.Sap/2007/03/RfcApi/'><TransactionalRfcOperationIdentifier /></RfcConfirmTransID>");  
TIDRequest = XmlDoc;  
TIDRequest.TransactionalRfcOperationIdentifier = xpath(Response,"string(/*[local-name()='BAPI_SALESORDER_CREATEFROMDAT2Response']/*[local-name()='TransactionalRfcOperationIdentifier']/text())");  

Um den obigen Codeauszug verwenden zu können, benötigen Sie Folgendes:

  • Sie haben die Variable XmlDoc in Ihrem BizTalk-Projekt erstellt, und legen Sie ihren Typ auf System.Xml fest. Xmldocument. Weitere Informationen zum Erstellen von Variablen finden Sie unter Verwenden von Variablen in Orchestrierungen.

  • Die TransactionalRfcOperationIdentifier-Eigenschaft im Schema für den RfcConfirmTransID-Vorgang wurde höhergestuft. Weitere Informationen zum Höherstufen einer Eigenschaft finden Sie unter Höherstufen von Eigenschaften.

Hinzufügen von Ports

Stellen Sie sicher, dass Sie die folgenden Eigenschaften für jeden der logischen Ports angeben. Die in der Spalte Port aufgeführten Namen sind die Namen der Ports, wie in der Orchestrierung angezeigt.

Port Eigenschaften
FileIn Bezeichner auf FileIn festlegen
– Legen Sie Type auf FileInPortType fest.
– Festlegen des Kommunikationsmusters auf Unidirektionale
– Festlegen der Kommunikationsrichtung auf "Empfangen"
tRFC_Port Bezeichner auf tRFC_Port festlegen
– Legen Sie Type auf tRFC_PortType fest.
– Festlegen des Kommunikationsmusters auf Request-Response
– Festlegen der Kommunikationsrichtung auf Senden/Empfangen
SavetRFCResponse – Legen Sie Bezeichner auf SavetRFCResponse fest.
– Legen Sie Type auf SavetRFCResponsePortType fest.
– Festlegen des Kommunikationsmusters auf Unidirektionale
Kommunikationsrichtung auf Senden festlegen
TID_Port Bezeichner auf TID_Port festlegen
– Legen Sie Type auf TIDPortType fest.
– Festlegen des Kommunikationsmusters auf Request-Response
– Festlegen der Kommunikationsrichtung auf Senden/Empfangen
SaveTIDResponse – Legen Sie Bezeichner auf SaveTIDResponse fest.
– Legen Sie Type auf SaveTIDResponsePortType fest.
– Festlegen des Kommunikationsmusters auf Unidirektionale
Kommunikationsrichtung auf Senden festlegen

Angeben von Nachrichten für Aktions-Shapes und Herstellen einer Verbindung mit Ports

In der folgenden Tabelle sind die Eigenschaften und deren Werte angegeben, die festgelegt werden sollen, um Meldungen für Aktions-Shapes anzugeben und sie mit den Ports zu verknüpfen. Die in der Spalte Shape aufgeführten Namen sind die Namen der Meldungs-Shapes, wie in der vorherigen Orchestrierung angezeigt.

Form Eigenschaften
ReceiveXml Nachricht aufAnforderung festlegen
– Legen Sie Operation auf FileIn.tRFC.Request fest.
SendToLOB Nachricht aufAnforderung festlegen
– Festlegen von Operation auf tRFC_Port.tRFC.Request
ReceiveResponse Nachricht aufAntwort festlegen
– Legen Sie Operation auf tRFC_Port.tRFC.Response fest.
SendResponse Nachricht aufAntwort festlegen
– Legen Sie Operation auf SavetRFCResponse.tRFC.Request fest.
SendTIDMsg – Festlegen von Message auf TIDRequest
– Festlegen von Operation auf TID_Port.TID.Request
ReceiveTIDRsp – Festlegen von Message auf TIDResponse
– Festlegen von Operation auf TID_Port.TID.Response
SendTIDRsp – Festlegen von Message auf TIDResponse
– Legen Sie Operation auf SaveTIDResponse.TID.Request fest.

Nachdem Sie diese Eigenschaften angegeben haben, werden die Nachrichtenformen und Ports verbunden, und Die Orchestrierung ist abgeschlossen.

Sie müssen nun die BizTalk-Lösung erstellen und dann in einem BizTalk Server bereitstellen. Weitere Informationen finden Sie unter Erstellen und Ausführen von Orchestrierungen.

Konfigurieren der BizTalk-Anwendung

Nachdem Sie das BizTalk-Projekt bereitgestellt haben, wird die zuvor erstellte Orchestrierung in der BizTalk Server Verwaltungskonsole im Bereich Orchestrierungen aufgeführt. Sie müssen die BizTalk Server-Verwaltungskonsole verwenden, um die Anwendung zu konfigurieren. Weitere Informationen zum Konfigurieren einer Anwendung finden Sie unter Konfigurieren einer Anwendung.

Das Konfigurieren einer Anwendung umfasst Folgendes:

  • Auswählen eines Hosts für die Anwendung.

  • Zuordnen der Ports, die Sie in Ihrer Orchestrierung erstellt haben, zu physischen Ports in der BizTalk Server-Verwaltungskonsole. Für diese Orchestrierung müssen Sie:

    • Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem Sie eine Anforderungsnachricht ablegen. Die BizTalk-Orchestrierung nutzt die Anforderungsnachricht, um sie an das SAP-System zu senden.

    • Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Antwortnachricht mit der Antwort aus dem SAP-System abgibt.

    • Definieren Sie physische WCF-Custom oder WCF-SAP-Sendeports (jeweils einen für die tRFC-Anforderungsnachricht und die RfcConfirmTransID-Nachricht), um Nachrichten an das SAP-System zu senden. Sie müssen die Aktion auch im Sendeport angeben. Informationen zum Erstellen von Ports finden Sie unter Manuelles Konfigurieren einer physischen Portbindung an den SAP-Adapter.

      Hinweis

      Beim Generieren des Schemas mithilfe des BizTalk-Projekt-Add-Ins "Consume Adapter Service" wird auch eine Bindungsdatei erstellt, die Informationen zu den Ports und den aktionen enthält, die für diese Ports festgelegt werden sollen. Sie können diese Bindungsdatei aus der BizTalk Server-Verwaltungskonsole importieren, um Sendeports (für ausgehende Anrufe) oder Empfangsports (für eingehende Anrufe) zu erstellen. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für SAP.

Starten der Anwendung

Sie müssen die BizTalk-Anwendung zum Aufrufen von tRFCs in einem SAP-System starten. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter Starten einer Orchestrierung oder Starten einer Anwendung.

Stellen Sie in dieser Phase Folgendes sicher:

  • Der FILE-Empfangsport zum Empfangen von Anforderungsmeldungen für die Orchestrierung wird ausgeführt.

  • Der FILE-Sendeport zum Empfangen der Antwortnachrichten von der Orchestrierung wird ausgeführt.

  • Die WCF-Custom- oder WCF-SAP-Sendeports zum Senden von Nachrichten an das SAP-System werden ausgeführt.

  • Die BizTalk-Orchestrierung für den Vorgang wird ausgeführt.

Ausführen des Vorgangs

Nachdem Sie die Anwendung ausgeführt haben, müssen Sie eine Anforderungsmeldung für die Orchestrierung ablegen. Informationen zum Schema für die Anforderungsnachricht zum Aufrufen eines tRFC in einem SAP-System finden Sie unter Nachrichtenschemas für tRFC-Vorgänge . Beispielsweise lautet die Anforderungsmeldung zum Aufrufen BAPI_SALEASORDER_CREATEFROMDAT2 als tRFC:

<BAPI_SALESORDER_CREATEFROMDAT2 xmlns="http://Microsoft.LobServices.Sap/2007/03/Trfc/">  
  <ORDER_HEADER_IN>  
    <DOC_TYPE xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">TA</DOC_TYPE>  
    <SALES_ORG xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">1000</SALES_ORG>  
    <DISTR_CHAN xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">10</DISTR_CHAN>  
    <DIVISION xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">00</DIVISION>  
    <SALES_OFF xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">1000</SALES_OFF>  
    <REQ_DATE_H xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">2006-09-01T23:50:00</REQ_DATE_H>  
    <PURCH_DATE xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">2006-08-25T23:50:00</PURCH_DATE>  
    <PURCH_NO_C xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">Cust PO</PURCH_NO_C>  
    <CURRENCY xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">EUR</CURRENCY>  
  </ORDER_HEADER_IN>  
  <ORDER_ITEMS_IN>  
    <BAPISDITM xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
      <MATERIAL>P-109</MATERIAL>  
      <PLANT>1000</PLANT>  
      <TARGET_QU>ST</TARGET_QU>  
    </BAPISDITM>  
  </ORDER_ITEMS_IN>  
  <ORDER_PARTNERS>  
    <BAPIPARNR xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
      <PARTN_ROLE>AG</PARTN_ROLE>  
      <PARTN_NUMB>0000001390</PARTN_NUMB>  
    </BAPIPARNR>  
  </ORDER_PARTNERS>  
  <RETURN/>  
  <TransactionalRfcOperationIdentifier>def689b1-b514-4627-a861-d6d7f51c84e3</TransactionalRfcOperationIdentifier>  
</BAPI_SALESORDER_CREATEFROMDAT2>  

Die Orchestrierung nutzt die Nachricht, übergibt sie an das SAP-System und empfängt eine Antwort vom SAP-System. Die Antwortnachricht wird an dem anderen Dateispeicherort gespeichert, der als Teil der Orchestrierung angegeben ist. Die Antwort des SAP-Systems enthält eine GUID. Die Orchestrierung generiert dann eine weitere Anforderungsnachricht aus der Antwort und übergibt sie an das SAP-System, um rfcConfirmTransID auszuführen. Nachdem die Antwort vom SAP-System für den RfcConfirmTransID-Vorgang empfangen wurde, wird sie in den Dateispeicherort kopiert. Kurz gesagt, nachdem der Vorgang erfolgreich ausgeführt wurde:

  • Eine Antwortnachricht von SAP zum Aufrufen des tRFC wird in den Dateispeicherort kopiert. Diese enthält dieselbe GUID, die an das SAP-System gesendet wurde. Die Antwortnachricht, die BAPI_SALESORDER_CREATEFROMDAT2 als tRFC aufruft, lautet:

    <?xml version="1.0" encoding="utf-8"?>  
    <BAPI_SALESORDER_CREATEFROMDAT2Response xmlns="http://Microsoft.LobServices.Sap/2007/03/Trfc/">  
      <TransactionalRfcOperationIdentifier>def689b1-b514-4627-a861-d6d7f51c84e3</TransactionalRfcOperationIdentifier>  
    </BAPI_SALESORDER_CREATEFROMDAT2Response>  
    
  • Eine Antwortnachricht für rfcConfirmTransID wird an denselben Speicherort kopiert. Dies ist eine leere Antwort. Die Antwortnachricht für rfcConfirmTransID lautet:

    <?xml version="1.0" encoding="utf-8"?>  
    <RfcConfirmTransIDResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/RfcApi/"></RfcConfirmTransIDResponse>  
    

Hinweis

Sie können die öffentliche ConvertGuidToTid() -Methode verwenden, die von der SAP-Adapterassembly verfügbar gemacht wird, um die TID im SAP-System abzurufen, das der GUID zugeordnet ist. Weitere Informationen finden Sie unter Spezielle Vorgänge.

Mögliche Ausnahmen

Informationen zu den Ausnahmen, die beim Aufrufen eines tRFC in einem SAP-System mit BizTalk Server auftreten können, finden Sie unter Ausnahmen und Fehlerbehandlung mit dem SAP-Adapter.

Bewährte Methoden

Nachdem Sie das BizTalk-Projekt bereitgestellt und konfiguriert haben, können Sie Konfigurationseinstellungen in eine XML-Datei exportieren, die als Bindungsdatei bezeichnet wird. Nachdem Sie eine Bindungsdatei generiert haben, können Sie die Konfigurationseinstellungen aus der Datei importieren, sodass Sie die Sendeports, Empfangsports usw. für dieselbe Orchestrierung nicht erstellen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von SAP-Adapterbindungen.

Weitere Informationen

Entwickeln von BizTalk-Anwendungen