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.
Transactional Remote Function Calls (tRFCs) garantieren eine einmalige und nur einmalige Ausführung eines RFC auf einem SAP-System. Sie können alle RFCs aufrufen, die vom SAP-Adapter als tRFC angezeigt werden. 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 der SAP-Transaktions-ID für den tRFC vom SAP-Adapter zugeordnet ist.
Nachdem Sie einen tRFC aufgerufen haben, müssen Sie den RfcConfirmTransID-Vorgang aufrufen, um den tRFC im SAP-System zu bestätigen (commit). Dieser Vorgang wird direkt unter dem TRFC-Knoten im Add-In "Adapterdienst verbrauchen" angezeigt.
Weitere Informationen dazu, wie der SAP-Adapter das Aufrufen eines tRFC unterstützt, finden Sie unter Operations on tRFCs in SAP. Weitere Informationen zur Struktur von SOAP-Nachrichten zum Aufrufen eines tRFC finden Sie unter Message Schemas for tRFC Operations.
Wie rufen Sie einen tRFC in einem SAP-System mit BizTalk Server auf?
Das Ausführen eines Vorgangs auf einem SAP-System mit BizTalk Server umfasst Verfahrensaufgaben, die in Bausteinen zum Erstellen von SAP-Anwendungen beschrieben werden. Um ein tRFC in einem SAP-System aufzurufen, sind folgende Schritte erforderlich:
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 übernehmen.
Erstellen Sie Nachrichten im BizTalk-Projekt zum Senden und Empfangen von Nachrichten aus dem SAP-System.
Erstellen Sie eine Orchestrierung, um einen tRFC im SAP-System aufzurufen, und übernehmen Sie dann die im SAP-System erstellte TID als Reaktion auf den tRFC-Aufruf des SAP-Adapters.
Erstellen und Bereitstellen des BizTalk-Projekts.
Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.
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 Adapter Pack bereitgestellt. Weitere Informationen finden Sie unter Beispiele für den SAP-Adapter.
Generieren des Schemas
In diesem Thema demonstrieren wir, wie ein tRFC mit dem SAP-Adapter aufgerufen wird und das Schema dafür generiert wird:
BAPI_SALESORDER_CREATEFROMDAT2 tRFC.
RfcConfirmTransID-Vorgang. Sie müssen diesen Vorgang verwenden, um die im SAP-System erstellte TID zu übernehmen. Sobald das SAP-System diesen Aufruf erhält, löscht es die TID aus dem System.
Weitere Informationen zum Generieren von Schemas finden Sie unter Durchsuchen, Suchen und Abrufen von Metadaten für tRFC-Vorgänge in SAP .
Definieren von Nachrichten und Nachrichtentypen
Das Schema, das Sie früher generiert haben, beschreibt die für die Nachrichten in der Orchestrierung erforderlichen "Typen". 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 Anforderungsantwortnachricht, die festgelegt ist, um den tRFC und eine andere Anforderungsantwortnachricht aufzurufen, um den RfcConfirmTransID-Vorgang aufzurufen.
Führen Sie die folgenden Schritte aus, um Nachrichten zu erstellen und mit dem Schema zu verknüpfen.
So erstellen Sie Nachrichten und Verknüpfungen zum Schema
Öffnen Sie die Orchestrierungsansicht des BizTalk-Projekts, sofern sie noch nicht geöffnet ist. Klicken Sie auf "Ansicht", zeigen Sie auf "Andere Fenster", und klicken Sie auf "Orchestrierungsansicht".
Klicken Sie in der Orchestrierungsansicht mit der rechten Maustaste auf "Nachrichten", und klicken Sie dann auf "Neue Nachricht".
Klicken Sie mit der rechten Maustaste auf die neu erstellte Nachricht, und wählen Sie "Eigenschaftenfenster" aus.
Gehen Sie im Eigenschaftenbereich für Message_1 wie folgt vor.
Verwenden Sie diese Aktion Kennung Geben Sie "Anforderung" ein. Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie den Nachrichtentyp aus. Wählen Sie z. B. 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. Wiederholen Sie den vorherigen Schritt, um drei weitere Nachrichten zu erstellen. Gehen Sie im Eigenschaftenbereich für die neuen Nachrichten wie folgt vor.
Den Bezeichner festlegen 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. In dieser Orchestrierung werden Sie eine Anforderungsnachricht an einem definierten Empfangsort ablegen. Die Orchestrierung verarbeitet diese Nachricht und leitet sie an das SAP-System weiter. Die Antwort wird von SAP empfangen und an einem anderen Ort gespeichert. Die Antwortnachricht enthält eine GUID. Die Orchestrierung enthält ein Nachricht konstruieren-Element, 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 an das SAP-System mit der GUID als Parameter gesendet _ Eine typische Orchestrierung für das Aufrufen von tRFCs in einem SAP-System, gefolgt von einem RfcConfirmTransID-Vorgang würde Folgendes enthalten:
Senden und Empfangen von Formen, um Nachrichten an das SAP-System zu senden und Antworten zu empfangen.
Ein Konstruktnachrichten-Shape und eine Nachrichtenzuweisungs-Shape innerhalb dieses, um eine Nachricht für den RfcConfirmTransID-Vorgang zu erstellen.
Ein unidirektionaler Eingangsport für das Empfangen von Anforderungsnachrichten, die an das SAP-System gesendet werden sollen, zur Aktivierung des tRFC.
Ein bidirektionales Sendeport zum Senden von Nachrichten zum Aufrufen der tRFC und zum Empfangen von Antworten.
Ein bidirektionales Sendeport zum Senden von Nachrichten, um den RfcConfirmTransID-Vorgang aufzurufen und die Antwort zu empfangen.
Zwei Unidirektionale Sendeports zum Senden der Antworten vom SAP-System an einen Ordner.
Eine Beispiel-Orchestrierung sieht wie folgt aus:
Hinzufügen von Nachrichtenformen
Geben Sie die folgenden Eigenschaften für jede der Nachrichten-Shapes an. Die in der Spalte "Form " aufgeführten Namen sind die Namen der Nachrichten-Shapes, die in der vorherigen Orchestrierung angezeigt werden.
Gestalt | Shape-Typ | Eigenschaften |
---|---|---|
ReceiveXml | Empfangen | - Name auf ReceiveXml festlegen - Setze Aktivieren auf True |
SendToLOB | Senden | - Name aufSendToLOB festlegen |
AntwortEmpfangen | Empfangen | - Name auf den Wert ReceiveResponse setzen - Setze Aktivieren auf Falsch |
SendResponse | Senden | - Name auf SendResponse setzen |
SendTIDMsg | Senden | - Setzen Sie Name auf SendTIDMsg |
ReceiveTIDRsp | Empfangen | - Name aufReceiveTIDRsp festlegen - Setze Aktivieren auf Falsch |
SendTIDRsp | Senden | - Setze Name auf SendTIDRsp |
Hinzufügen der Nachrichten-Konstruktform
Die Antwort des SAP-Systems für den tRFC-Aufruf enthält eine GUID. Um den tRFC-Aufruf zu bestätigen, müssen Sie dieselbe GUID an die RfcConfirmTransID-Operation übergeben. Dazu müssen Sie ein 'Nachricht konstruieren'-Shape und innerhalb dieses Shapes ein 'Nachrichtenzuweisung'-Shape in die Orchestrierung einfügen. Der Zweck der Form "Nachricht konstruieren" ist wie folgt:
Um die GUID aus der Antwort zu extrahieren, 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 erstellen" 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 zu verwenden, müssen Sie folgendes haben:
Erstellt eine Variable, XmlDoc, in Ihrem BizTalk-Projekt und legen den Typ auf "System.Xml.XmlDocument" fest. Weitere Informationen zum Erstellen von Variablen finden Sie unter Verwenden von Variablen in Orchestrierungen.
Wurde die TransactionalRfcOperationIdentifier-Eigenschaft im Schema für den RfcConfirmTransID-Vorgang höhergestuft. Weitere Informationen zum Bewerben einer Immobilie finden Sie unter "Immobilienförderung".
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, die in der Orchestrierung angezeigt werden.
Hafen | Eigenschaften |
---|---|
FileIn | - Bezeichner auf FileIn festlegen - 'Type' auf 'FileInPortType' festlegen - Kommunikationsmuster auf Einweg festlegen - Setze Kommunikationsrichtung auf Empfangen |
tRFC_Port | - Bezeichner auf tRFC_Port festlegen - Festlegen des Typs auf tRFC_PortType - Kommunikationsmuster auf Anfrage-Antwort festlegen - Kommunikationsrichtung auf "Senden-Empfangen" festlegen |
SavetRFCResponse | - Setzen Sie den Bezeichner auf SavetRFCResponse fest. - Setzen Sie Type auf SavetRFCResponsePortType - Kommunikationsmuster auf Einweg festlegen - Kommunikationsrichtung auf "Senden" festlegen |
TID_Port | - Bezeichner auf TID_Port setzen - Type auf TIDPortType festlegen - Kommunikationsmuster auf Anfrage-Antwort festlegen - Kommunikationsrichtung auf "Senden-Empfangen" festlegen |
SaveTIDResponse | - Setzen Sie Identifier auf SaveTIDResponse - Set Type to SaveTIDResponsePortType - Kommunikationsmuster auf Einweg festlegen - Kommunikationsrichtung auf "Senden" festlegen |
Angeben von Nachrichten für Aktions-Shapes und Verbinden mit Ports
In der folgenden Tabelle werden die Eigenschaften und deren Werte angegeben, um Nachrichten für Aktions-Shapes anzugeben und sie mit den Ports zu verknüpfen. Die in der Spalte "Form " aufgeführten Namen sind die Namen der Nachrichten-Shapes, wie sie in der vorherigen Orchestrierung angezeigt werden.
Gestalt | Eigenschaften |
---|---|
ReceiveXml | - Nachricht auf Anforderung festlegen - Vorgang auf FileIn.tRFC.Request festlegen |
SendToLOB | - Nachricht auf Anforderung festlegen - Vorgang auf tRFC_Port.tRFC.Request festlegen |
AntwortEmpfangen | - Nachricht auf Antwort festlegen - Vorgang auf tRFC_Port.tRFC.Response festlegen |
SendResponse | - Nachricht auf Antwort festlegen - Vorgang auf SavetRFCResponse.tRFC.Request festlegen |
SendTIDMsg | - Nachricht auf TIDRequest festlegen - Vorgang auf TID_Port.TID.Request festlegen |
ReceiveTIDRsp | - Nachricht auf TIDResponse festlegen - Vorgang auf TID_Port.TID.Response festlegen |
SendTIDRsp | - Nachricht auf TIDResponse festlegen - Den Vorgang auf SaveTIDResponse.TID.Request festlegen |
Nachdem Sie diese Eigenschaften angegeben haben, sind die Nachrichtenformen und Ports verbunden, und die Orchestrierung ist abgeschlossen.
Sie müssen nun die BizTalk-Lösung erstellen und dann auf einem BizTalk Server bereitstellen. Weitere Informationen finden Sie unter Building and Running Orchestrations.
Konfigurieren der BizTalk-Anwendung
Nachdem Sie das BizTalk-Projekt bereitgestellt haben, wird die zuvor erstellte Orchestrierung im Bereich "Orchestrierungen " in der BizTalk Server-Verwaltungskonsole 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 verarbeitet 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 absendet, die die Antwort vom SAP-System enthält.
Definieren Sie physische WCF-Custom oder WCF-SAP Sendeports (eine für die tRFC-Anforderungsnachricht und die RfcConfirmTransID-Nachricht), um Nachrichten an das SAP-System zu senden. Sie müssen auch die Aktion im Sende-Port angeben. Informationen zum Erstellen von Ports finden Sie unter Manuelles Konfigurieren einer physischen Portbindung an den SAP-Adapter.
Hinweis
Durch das Generieren des Schemas mithilfe des Add-Ins "Verbrauchsadapterdienst BizTalk Project" 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 zu 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 "So starten Sie eine Orchestration" oder "So starten Sie eine Anwendung".
Stellen Sie in dieser Phase folgendes sicher:
Der FILE-Empfangsanschluss zum Erhalten von Anforderungsmeldungen für die Orchestrierung ist in Betrieb.
Der FILE-Sendeport zum Empfangen der Antwortnachrichten von der Orchestrierung wird ausgeführt.
Die Sendeports WCF-Custom und WCF-SAP laufen, um Nachrichten an das SAP-System zu übermitteln.
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 tRFC-Vorgänge finden Sie unter Message Schemas für die Anforderungsnachricht zum Aufrufen eines tRFC in einem SAP-System. Beispielsweise lautet die Anforderungsnachricht, BAPI_SALEASORDER_CREATEFROMDAT2 als tRFC aufzurufen:
<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 verarbeitet die Nachricht, leitet sie an das SAP-System weiter und erhält eine Rückmeldung von dort. 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 die RfcConfirmTransID auszuführen. Nachdem die Antwort vom SAP-System für den RfcConfirmTransID-Vorgang empfangen wurde, wird sie an den Dateispeicherort kopiert. Zusammenfassung: Nach erfolgreicher Ausführung des Vorgangs:
Eine Antwortnachricht von SAP zum Aufrufen des tRFC wird an den Dateispeicherort kopiert. Dies enthält die gleiche 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 die RfcConfirmTransID wird an denselben Speicherort kopiert. Dies ist eine leere Antwort. Die Antwortnachricht für die 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 "Sondervorgä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 keine Sendeports, Empfangsports usw. für dieselbe Orchestrierung erstellen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von SAP-Adapterbindungen.