SAP BAPI-Ausführungshandbuch für Jitterbit App Builder
Übersicht
In diesem Handbuch wird die Ausführung von SAP BAPI-Funktionsmodulen im App Builder beschrieben. Was ist BAPI?
Die BAPI-Technologie (Business Application Programming Interface) ist die wichtigste API Technologie, die Kunden zum Lesen und Aktualisieren von Daten zur Verfügung steht. Sie kann innerhalb von SAP oder extern über das RFC-Protokoll und die ALE/IDoc-Technologie aufgerufen werden (https://wiki.scn.sap.com/wiki/display/ABAP/BAPI?original_fqdn=wiki.sdn.sap.com&BAPI-Introduction).
BAPIs werden im SAP Business Object Repository (BOR) als Methoden von SAP Business-Objekttypen definiert, die bestimmte Geschäftsfunktionen ausführen. Sie werden als RFC-fähige Funktionsmodule (Remote Function Call) implementiert und im Function Builder der ABAP Workbench erstellt.
App Builder Anforderungen
Um eine Verbindung mit SAP herzustellen und BAPIs auszuführen, muss auf Ihrer Instanz ein App Builder-Softwarepaket mit den zusätzlichen SAP Komponenten installiert sein. Der Name der App Builder ZIP-Datei enthält am Ende der Version ThirdPartySAP (z. B. App Builder-3.3.21255ThirdPartySAP.zip). Dieses Paket enthält SAP DLLs (Dynamic Link Libraries) im Ordner „App Builder/Bin“, die für die Verbindung mit SAP vom App Builder aus erforderlich sind.
SAP Datenquelle im App Builder
Es wird vorausgesetzt, dass in Ihrer App Builder Instanz eine SAP Datenquelle vorhanden ist, die mit der Datenquelle verknüpft ist, von der aus Sie die BAPI aufrufen möchten. Falls Sie noch keine SAP Datenquelle eingerichtet haben, lesen Sie bitte diese Dokumentation und richten Sie eine ein!
BAPIs im App Builder
App Builder nutzt die Kompilierung lokaler Staging-Tabellen, um Daten per BAPI-Ausführung an SAP zu übergeben. Jede Komponente der BAPI-Funktion wird durch eine Staging-Tabelle und Spalten repräsentiert, die Werte für die entsprechenden Daten enthalten, die das Modul erwartet. Zusätzlich zu den BAPI-Parameterspalten definiert App Builder spezifische Spalten, die alle Staging-Tabellen während der Ausführung miteinander verknüpfen.
Diese App Builder spezifischen Spalten sind mit dem Präfix '_' versehen und werden nicht an SAP gesendet, da sie ausschließlich der Bereitstellung der Ausführung durch App Builder dienen. Wenn die Daten bereitgestellt und für die BAPI-Ausführung bereit sind, wird eine spezielle Aktion (die weiter unten erläutert wird) aufgerufen und führt das BAPI mit dem _id
Spalte, die bestimmt, welcher Datensatz übergeben wird.
Notiz
Die App Server-Datenbankprotokolle veröffentlichen alle SAP Verbindungen und-Ausführungen zusammen mit BAPI-spezifischen Parameterdaten.
Erstellen lokaler Staging-BAPI-Tabellen
Staging-Tabellen können entweder manuell oder durch Importieren der BAPI-Struktur über die Funktion Importmuster in der SAP -Datenquelle erstellt werden.
Wenn Sie die Staging-Tabellen manuell erstellen möchten, sollten Sie die Struktur und die Parameter des auszuführenden BAPIs genau kennen. Die Struktur ist entscheidend für die Ausführung des BAPIs durch App Builder.
BAPIs können Importparameter (Daten, die vom App Builder an SAP übertragen werden) und Exportparameter (Daten, die von SAP zurück an den App Builder übertragen werden) haben. BAPIs können eine übergeordnete/untergeordnete Struktur haben, wobei die übergeordnete Komponente die höchste Datenebene und die untergeordneten Komponenten eine niedrigere Datenebene enthalten. Die meisten BAPIs haben außerdem eine /RETURN
untergeordnete Komponente, die alle Nachrichten (Erfolg oder Fehler) exportiert, die eine Bestätigung liefern oder dem Benutzer bei der fehlerbehebung helfen.
Eine Staging-Tabelle für die übergeordneten und untergeordneten Komponenten wird in Ihrer lokalen Datenquelle erstellt, wobei dem Namen der untergeordneten Tabelle der Name der übergeordneten Tabelle vorangestellt wird (d. h. die übergeordnete Staging-Tabelle mit dem Namen BAPI_PO_CREATE1
, untergeordnete Staging-Tabelle mit dem Namen BAPI_PO_CREATE1/POHEADER
).
So erstellen Sie Spalten in der Staging-Tabelle:
-
Erstellen
_id
Spalte und legen Sie sie als UUID-Datentyp fest. Markieren Sie sie als PK und erstellen Sie sie automatisch. -
Wenn die Staging-Tabelle eine untergeordnete Komponente ist, erstellen Sie als Nächstes
_ParentId
und legen Sie sie als UUID fest. Definieren Sie die Viele-zu-Eins-Beziehung zur übergeordneten Tabelle, in der die primäre Spalte_Id
Links zur sekundären Spalte_ParentId
. -
Wenn die Ausführungsreihenfolge der Datensätze kritisch ist, fügen Sie die Spalte
_index
Hier kann ein Indexwert gespeichert und während der Ausführung referenziert werden. -
Fügen Sie anschließend alle lokalen FK-Spalten oder nützlichen Audit-Informationen hinzu, mit dem Präfix „
_
, das hilft dabei, die Datensätze in Ihrem Datenmodell auf die BAPI-Tabellendatensätze zu verweisen. (d. h._POHeaderID
ermöglicht es uns, BAPI-gestützte Daten basierend auf einem lokalen PO-Datensatz Abfrage,_ExecutedOn
um den Verlauf zu verfolgen) -
Nachdem App Builder spezifische Spalten hinzugefügt wurden, erstellen Sie alle BAPI-bezogenen Spalten, die die Import- und Exportparameter in der Funktion widerspiegeln (z. B. PURCHASEORDER, PO_ITEM, DELIVERY_DATE, QUANTITY usw.).
BAPI ausführen
Um die Kompilierung der Staging-Tabellendaten und die Ausführung des BAPI über RFC zu starten, verwenden Sie eine Aktion für das Ereignis eines Geschäftsobjekts/einer Tabelle.
Es gibt eine Aktion vom Typ RFC und vier Optionen:
-
BAPI_OBJCL_CHANGE
-
BAPI_OBJCL_CREATE
-
BAPI_OBJCL_DELETE
-
BAPI_TRANSACTION_COMMIT
In App Builder Version 2.6 und früher ist die verwendete Aktion vom Typ Plugin, heißt Execute BAPI und wird dem Insert-Ereignis einer neu erstellten Triggertabelle hinzugefügt.
Die Triggertabelle kann einen beliebigen Namen haben (z. B. BAPITrigger
), aber das Plugin erfordert die Definition bestimmter Spalten, auf die während der Ausführung verwiesen werden kann. Diese Spalten sind:
-
BAPITriggerID ist eine neue UUID().
-
SourceDataSourceID ist die DataSourceID der lokalen Datenquelle, in der sich die Staging-Tabellen befinden.
-
TargetDatasSourceID ist die DatasourceID der SAP Datenquelle, in der das BAPI ausgeführt wird.
-
FunctionModule sind die Namen der BAPI-Funktionsmodule, die Sie auslösen möchten, getrennt durch Kommas. (BAPI_TRANSACTION_COMMIT wird als letztes Modul aufgeführt, da es die vorherigen BAPI-Aktionen festschreibt.)
-
_Id ist der FK zur BAPI-Staging-Tabelle und bestimmt, welcher Datensatz in die Ausführung übergeben wird
Beispiele für BAPI-Funktionsbausteine
Nachfolgend sind einige der zahlreichen BAPIs aufgeführt, die vom App Builder ausgeführt werden können. Die übergeordnete Komponente des BAPIs ist nummeriert, die untergeordneten Komponenten sind darunter aufgeführt.
-
BAPI_PO_CREATE1
: Zum Anlegen einer neuen Bestellung/POHEADER, /POHEADERX, /POITEM, /POITEMX, /POSCHEDULE, /POSCHEDULEX, /POCOND, /POCONDX, /POEXPIMPITEM, /POEXPIMPITEMX, /POTEXTHEADER, /EXTENSIONIN
-
BAPI_PO_CHANGE
: Wird verwendet, um Werte einer bestehenden Bestellung zu aktualisieren./POHEADER, /POHEADERX, /POITEM, /POITEMX, /POSCHEDULE, /POSCHEDULEX, /POCOND, /POCONDX, /POEXPIMPITEM, /POEXPIMPITEMX, /POTEXTHEADER, /EXTENSIONIN, /POPARTNER
-
BAPI_PO_RELEASE
: Wird verwendet, um eine Bestellung nach der Bearbeitung freizugeben. -
BAPI_PO_GETDETAIL
: Dient zum Abrufen der Kopfnotizen und Textwerte der Bestellung._PO_GETDETAIL/RETURN, PO_HEADER_TEXTS
-
BAPI_SALESORDER_CREATEFROMDAT2
: Wird zur Erstellung von Kundenaufträgen verwendet/ORDER_HEADER_IN, /ORDER_PARTNERS, /ORDER_ITEMS_IN, /ORDER_SCHEDULES_IN, /RETURN
-
BAPI_CONTRACT_CREATEFROMDATA
: Wird zum Erstellen von Verträgen verwendet/CONTRACT_HEADER_IN, /CONTRACT_PARTNERS, /CONTRACT_PARTNERS, /CONTRACT_ITEMS_IN
-
BAPI_EXCHANGERATE_GETDETAIL
: Wird zum Abrufen von Wechselkursen verwendet. -
Z_ADAPT_DATA_EXTRACT
: Eine benutzerdefinierte Funktion zum Abrufen von Informationen zu Investitionsplänen.