SAP BAPI-Ausführungshandbuch für Jitterbit App Builder
Übersicht
Dieser Leitfaden beschreibt den Prozess der Ausführung von SAP BAPI-Funktionsmodulen aus App Builder 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
An App Builder Um eine Verbindung mit SAP herzustellen und BAPIs auszuführen, muss auf Ihrer Instanz ein Softwarepaket mit den zusätzlichen SAP Komponenten installiert sein. App Builder Der Name der ZIP-Datei enthält am Ende der Version ThirdPartySAP (d. h. App Builder-3.3.21255ThirdPartySAP.zip). Dieses Paket enthält SAP DLLs (Dynamic Link Libraries) im App Builder/Bin-Ordner, die für die Verbindung zu SAP erforderlich sind von App Builder.
SAP Datenquelle in App Builder
Eine SAP Datenquelle in Ihrem App Builder Es wird angenommen, dass eine Instanz mit der Datenquelle verknüpft ist, von der aus Sie das BAPI aufrufen möchten. Wenn Sie keine SAP Datenquelle eingerichtet haben, lesen Sie diese Dokumentation und richten Sie eine ein!
BAPIs in App Builder
App Builder nutzt die Kompilierung lokaler Staging-Tabellen, um Daten über die BAPI-Ausführung an SAP zu übergeben. Jede Komponente der BAPI-Funktion wird durch eine Staging-Tabelle und Spalten dargestellt, die Werte für die entsprechenden Daten enthalten, die das Modul erwartet. Darüber hinaus gibt es BAPI-Parameterspalten, App Builder basiert auf der Definition spezifischer Spalten, die während der Ausführung alle Staging-Tabellen miteinander verknüpfen.
Diese App Builder Bestimmte Spalten haben das Präfix '_' und werden nicht an SAP gesendet, da ihr Zweck ausschließlich darin besteht, die Ausführung von App Builder 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 Import Pattern in der SAP Datenquelle erstellt werden.
Wenn Sie sich dazu entschließen, die Staging-Tabellen manuell zu erstellen, sollten Sie die Struktur und die Parameter des BAPI, das Sie ausführen möchten, genau kennen. Die Struktur ist entscheidend, um App Builder um das BAPI auszuführen.
BAPIs können Importparameter haben (Daten, die von App Builder nach SAP) und Exportparameter (Daten, die von SAP zurück nach App Builder). BAPIs können eine übergeordnete/untergeordnete Struktur haben, wobei die übergeordnete Komponente die höchste Datenebene und die untergeordnete(n) Komponente(n) eine niedrigere Datenebene enthält. Die meisten BAPIs haben auch 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 AutoGenerate. -
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 als Nächstes die Spalte
_index
wo ein Indexierungswert gespeichert und während der Ausführung referenziert werden kann. -
Fügen Sie als Nächstes alle lokalen FK-Spalten oder nützlichen Prüfinformationen hinzu, mit dem Präfix
_
, das dabei hilft, die Datensätze in Ihrem Datenmodell auf die BAPI-Tabellendatensätze zu verweisen. (d. h._POHeaderID
ermöglicht uns die Abfrage von BAPI-gespeicherten Daten basierend auf einem lokalen PO-Datensatz,_ExecutedOn
um den Verlauf zu verfolgen) -
Nach App Builder Bestimmte Spalten werden hinzugefügt. 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 aufzurufen, 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 In 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 newUUID().
-
SourceDataSourceID ist die DataSourceID der lokalen Datenquelle, in der die Staging-Tabellen gespeichert sind.
-
TargetDatasSourceID ist die DatasourceID der SAP Datenquelle, in der das BAPI ausgeführt wird.
-
FunctionModule sind die durch Kommas getrennten Namen der BAPI-Funktionsmodule, die Sie auslösen möchten. (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 vielen BAPIs aufgeführt, die ausgeführt werden können von App Builder. Die übergeordnete Komponente des BAPI wird nach Nummer aufgelistet und die einzelnen untergeordneten Komponenten werden darunter aufgelistet.
-
BAPI_PO_CREATE1
: Wird zum Erstellen einer neuen PO verwendet/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
: Wird verwendet, um die Kopfnotizen und Textwerte der Bestellung abzurufen._PO_GETDETAIL/RETURN, PO_HEADER_TEXTS
-
BAPI_SALESORDER_CREATEFROMDAT2
: Wird zum Erstellen von Verkaufsaufträ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.