Generieren von Schemas für SAP-Artefakte in Azure Logic Apps
Gilt für: Azure Logic Apps (Verbrauch + Standard)
In dieser Schrittanleitung wird gezeigt, wie Sie einen Beispielworkflow für Logik-Apps erstellen, der Schemas für SAP-Artefakte generiert. Der Workflow beginnt mit einem Anforderungstrigger, der HTTP POST-Anforderungen von Ihrem SAP-Server empfangen kann. Der Workflow generiert dann Schemas für das angegebene IDoc und die BAPI mithilfe der SAP-Aktion Schemas generieren, die eine Anforderung an Ihren SAP-Server sendet. Zum Senden dieser Anforderung können Sie entweder die generische Aktion des verwalteten SAP-Connectors mit dem Namen Nachricht an SAP senden verwenden, oder Sie können die spezifische von SAP verwaltete oder integrierte Aktion mit dem Namen [BAPI] Call-Methode in SAP verwenden. Diese SAP-Aktion gibt ein XML-Schema und nicht den Inhalt oder die Daten des XML-Dokuments selbst zurück. In der Antwort zurückgegebene Schemas werden über den Azure Resource Manager-Connector in ein Integrationskonto hochgeladen. Schemas enthalten die folgenden Teile:
Komponente | Beschreibung |
---|---|
Struktur der Anforderungsmeldung | Verwenden Sie diese Informationen, um Ihre get -BAPI-Liste zu erstellen. |
Struktur der Antwortmeldung | Verwenden Sie diese Informationen, um die Antwort zu analysieren. |
Sowohl Standard- als auch Verbrauchs-Logik-App-Workflows verfügen über den verwalteten SAP-Connector, der in Azure mit mehreren Mandanten gehostet und ausgeführt wird. Standardworkflows bieten auch den integrierten SAP-Connector in der Vorschauversion, der in Azure Logic Apps mit einem einzelnen Mandanten gehostet und ausgeführt wird. Dieser Connector befindet sich jedoch derzeit in der Vorschauversion und unterliegt den ergänzenden Nutzungsbedingungen für Microsoft Azure Previews. Wenn Sie einen Verbrauchsworkflow in einer Integrationsdienstumgebung (ISE) erstellen und hosten, können Sie auch die native ISE-Version des SAP-Connectors verwenden. Weitere Informationen finden Sie in der technischen Referenzdokumentation für den Connector.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie die SAP-Connectoranforderungen für Ihr spezifisches Szenario überprüfen und erfüllen.
Wenn Sie Ihre generierten Schemas in ein Repository hochladen möchten, z. B. in ein Integrationskonto, stellen Sie sicher, dass das Repository bereits vorhanden ist.
Installieren oder verwenden Sie ein Tool, das HTTP-Anforderungen senden kann, um Ihre Lösung zu testen, zum Beispiel:
- Visual Studio Code mit einer Erweiterung von Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge – Netzwerkkonsolentool
- Bruno
- curl
Achtung
Für Szenarien, in denen Sie über vertrauliche Daten wie Anmeldeinformationen, Geheimnisse, Zugriffstoken, API-Schlüssel und andere ähnliche Informationen verfügen, sollten Sie ein Tool verwenden, das Ihre Daten mit den erforderlichen Sicherheitsfunktionen schützt, offline oder lokal funktioniert, Ihre Daten nicht mit der Cloud synchronisiert und keine Anmeldung bei einem Onlinekonto erfordert. Auf diese Weise verringern Sie das Risiko, dass vertrauliche Daten an die Öffentlichkeit gelangen.
Generieren von Schemas für ein SAP-Artefakt
Im folgenden Beispiel für den Logik-App-Workflow wird ausgelöst, wenn der SAP-Trigger des Workflows eine Anforderung von einem SAP-Server empfängt. Der Workflow führt dann eine SAP-Aktion aus, die Schemas für das angegebene SAP-Artefakt generiert.
Hinzufügen des Anforderungstriggers
Um Ihren Workflow Anforderungen von Ihrem SAP-Server über HTTP empfangen zu lassen, können Sie Integrierten Trigger anfordern verwenden. Dieser Trigger erstellt einen Endpunkt mit einer URL, über die Ihr SAP-Server HTTP POST-Anforderungen an Ihren Workflow senden kann. Wenn Ihr Logik-App-Workflow diese HTTP-Anforderungen empfängt, wird der Trigger ausgelöst und führt den nächsten Schritt in Ihrem Workflow aus.
Je nachdem, ob Sie über einen Verbrauchsworkflow in Azure Logic Apps mit mehreren Mandanten oder einen Standardworkflow in Azure Logic Apps mit einem einzelnen Mandanten verfügen, führen Sie die entsprechenden Schritte aus:
Erstellen Sie im Azure-Portal eine verbrauchsbasierte Logik-App-Ressource und einen leeren Workflow, der im Designer geöffnet wird.
Führen Sie im Designer die folgenden allgemeinen Schritte aus, um „Integrierten Trigger anfordern“ mit dem Namen Wenn eine HTTP-Anforderung empfangen wird zu suchen und hinzuzufügen.
Speichern Sie den Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Dieser Schritt generiert eine Endpunkt-URL, mit der Ihr Trigger Anforderungen von Ihrem SAP-Server empfangen kann, z. B.:
Hinzufügen einer SAP-Aktion zum Generieren von Schemas
Je nachdem, ob Sie über einen Verbrauchsworkflow in Azure Logic Apps mit mehreren Mandanten oder einen Standardworkflow in Azure Logic Apps mit einem einzelnen Mandanten verfügen, führen Sie die entsprechenden Schritte aus:
Wählen Sie im Workflow-Designer unter dem Trigger die Option Neuer Schritt aus.
Führen Sie im Designer die folgenden allgemeinen Schritte aus, um die verwaltete SAP-Aktion namens Schemas generieren zu suchen und hinzuzufügen.
Weitere Informationen zu dieser von SAP verwalteten Aktion finden Sie unter Schemas generieren.
Wenn Sie dazu aufgefordert werden, geben Sie die Verbindungsinformationen für Ihren lokalen SAP-Server an. Wählen Sie Erstellen, wenn Sie fertig sind. Fahren Sie andernfalls mit dem nächsten Schritt fort, um die SAP-Aktion einzurichten.
Standardmäßig wird beim Erstellen der Verbindung für einen von SAP verwalteten Vorgang starke Typisierung verwendet, um nach ungültigen Werten zu suchen, indem eine XML-Validierung anhand des Schemas durchgeführt wird. Durch dieses Verhalten können Sie Probleme früher feststellen. Erfahren Sie mehr über die Einstellung Sichere Typisierung. Weitere optional verfügbare Verbindungsparameter finden Sie unter Standardverbindungsinformationen.
Nachdem Azure Logic Apps Ihre Verbindung eingerichtet und getestet hat, wird das Aktionsinformationsfeld angezeigt. Weitere Informationen zu Verbindungsproblemen, die auftreten können, finden Sie unter Behandeln von Verbindungsproblemen.
Geben Sie in der Aktion Schemas generieren einen Pfad zu dem Artefakt an, für das Sie das Schema generieren möchten, indem Sie eine verfügbare SAP-Aktion auf Ihrem SAP-Server auswählen.
Wählen Sie im Bearbeitungsfeld des Body ActionUri-Parameters das Ordnersymbol aus. Wählen Sie in der sich öffnenden Liste BAPI, IDOC, RFC oder TRFC aus. In diesem Beispiel wird IDOC ausgewählt. Wenn Sie einen anderen Typ auswählen, ändern sich die verfügbaren SAP-Aktionen basierend auf Ihrer Auswahl.
Hinweis
Wenn Sie einen Fehler Ungültiges Gateway (500) oder einen Fehler Ungültige Anforderung (400) erhalten, lesen Sie Fehler 500 Ungültiges Gateway oder 400 Ungültige Anforderung.
Durchsuchen Sie die SAP-Aktionstypenordner mithilfe der Pfeile, um die SAP-Aktion zu finden und auszuwählen, die Sie verwenden möchten.
In diesem Beispiel wird ORDERS>ORDERS05>720>Send ausgewählt.
Wenn Sie die Aktion, die Sie verwenden möchten, nicht finden können, können Sie einen Pfad auch manuell eingeben:
Tipp
Für den Body ActionUri-Parameter können Sie den Ausdrucks-Editor verwenden, um den Parameterwert anzugeben. Auf diese Weise können Sie dieselbe SAP-Aktion für verschiedene Nachrichtentypen verwenden.
Weitere Informationen zur SAP-Aktion finden Sie unter Nachrichtenschemas für IDoc-Vorgänge.
Um Schemas für mehr als ein Artefakt zu generieren, wählen Sie im Abschnitt Body ActionUri die Option Neues Element hinzufügen aus.
Geben Sie für jedes Artefakt die SAP-Aktion an, die Sie für die Schemagenerierung verwenden möchten, z. B.:
Speichern Sie den Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Testen Ihres Workflows auf die Schemagenerierung
Je nachdem, ob Sie über einen Verbrauchsworkflow in Azure Logic Apps mit mehreren Mandanten oder einen Standardworkflow in Azure Logic Apps mit einem einzelnen Mandanten verfügen, führen Sie die entsprechenden Schritte aus:
Wenn Ihre Logik-App-Ressource nicht aktiviert ist, wählen Sie im Menü der Logik-App die Option Übersicht aus. Wählen Sie auf der Symbolleiste Aktivieren aus.
Wählen Sie auf der Symbolleiste des Designers die Option Ausführen>Ausführen aus, um Ihren Workflow manuell zu starten.
Um eine Webhook-Triggernutzlast zu simulieren und den Workflow auszulösen, senden Sie eine HTTP-Anforderung an die vom Anforderungstrigger Ihres Workflows erstellte Endpunkt-URL, einschließlich der Methode, die der Anforderungstrigger erwartet, indem Sie Ihr HTTP-Anforderungstool und dessen Anweisungen verwenden. Stellen Sie sicher, dass Sie den Nachrichteninhalt in Ihre Anforderung einfügen.
In diesem Beispiel wird die Methode POST und die Endpunkt-URL verwendet, um eine IDoc-Datei zu senden, die im XML-Format vorliegen und den Namespace für die von Ihnen ausgewählte SAP-Aktion enthalten muss, z. B.:
<?xml version="1.0" encoding="UTF-8" ?> <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send"> <idocData> <...> </idocData> </Send>
Nachdem Sie die HTTP-Anforderung gesendet haben, warten Sie auf die Antwort Ihres Workflows.
Hinweis
Im Workflow kann ein Timeout auftreten, wenn nicht alle für die Antwort erforderlichen Schritte innerhalb des Timeoutlimits der Anforderung abgeschlossen wurden. Wenn dies passiert, können Anforderungen blockiert werden. Um die Problemdiagnose zu vereinfachen, sollten Sie sich mit dem Überprüfen und Überwachen Ihrer Logik-App-Workflows vertraut machen.
Suchen Sie im Bereich Übersicht Ihrer Logik-App unter Ausführungsverlauf nach der Workflowausführung, und öffnen Sie sie.
Suchen Sie die Aktion Schema generieren, und überprüfen Sie die Ausgaben der Aktion.
Die Ausgaben zeigen die generierten Schemas für die angegebene Liste von Nachrichten.
Weitere Informationen zum Überprüfen des Workflow-Ausführungsverlaufs finden Sie unter Überwachen von Logik-App-Workflows.
Hochladen von Schemas in ein Integrationskonto
Optional können Sie die generierten Schemas in Repositorys herunterladen oder speichern, z. B. in einem Integrationskonto oder einem Azure-Speicherkonto, z. B. in einem Blobcontainer. Integrationskonten bieten eine erstklassige Erfahrung mit XML-Aktionen für Workflows in Azure Logic Apps. Sie haben die Möglichkeit, generierte Schemas in ein vorhandenes Integrationskonto innerhalb desselben Workflows hochzuladen, der diese Schemas generiert, indem Sie die Azure Resource Manager-Aktion namens Erstellen oder Aktualisieren einer Ressource verwenden.
Hinweis
Schemas verwenden das base64-codierte Format. Um Schemas in ein Integrationskonto hochzuladen, müssen Sie sie zuerst mit der Funktion base64ToString()
decodieren. Das folgende Beispiel zeigt den Code für das Element properties
:
"properties": {
"Content": "@base64ToString(items('For_each')?['Content'])",
"ContentType": "application/xml",
"SchemaType": "Xml"
}
Für diese Aufgabe benötigen Sie ein Integrationskonto, sofern Sie noch keins besitzen. Je nachdem, ob Sie über einen Verbrauchsworkflow in Azure Logic Apps mit mehreren Mandanten oder einen Standardworkflow in Azure Logic Apps mit einem einzelnen Mandanten verfügen, führen Sie die entsprechenden Schritte aus, um Schemas aus Ihrem Workflow nach der Schemagenerierung in ein Integrationskonto hochzuladen.
Wählen Sie im Workflow-Designer unter der von SAP verwalteten Aktion namens Schemas generieren die Option Neuer Schritt.
Führen Sie die folgenden allgemeinen Schritte aus, um die von Azure Resource Manager verwaltete Aktion namens Erstellen oder Aktualisieren einer Ressource zu suchen und hinzuzufügen. Wenn Sie aufgefordert werden, sich mit Ihren Anmeldeinformationen anzumelden, fahren Sie fort.
Nachdem Azure Logic Apps Ihre Verbindung eingerichtet und getestet hat, wird das Aktionsinformationsfeld angezeigt.
Geben Sie in der Aktion Erstellen oder Aktualisieren einer Ressource die erforderlichen Informationen an.
Um Ausgaben aus vorherigen Schritten in den Workflow einzubeziehen, wählen Sie innerhalb des Parameters, in den Sie die Ausgabe einbeziehen möchten, öffnen Sie die Liste der dynamischen Inhalte und wählen Sie die einzubeziehende Ausgabe aus.
Öffnen Sie die Liste Neuen Parameter hinzufügen, und wählen Sie die Felder Speicherort und Eigenschaften aus.
Geben Sie die Werte für diese hinzugefügten Parameter an, z. B.:
Die SAP-Aktion Schemas generieren generiert Schemas als Sammlung, daher fügt der Designer der Aktion automatisch eine For each-Schleife hinzu:
Speichern Sie den Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Testen Ihres Workflows
Je nachdem, ob Sie über einen Verbrauchs- oder Standard-Logik-App-Workflow verfügen, führen Sie die allgemeinen Schritte aus, um Ihren Workflow manuell zu testen und auszuführen.
Wechseln Sie nach einer erfolgreichen Ausführung zum Integrationskonto, und überprüfen Sie, ob die generierten Schemas vorhanden sind.
Beispiele für XML-Schemas
Falls Sie lernen möchten, wie Sie ein XML-Schema zur Verwendung beim Erstellen eines Beispieldokuments generieren, helfen Ihnen die folgenden Beispiele weiter. In diesen Beispielen wird veranschaulicht, wie Sie viele verschiedene Arten von Nutzlasten verwenden können, z. B.:
- RFC-Anforderungen
- BAPI-Anforderungen
- IDoc-Anforderungen
- Einfache oder komplexe XML-Schemadatentypen
- Tabellenparameter
- Optionales XML-Verhalten
Sie können Ihr XML-Schema mit einem optionalen XML-Prolog beginnen. Der SAP-Connector funktioniert mit oder ohne XML-Prolog.
<?xml version="1.0" encoding="utf-8">
XML-Beispiele für RFC-Anforderungen
Das folgende Beispiel zeigt einen einfachen RFC-Aufruf, bei dem der RFC-Name STFC_CONNECTION
lautet. Diese Anforderung verwendet den Standardnamespace mit dem Namen xmlns=
. Sie können jedoch Namespacealiase wie xmmlns:exampleAlias=
zuweisen und verwenden. Der Namespacewert ist der Namespace für alle Remotefunktionsaufrufe für Dienste vom Typ „SAP für Microsoft“. Die Anforderung verfügt über einen einfachen Eingabeparameter namens <REQUTEXT>
.
<STFC_CONNECTION xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<REQUTEXT>exampleInput</REQUTEXT>
</STFC_CONNECTION>
Das folgende Beispiel enthält einen RFC-Aufruf mit einem Tabellenparameter. Dieser Beispielaufruf und die zugehörige Gruppe mit Test-RFCs sind in allen SAP-Systemen verfügbar. Der Tabellenparameter heißt TCPICDAT
. Der Tabellenzeilentyp lautet ABAPTEXT
, und dieses Element wird für jede Zeile der Tabelle wiederholt. Dieses Beispiel enthält eine einzelne Zeile mit dem Namen LINE
. Anforderungen mit einem Tabellenparameter können beliebig viele Felder enthalten, sofern die Anzahl eine positive ganze Zahl (n) ist.
<STFC_WRITE_TO_TCPIC xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<RESTART_QNAME>exampleQName</RESTART_QNAME>
<TCPICDAT>
<ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<LINE>exampleFieldInput1</LINE>
</ABAPTEXT>
<ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<LINE>exampleFieldInput2</LINE>
</ABAPTEXT>
<ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<LINE>exampleFieldInput3</LINE>
</ABAPTEXT>
</TCPICDAT>
</STFC_WRITE_TO_TCPIC>
Tipp
Um das Ergebnis aus RFC STFC_WRITE_TO_TCPIC zu überprüfen, verwenden Sie den SAP Logon's Data Browser (T-Code SE16) und die Tabelle mit dem Namen TCPIC.
Das folgende Beispiel zeigt einen RFC-Aufruf mit einem Tabellenparameter, der über ein anonymes Feld verfügt, bei dem es sich um ein Feld ohne zugewiesenen Namen handelt. Komplexe Typen werden unter einem separaten Namespace deklariert. Bei der Deklaration wird ein neuer Standardwert für den aktuellen Knoten und alle untergeordneten Elemente festgelegt. Im Beispiel wird der Hexadezimalcode x002F
als Escapezeichen für das Symbol / verwendet, weil dieses Symbol im SAP-Feldnamen reserviert ist.
<RFC_XML_TEST_1 xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<IM_XML_TABLE>
<RFC_XMLCNT xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<_x002F_AnonymousField>AQIDBAU=</_x002F_AnonymousField>
</RFC_XMLCNT>
</IM_XML_TABLE>
</RFC_XML_TEST_1>
Das vorherige Beispiel zeigt auch, wie Sie binäre Arrays für die SAP-Datentypen byte
und XString
codieren können. Die binären Arrays sind in XML (XSD-Binärdatentyp xs:base64Binary
) base64-codiert. In dem Beispiel wird der beispielhafte base64-Zeichenfolgenwert AQIDBAU=
als binäres Array [01][02][03][04]
decodiert. Diese Codierung unterscheidet sich von der hexadezimalen Codierung des zugrunde liegenden SAP .NET-Connectors und ist platzsparender. Bei der hexadezimalen Codierung wird derselbe Wert wie die Zeichenfolge 01020304
codiert.
Hinweis
Seien Sie vorsichtig, wenn Sie die binäre Codierung von Arrays verwenden, da die hexadezimale Codierung eine Teilmenge des base64-Bereichs verwendet und als gültige base64-Werte angezeigt wird. Beispielsweise wird die Zeichenfolge 01020304
auch als gültiger base64-codierter Wert decodiert, ergibt aber ein anderes binäres Array [d3][5d][36][d3][7d][38]
und nicht das binäre Array [01][02][03][04]
.
Das folgende Beispiel enthält Präfixe für die Namespaces. Sie können alle Präfixe gleichzeitig oder eine beliebige Anzahl von Präfixen als Attribute eines Knotens deklarieren. Der RFC-Namespacealias ns0
wird als Stamm- und Parameterwert für den einfachen Typ genutzt.
Hinweis
Komplexe Typen werden in einem anderen Namespace für RFC-Typen mit dem Alias ns3
deklariert, nicht im regulären RFC-Namespace mit dem Alias ns0
.
<ns0:BBP_RFC_READ_TABLE xmlns:ns0="http://Microsoft.LobServices.Sap/2007/03/Rfc/" xmlns:ns3="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<ns0:DELIMITER>0</ns0:DELIMITER>
<ns0:QUERY_TABLE>KNA1</ns0:QUERY_TABLE>
<ns0:ROWCOUNT>250</ns0:ROWCOUNT>
<ns0:ROWSKIPS>0</ns0:ROWSKIPS>
<ns0:FIELDS>
<ns3:RFC_DB_FLD>
<ns3:FIELDNAME>KUNNR</ns3:FIELDNAME>
</ns3:RFC_DB_FLD>
</ns0:FIELDS>
</ns0:BBP_RFC_READ_TABLE>
XML-Beispiele für BAPI-Anforderungen
Die folgenden XML-Beispiele sind Beispielanforderungen zum Aufrufen der BAPI-Methode.
Hinweis
SAP macht Geschäftsobjekte für externe Systeme verfügbar, indem diese als Antwort auf den RFC RPY_BOR_TREE_INIT
beschrieben werden. Dieser Aufruf wird von Azure Logic Apps ohne Eingabefilter ausgegeben. Logic Apps untersucht die Ausgabetabelle BOR_TREE
.
Das Feld SHORT_TEXT
wird für Namen von Geschäftsobjekten verwendet. Geschäftsobjekte, die von SAP nicht in der Ausgabetabelle zurückgegeben werden, sind für Azure Logic Apps nicht zugänglich.
Bei Verwendung von benutzerdefinierten Geschäftsobjekten müssen Sie sicherstellen, dass Sie diese in SAP veröffentlichen und als Release bereitstellen. Andernfalls listet SAP Ihre benutzerdefinierten Geschäftsobjekte in der Ausgabetabelle BOR_TREE
nicht auf. Sie können in Logic Apps erst auf Ihre benutzerdefinierten Geschäftsobjekte zugreifen, nachdem Sie sie über SAP verfügbar gemacht haben.
Im folgenden Beispiel wird eine Liste mit Banken abgerufen, indem die BAPI-Methode GETLIST
verwendet wird. Dieses Beispiel enthält das Geschäftsobjekt für eine Bank namens BUS1011
.
<GETLIST xmlns="http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS1011">
<BANK_CTRY>US</BANK_CTRY>
<MAX_ROWS>10</MAX_ROWS>
</GETLIST>
Im folgenden Beispiel wird ein Bankobjekt mit der Methode CREATE
erstellt. In diesem Beispiel wird das gleiche Geschäftsobjekt namens BUS1011
wie im vorherigen Beispiel verwendet. Wenn Sie die Methode CREATE
zum Erstellen einer Bank verwenden, sollten Sie Ihre Änderungen unbedingt committen, weil dies bei dieser Methode nicht standardmäßig durchgeführt wird.
Tipp
Stellen Sie sicher, dass für Ihr XML-Dokument alle Überprüfungsregeln eingehalten werden, die in Ihrem SAP-System konfiguriert sind. In diesem Beispieldokument muss der Bankschlüssel in den USA (<BANK_KEY>
) beispielsweise eine Bankleitzahl sein (auch als „ABA Number“ bezeichnet).
<CREATE xmlns="http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS1011">
<BANK_ADDRESS>
<BANK_NAME xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">ExampleBankName</BANK_NAME>
<REGION xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">ExampleRegionName</REGION>
<STREET xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">ExampleStreetAddress</STREET>
<CITY xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc">Redmond</CITY>
</BANK_ADDRESS>
<BANK_CTRY>US</BANK_CTRY>
<BANK_KEY>123456789</BANK_KEY>
</CREATE>
Im folgenden Beispiel werden die Details für eine Bank über die Bankleitzahl (Wert für <BANK_KEY>
) abgerufen.
<GETDETAIL xmlns="http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS1011">
<BANKCOUNTRY>US</BANKCOUNTRY>
<BANKKEY>123456789</BANKKEY>
</GETDETAIL>
XML-Beispiele für IDoc-Anforderungen
Verwenden Sie zum Generieren eines reinen SAP-IDoc-XML-Schemas die Anwendung für die SAP-Anmeldung und den T-Code WE60
. Greifen Sie auf die SAP-Dokumentation über die Benutzeroberfläche zu, und generieren Sie XML-Schemas im XSD-Format für Ihre IDoc-Typen und -Erweiterungen. Weitere Informationen zu generischen SAP-Formaten und -Payloads sowie zu den integrierten Dialogfeldern finden Sie in der SAP-Dokumentation.
In diesem Beispiel werden der Stammknoten und die Namespaces deklariert. Mit dem URI http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//700/Send
im Beispielcode wird die folgende Konfiguration deklariert:
/IDoc
ist der Stammknoten für alle IDocs./3
ist die Datensatztypversion für gängige Segmentdefinitionen./ORDERS05
ist der IDoc-Typ.//
ist ein leeres Segment, weil keine IDoc-Erweiterung vorhanden ist./700
ist die SAP-Version./Send
ist die Aktion zum Senden der Informationen an SAP.
<ns0:Send xmlns:ns0="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//700/Send" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization" xmlns:ns1="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/" xmlns:ns2="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//700">
<ns0:idocData>
Sie können den Knoten idocData
wiederholen, um einen Batch mit IDocs in nur einem Aufruf zu senden. Das folgende Beispiel enthält einen Steuerungsdatensatz namens EDI_DC40
und mehrere Datensätze mit Daten.
<...>
<ns0:idocData>
<ns2:EDI_DC40>
<ns1:TABNAM>EDI_DC40</ns1:TABNAM>
<...>
<ns1:ARCKEY>Cor1908207-5</ns1:ARCKEY>
</ns2:EDI_DC40>
<ns2:E2EDK01005>
<ns2:DATAHEADERCOLUMN_SEGNAM>E23DK01005</ns2:DATAHEADERCOLUMN_SEGNAM>
<ns2:CURCY>USD</ns2:CURCY>
</ns2:E2EDK01005>
<ns2:E2EDK03>
<...>
</ns0:idocData>
Das folgende Beispiel zeigt enthält einen IDoc-Steuerungsdatensatz, für den das Präfix EDI_DC
verwendet wird. Sie müssen die Werte so aktualisieren, dass sie zu Ihrer SAP-Installation und zum IDoc-Typ passen. Ihr IDoc-Clientcode darf beispielsweise nicht 800
lauten. Wenden Sie sich an Ihr SAP-Team, um sicherzustellen, dass Sie die richtigen Werte für Ihre SAP-Installation nutzen.
<ns2:EDI_DC40>
<ns:TABNAM>EDI_DC40</ns1:TABNAM>
<ns:MANDT>800</ns1:MANDT>
<ns:DIRECT>2</ns1:DIRECT>
<ns:IDOCTYP>ORDERS05</ns1:IDOCTYP>
<ns:CIMTYP></ns1:CIMTYP>
<ns:MESTYP>ORDERS</ns1:MESTYP>
<ns:STD>X</ns1:STD>
<ns:STDVRS>004010</ns1:STDVRS>
<ns:STDMES></ns1:STDMES>
<ns:SNDPOR>SAPENI</ns1:SNDPOR>
<ns:SNDPRT>LS</ns1:SNDPRT>
<ns:SNDPFC>AG</ns1:SNDPFC>
<ns:SNDPRN>ABAP1PXP1</ns1:SNDPRN>
<ns:SNDLAD></ns1:SNDLAD>
<ns:RCVPOR>BTSFILE</ns1:RCVPOR>
<ns:RCVPRT>LI</ns1:RCVPRT>
Das folgende Beispiel zeigt einen Beispieldatensatz mit einfachen Segmenten. Hierbei wird das SAP-Datumsformat verwendet. Für stark typisierte Dokumente können native XML-Datumsformate verwendet werden, z. B. 2020-12-31 23:59:59
.
<ns2:E2EDK01005>
<ns2:DATAHEADERCOLUMN_SEGNAM>E2EDK01005</ns2:DATAHEADERCOLUMN_SEGNAM>
<ns2:CURCY>USD</ns2:CURCY>
<ns2:BSART>OR</ns2:BSART>
<ns2:BELNR>1908207-5</ns2:BELNR>
<ns2:ABLAD>CC</ns2:ABLAD>
</ns2>
<ns2:E2EDK03>
<ns2:DATAHEADERCOLUMN_SEGNAM>E2EDK03</ns2:DATAHEADERCOLUMN_SEGNAM>
<ns2:IDDAT>002</ns2:IDDAT>
<ns2:DATUM>20160611</ns2:DATUM>
</ns2:E2EDK03>
Das folgende Beispiel zeigt einen Datensatz mit gruppierten Segmenten. Der Datensatz enthält den übergeordneten Gruppenknoten E2EDKT1002GRP
und mehrere untergeordnete Knoten, z. B. E2EDKT1002
und E2EDKT2001
.
<ns2:E2EDKT1002GRP>
<ns2:E2EDKT1002>
<ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
<ns2:TDID>ZONE</ns2:TDID>
</ns2:E2EDKT1002>
<ns2:E2EDKT2001>
<ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
<ns2:TDLINE>CRSD</ns2:TDLINE>
</ns2:E2EDKT2001>
</ns2:E2EDKT1002GRP>
Die empfohlene Methode ist die Erstellung eines IDoc-Bezeichners für die Verwendung mit tRFC. Sie können diesen Transaktionsbezeichner tid
festlegen, indem Sie im SAP-verwalteten Connector den Vorgang zum Senden von IDocs verwenden.
Das folgende Beispiel zeigt ein alternatives Verfahren zum Festlegen des Transaktionsbezeichners (tid
). In diesem Beispiel werden der letzte Datensatz-Segmentknoten und der IDoc-Datenknoten geschlossen. Anschließend wird die GUID guid
als tRFC-Bezeichner zum Erkennen von Duplikaten verwendet.
</E2STZUM002GRP>
</idocData>
<guid>8820ea40-5825-4b2f-ac3c-b83adc34321c</guid>
</Send>