Beta

This SAP Connector is in beta The SAP Connector is not yet publicly available. We are actively working on its completion. If you would like early access, please contact us.

Contact us →
Funktionsaufrufe

RFC / BAPI

Direkter Aufruf von SAP-Funktionsbausteinen. Für komplexe Logik und Transaktionen.

Was ist RFC/BAPI?

RFC (Remote Function Call) ist SAPs Protokoll zum Aufruf von ABAP-Funktionsbausteinen. BAPIs (Business Application Programming Interfaces) sind standardisierte Geschäftsfunktionen, die SAP für externe Aufrufe freigibt.

Vorteile

  • • Volle SAP-Funktionalität
  • • Transaktionen mit Commit
  • • Custom Z-Funktionsbausteine
  • • Komplexe Geschäftslogik

Voraussetzungen

  • • ZATW Connector erforderlich
  • • Funktionsbaustein in Allowlist
  • • S_RFC-Berechtigung

Operationen

Call Function

Einzelner Funktionsaufruf. Ideal für einfache Abfragen oder Aktionen.

Call Multiple (Stateful)

Mehrere Funktionen in einer SAP-Session. Für Transaktionen mit COMMIT.

Die COMMIT-Regel

Wichtig

Ein BAPI-Aufruf speichert Daten oft nur im Zwischenspeicher (LUW). Für persistente Speicherung muss BAPI_TRANSACTION_COMMIT aufgerufen werden.

COMMIT nötig

CREATECHANGEDELETESAVEPOSTBOOK

BAPIs mit diesen Suffixen ändern Daten und benötigen einen Commit.

Kein COMMIT

GETGETLISTGETDETAILEXISTENCECHECK

Lesende BAPIs benötigen keinen Commit.

Node-Optionen

OptionStandardBeschreibung
Auto CommitfalseBAPI_TRANSACTION_COMMIT nach Erfolg aufrufen
Check RETURNtrueRETURN-Struktur auf Fehler prüfen
Throw on BAPI ErrortrueBei Fehler Workflow abbrechen

Häufige BAPIs

KategorieBeispiele
GETBAPI_CUSTOMER_GETDETAIL, BAPI_MATERIAL_GET_DETAIL
GETLISTBAPI_SALESORDER_GETLIST, BAPI_PO_GETITEMS
CREATEBAPI_SALESORDER_CREATEFROMDAT2, BAPI_PO_CREATE1
CHANGEBAPI_SALESORDER_CHANGE, BAPI_MATERIAL_SAVEDATA

Beispiel: Kundendetails abrufen

BAPI_CUSTOMER_GETDETAIL
// Node-Konfiguration
Operation: Call Function
Function Module: BAPI_CUSTOMER_GETDETAIL

// Import Parameter
{
  "CUSTOMERNO": "0000012345"
}

// Ergebnis enthält:
// - CUSTOMERADDRESS (Struktur)
// - CUSTOMERGENERALDETAIL (Struktur)
// - RETURN (Fehlermeldungen)

Beispiel: Auftrag anlegen (mit Commit)

Auftrag mit Commit
// Node-Konfiguration
Operation: Call Multiple (Stateful)

// Schritt 1: Auftrag anlegen
Function: BAPI_SALESORDER_CREATEFROMDAT2
Import: {
  "ORDER_HEADER_IN": { ... },
  "ORDER_ITEMS_IN": [ ... ]
}

// Schritt 2: Commit
Function: BAPI_TRANSACTION_COMMIT
Import: { "WAIT": "X" }

Auto Commit

Alternativ kannst du die Option "Auto Commit" aktivieren – dann wird der Commit automatisch ausgeführt.

Weiterführende Themen