Freigeben über


Senden von IDOCs an SAP mithilfe von BizTalk Server

Alle IDOC-Aufrufe von SAP werden intern als tRFC-Aufrufe behandelt, wobei der Adapter als tRFC-Client fungiert und einen RFC in SAP aufruft, um ein IDOC zu senden. Dieser Abschnitt enthält Informationen zum Senden von IDOCs an SAP mithilfe des Microsoft BizTalk-Adapters für mySAP Business Suite mit BizTalk Server. Der SAP-Adapter zeigt zwei verschiedene Vorgänge zum Senden von IDOCs an:

  • Der Sendevorgang ermöglicht Adapterclients das Senden von IDOCs mit einem stark typisierten Schema.

  • Der SendIdoc-Vorgang ermöglicht Adapterclients das Senden von IDOCs mit einem schwach typisierten Schema. Damit können die Adapterclients Flatfile-IDOCs an das SAP-System senden. Das gesamte Flatfile-IDOC wäre ein Knotenwert in einer SendIdoc XML-Nachricht.

    Weitere Informationen dazu, wie der SAP-Adapter das Senden von IDOCs an ein SAP-System unterstützt, finden Sie unter Vorgänge auf IDOCs in SAP. Weitere Informationen zur Struktur von SOAP-Nachrichten zum Senden eines IDOC finden Sie unter Nachrichtenschemas für IDOC-Vorgänge.

BizTalk-Szenarien zum Senden von IDOCs mit dem SAP-Adapter

Die folgende Tabelle enthält wichtige BizTalk-Szenarien zum Senden von IDOCs an ein SAP-System:

Eingabe in BizTalk BizTalk-Verarbeitung Ausgabe an Adapter
Flatfile-IDOC Metadatenentwurfszeit

1. Legen Sie die Bindungseigenschaft GenerateFlatFileCompatibleIdocSchema auf True fest.
2. Generieren Sie das Schema für den Sendevorgang für ein bestimmtes IDOC mithilfe des Add-Ins "Adapterdienst nutzen".

Orchestrierungsentwurfszeit

1. Empfangen von Flatfile-IDOC
2. Verwenden Sie flatfile disassembler, um Flatfile-IDOC in XML-IDOC zu konvertieren, indem Sie das gerade generierte Schema verwenden.
3. Legen Sie die Aktion auf Sendevorgang fest.
Nachricht senden
Flatfile-IDOC Metadatenentwurfszeit

1. Legen Sie die Bindungseigenschaft GenerateFlatFileCompatibleIdocSchema auf True fest.
2. Generieren Sie das Schema für den SendIdoc-Vorgang über den IDOC-Knoten mithilfe des Add-Ins "Adapterdienst nutzen".

Orchestrierungsentwurfszeit

1. Empfangen von Flatfile-IDOC
2. Verwenden Sie den Flatfile-Disassembler, um Flatfile-IDOC in XML zu konvertieren (in diesem Fall enthält die XML-Nachricht einen <idocData-Knoten> , der die gesamte Flatfile-Idoc-Nachricht enthält), indem Sie das gerade generierte Schema verwenden.
3. Legen Sie die Aktion auf SendIdoc-Vorgang fest.
SendIdoc-Nachricht
XML-IDOC Metadatenentwurfszeit

– Generieren Sie das Schema für den Sendevorgang für ein bestimmtes IDOC mithilfe des Add-Ins "Adapterdienst nutzen".

Orchestrierungsentwurfszeit

1. Xml-IDOC empfangen.
2. Legen Sie die Aktion auf Sendevorgang fest.
Nachricht senden
Flatfile-IDOC in XML-Nachricht Metadatenentwurfszeit

– Generieren Sie das Schema für den SendIdoc-Vorgang über den IDOC-Knoten mithilfe des Adapterdienst-Add-Ins verbrauchen.

Orchestrierungsentwurfszeit

1. Empfangen einer XML-Nachricht.
2. Legen Sie die Aktion auf SendIdoc-Vorgang fest.
SendIdoc-Nachricht

Senden eines IDOC an ein SAP-System

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 ein IDOC an ein SAP-System zu senden, sind dies folgende Aufgaben:

  1. Erstellen Sie ein BizTalk-Projekt, und generieren Sie ein Schema für das IDOC, das Sie im SAP-System aufrufen möchten. Stellen Sie beim Generieren des Schemas sicher, dass Sie die erforderlichen Bindungseigenschaften festlegen, wie in der vorherigen Tabelle aufgeführt. Anweisungen zum Festlegen der Bindungseigenschaften finden Sie unter Konfigurieren der Bindungseigenschaften für den SAP-Adapter.

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

  3. Erstellen Sie eine Orchestrierung, um ein IDOC an ein SAP-System zu senden.

  4. Erstellen und Bereitstellen des BizTalk-Projekts.

  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, IDOCSend, basierend auf diesem Thema wird auch mit dem BizTalk Adapter Pack bereitgestellt. Weitere Informationen finden Sie unter Beispiele für den SAP-Adapter.

Generieren eines Schemas

In diesem Thema wird veranschaulicht, wie Sie ein IDOC an ein SAP-System senden, indem Sie ein Schema für den Sendevorgang unter \IDOC\ORDERS\ORDERS05\ORDERS05 generieren. V3(620) IDOC. Weitere Informationen zum Generieren eines Schemas für ein bestimmtes IDOC finden Sie unter Durchsuchen, Suchen und Abrufen von Metadaten für IDOC-Vorgänge in SAP .

Definieren von Nachrichten und Nachrichtentypen

Das zuvor generierte Schema 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 Schema, das Sie im ersten Schritt generiert haben, mit den Nachrichten aus der Orchestrierungsansicht des BizTalk-Projekts verknüpfen.

Für dieses Thema müssen Sie zwei Nachrichten erstellen– eine, um ein IDOC an das SAP-System zu senden, und die andere, um eine Antwort zu erhalten.

Führen Sie die folgenden Schritte aus, um Nachrichten zu erstellen und sie 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. Führen Sie im Bereich Eigenschaften für Message_1 die folgenden Schritte aus:

    Option Aufgabe
    Bezeichner Geben Sie IDOCSend ein.
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie IDOCSend.SAPBindingSchema3 aus, wobei IDOCSend der Name Ihres BizTalk-Projekts ist. SAPBindingSchema3 ist das Schema, das für den Sendevorgang generiert wurde.
  5. Wiederholen Sie den vorherigen Schritt, um eine neue Nachricht zu erstellen. Gehen Sie im Bereich Eigenschaften für die neue Nachricht wie folgt vor:

    Option Aufgabe
    Bezeichner Geben Sie IDOCResponse ein.
    Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie IDOCSend.SAPBindingSchema4 aus.

Einrichten der Orchestrierung

Sie müssen eine BizTalk-Orchestrierung erstellen, um BizTalk Server zum Senden von IDOCs an ein SAP-System zu verwenden. Bei dieser Orchestrierung löschen Sie ein Flatfile-IDOC an einem definierten Empfangsspeicherort. Diese Datei wird mithilfe eines Flatfile-Disassemblers in eine XML-Anforderungsnachricht konvertiert. Der SAP-Adapter nutzt diese Nachricht und übergibt sie an das SAP-System. Die Antwort mit einer GUID wird von SAP empfangen und an einem anderen Speicherort gespeichert. Sie müssen Sende- und Empfangs-Shapes einschließen, um IDOCs an das SAP-System zu senden und Antworten zu empfangen. Sie müssen auch einen Flatfile-Disassembler einschließen, um eine Flatfile in eine XML-Datei zu konvertieren. Eine typische Orchestrierung zum Senden und IDOC an ein SAP-System enthält Folgendes:

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

  • Ein unidirektionale Empfangsport zum Empfangen von Flatfile-IDOCs, die an das SAP-System gesendet werden sollen.

  • Ein Flatfile-Disassembler zum Konvertieren des Flatfile-IDOC in eine XML-Datei.

  • Ein bidirektionales Sendeport, um das IDOC an das SAP-System zu senden und Antworten zu empfangen.

  • Ein unidirektionale Sendeport zum Senden der Antworten aus dem SAP-System an einen Ordner.

    Eine Beispielorchestrierung sieht wie folgt aus:

    Orchestrierung zum Senden von IDOCs an SAP

Hinzufügen von Nachrichten-Shapes

Stellen Sie sicher, dass Sie die folgenden Eigenschaften für die einzelnen Nachrichtenformen angeben. Die in der Spalte Shape aufgeführten Namen sind die Namen der Meldungs-Shapes, wie in der obigen Orchestrierung angezeigt.

Form Shape-Typ Eigenschaften
ReceiveFile Empfangen – Legen Sie Name auf ReceiveFile 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.

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 FileInType fest.
– Festlegen des Kommunikationsmusters auf Unidirektionale
– Festlegen der Kommunikationsrichtung auf "Empfangen"
LOBPort Bezeichner auf LOBPort festlegen
– Legen Sie Type auf LOBPortType fest.
– Festlegen des Kommunikationsmusters auf Request-Response
– Festlegen der Kommunikationsrichtung auf Senden/Empfangen
SaveResponse Bezeichner auf SaveResponse festlegen
– Legen Sie Type auf SaveResponseType fest.
– Festlegen des Kommunikationsmusters auf Unidirektionale
Kommunikationsrichtung auf Senden festlegen

Hinzufügen eines Flatfile-Disassemblers

Sie müssen Ihrer Orchestrierung einen Flatfile-Disassembler hinzufügen, um das Flatfile-IDOC in ein XML-Format zu konvertieren.

So fügen Sie einen Flatfile-Disassembler hinzu
  1. Klicken Sie mit der rechten Maustaste auf das BizTalk-Projekt, zeigen Sie auf Hinzufügen, und wählen Sie Neues Element aus.

  2. Gehen Sie im Dialogfeld wie folgt vor:

    Option Aufgabe
    Kategorien Pipelinedateien
    Visual Studio – Installierte Vorlagen Empfangspipeline
    Name IDOCReceive
  3. Dadurch wird der pipeline-Designer geöffnet. Ziehen Sie aus der BizTalk-Pipelinekomponenten-Toolbox die Pipelinekomponente des Flatfile-Disassemblers in die Disassemblierungsphase der Empfangspipeline.

  4. Geben Sie in der Ansicht Eigenschaften der Pipelinekomponente einen Wert für die Document Schema-Eigenschaft an. Stellen Sie in der Dropdownliste sicher, dass Sie das Schema auswählen, das dem IDOC-Sendevorgang entspricht.

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 obigen Orchestrierung angezeigt.

Form Eigenschaften
ReceiveFile – Festlegen der Nachricht auf IDOCSend
– Festlegen von Operation auf FileIn.SendIDOC.Request
SendToLob – Festlegen der Nachricht auf IDOCSend
– Legen Sie Operation auf LOBPort.SendIDOC.Request fest.
ReceiveResponse – Festlegen von Message auf IDOCResponse
– Legen Sie Operation auf LOBPort.SendIDOC.Response fest.
SendResponse – Festlegen von Message auf IDOCResponse
– Legen Sie Operation auf SaveResponse.SendIDOC.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 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 und sendet sie an das SAP-System.

      Wichtig

      Wählen Sie für die XMLReceive-Pipeline für diesen Port IDOCReceive aus. Sie haben diese Pipeline als Teil des BizTalk-Projekts erstellt.

    • 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 einen physischen WCF-Custom oder WCF-SAP-Sendeport, 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

      Sie können auch die AutoConfirmSentIdocs-Bindungseigenschaft so festlegen, dass IDOCs automatisch in das SAP-System committet werden. Wenn Sie dies tun, müssen Sie den RfcConfirmTransID-Vorgang nicht explizit aufrufen, um die IDOCs zu committen. Weitere Informationen zur Bindungseigenschaft finden Sie unter Informationen zu Den Bindungseigenschaften des BizTalk-Adapters für mySAP Business Suite. Weitere Informationen zum RfcConfirmTransID-Vorgang finden Sie unter Vorgänge für tRFCs in SAP.

      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-Verwaltungskonsole importieren, um Sendeports (für ausgehende Anrufe) zu erstellen oder Ports (für eingehende Anrufe) zu empfangen. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für SAP.

Starten der Anwendung

Sie müssen die BizTalk-Anwendung starten, um ein IDOC an das SAP-System zu senden. 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.

  • Der WCF-Custom- oder WCF-SAP-Sendeport zum Senden von Nachrichten an das SAP-System wird 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. In diesem Beispiel legen wir ein flatfile-IDOC am definierten FILE-Empfangsspeicherort ab. Die folgenden Aktionen werden ausgeführt, nachdem Sie die Anforderungsnachricht gelöscht haben:

  • Die Orchestrierung wählt dieses flatfile-IDOC aus und konvertiert es in eine XML-Anforderungsnachricht, die dem schema entspricht, das Sie zuvor generiert haben.

  • Wenn die von Ihnen bereitgestellte Anforderungsnachricht eine GUID enthält, generiert der Adapter eine Transaktions-ID (TID) und sendet sie an das SAP-System.

  • Wenn die von Ihnen bereitgestellte Anforderungsnachricht keine GUID enthält, generiert der Adapter eine GUID und verwendet diese GUID, um eine TID zu generieren. Die TID wird dann an das SAP-System gesendet.

    In beiden Fällen enthält die Antwortnachricht des SAP-Systems eine GUID. Beispielsweise lautet eine Antwortnachricht für den Sendevorgang auf dem ORDERS05 IDOC:

<?xml version="1.0" encoding="utf-8"?>  
<SendResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send">  
  <guid>a5afe162-d5cc-47b0-bf6f-3b0bfe06a97e</guid>  
</SendResponse>  

Nachdem Sie die GUID erhalten haben, müssen Sie den RfConfirmTransID-Vorgang aufrufen, um die TID zu committen. Weitere Informationen zum RfcConfirmTransID-Vorgang finden Sie unter Vorgänge für tRFCs in SAP. Sie können entweder eine neue Orchestrierung erstellen, um diesen Vorgang aufzurufen, oder die vorhandene Orchestrierung ändern. Wenn Sie eine neue Orchestrierung erstellen möchten, ähnelt sie jeder anderen Orchestrierung auf einem SAP-System. Wenn Sie die vorhandene Orchestrierung aktualisieren möchten, lesen Sie Aufrufen von tRFCs in SAP mit BizTalk Server. Die Orchestrierung zum Aufrufen eines tRFC, wie im Thema beschrieben, veranschaulicht, wie ein RfcConfirmTransID-Vorgang aus derselben Orchestrierung aufgerufen wird.

Hinweis

Sie müssen den RfcConfirmTransID-Vorgang nicht aufrufen, wenn Sie die AutoConfirmSentIdocs-Bindungseigenschaft auf True festlegen.

Mögliche Ausnahmen

Informationen zu den Ausnahmen, die beim Senden eines IDOC an ein SAP-System mithilfe von 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