SAP BW/4HANA: Datenextraktion mit OData ODP effizient umsetzen

OData in Kombination mit ODP bietet eine performante und standardisierte Methode zur Datenextraktion aus SAP BW/4HANA – ganz ohne zusätzliche Lizenzen. In diesem Beitrag erfahren Sie, wie Sie ODP-Quellen über die SAP Gateway Foundation als OData-Services verfügbar machen und nahtlos in externe Anwendungen integrieren.

NTT DATA Business Solutions | April 10, 2025 | 5 min

Von Open Hub zu OData – moderne Alternativen für die Datenbereitstellung

Die Datenextraktion aus SAP BW-Systemen war lange Zeit eng mit dem Open Hub verbunden – ein leistungsfähiges, aber lizenzpflichtiges Werkzeug. Mit SAP BW/4HANA und der Integration des Open Hub in das Lizenzmodell ergeben sich neue Möglichkeiten: OData in Verbindung mit der ODP-Schnittstelle (Operational Data Provisioning) bietet eine moderne, lizenzfreie und flexible Option zur Bereitstellung von Daten für externe Systeme.

Vorteile von OData mit ODP im Überblick

  • Keine zusätzlichen Lizenzkosten bei BW/4HANA

  • Standardisierte Schnittstelle für Datenzugriff via REST

  • Unabhängiger Datenabruf (Pull-Mechanismus) durch OData-Client

  • Delta-Mechanismus für performante Folge-Exporte

Diese Methode eignet sich ideal für analytische Anwendungen, Self-Service BI-Szenarien oder individuelle Datenservices.

Voraussetzungen für den Einsatz

  • SAP BW 7.4 oder höher (idealerweise BW/4HANA 2.0)

  • SAP Gateway Foundation (lokal oder extern)

  • Ein vorhandener BW InfoProvider mit persistierten Daten

  • OData Client zur Nutzung des Services

Schritt-für-Schritt: So richten Sie die OData-Datenextraktion ein

1. Neues OData-Projekt in der SEGW anlegen

Öffnen Sie die Transaktion SEGW und legen Sie ein neues Projekt an. Vergeben Sie einen technischen Namen im Kundennamensraum (Z*) und ordnen Sie es einem Paket zu (siehe Bild 1). Dieses Projekt bildet die Grundlage für Ihre OData-Schnittstelle.

2. Redefinition eines ODP-Objekts starten

Wählen Sie im Projektexplorer das Kontextmenü und gehen Sie zu Redefine → ODP Extraction (Bild 2).
Geben Sie anschliessend den ODP-Kontext (z. B. SAPI, BW, BW/4HANA) ein und wählen Sie das gewünschte ODP-Objekt (z. B. einen DataStore-Objekt-Export).

3. ODP-Objekt auswählen und Datenquelle definieren

Nach Auswahl des ODP-Objekts öffnet sich ein Assistent. Im ersten Schritt (Bild 3) legen Sie fest, welche Komponenten Sie importieren möchten – etwa Datenobjekte, Texte oder Hierarchien.

4. Felder selektieren

Im nächsten Schritt (Bild 4) wählen Sie die relevanten Felder für Ihre OData-Schnittstelle aus. Hier empfiehlt sich eine gezielte Auswahl, um die Nutzlast des Dienstes zu optimieren.

5. Dienstname und Entitäten festlegen

Definieren Sie einen sprechenden Service- und Entitätsnamen für Ihre Anwendung (Bild 5). Diese Namen erscheinen später im OData-Service und sollten eindeutig sowie verständlich sein.

Hinweis: Wenn Sie einige der aDSO-Felder einschränken möchten, heben Sie die Auswahl dieser Felder unter dem Entitätstyp «Factsof{service}» auf.

6. Laufzeitobjekte generieren

Über das Kontextmenü oder das Symbol in der Menüleiste (Bild 6) generieren Sie die benötigten ABAP-Laufzeitobjekte (Model- und Serviceklasse). Danach ist Ihr Datenmodell einsatzbereit.

Akzeptieren Sie die Voreinstellungen und klicken Sie auf das grüne Häkchen, um die ABAP-Objekte zu generieren.

7. OData-Service registrieren

Öffnen Sie die Transaktion /IWFND/MAINT_SERVICE (Bild 7) und fügen Sie Ihren neu generierten OData-Service hinzu. Wählen Sie das passende Systemalias und aktivieren Sie den Dienst.

Nach der Aktivierung kann der Service in einem externen OData-Client konsumiert werden – etwa in einem Browser, mit einem BI-Tool oder einer App.

 

Akzeptieren Sie die Standardeinstellungen und ändern Sie das Paket, wenn Sie diese Entwicklung transportieren möchten. Damit ist die Einrichtung des OData-Dienstes abgeschlossen.

Testen des OData-Dienstes mit Postman

Zum Testen Ihres OData-Dienstes können Sie entweder den nativen SAP Gateway Client in der Transaktion /IWFND/MAINT_SERVICE nutzen oder – wie in unserem Fall – ein externes Tool wie Postman.

Initialer Delta-Test mit Postman

Für unser Beispiel verwenden wir Postman, um eine erste Datenabfrage durchzuführen und dabei gleichzeitig den Delta-Modus zu aktivieren. Dieser ermöglicht es, bei späteren Aufrufen nur geänderte oder neue Datensätze abzurufen – ideal für inkrementelle Datenbeladung.

Schritt 1: URL vorbereiten

Die OData-URL setzt sich wie folgt zusammen (bitte Host und Port entsprechend Ihrer Umgebung anpassen):

http://<Host>:<Port>/sap/opu/odata/sap/ZORDERITEMS_2_SRV/FactsOfORDERITMS

Schritt 2: Authentifizierung

In Postman wechseln Sie auf die Registerkarte «Authorization» und hinterlegen dort Benutzername und Passwort für den SAP-Zugriff.

Schritt 3: Header setzen

Um den Delta-Modus zu aktivieren, muss folgender Header hinzugefügt werden:

Key = PREFER Value = odata.track-changes

Schritt 4: Anfrage ausführen

Klicken Sie auf «Send», um die Daten abzurufen. In der Antwort sehen Sie:

  • Die abgerufenen Datensätze

  • Am Ende der Nachricht: ein Delta-Token, z. B.
    D20211116152515_000030000

Die resultierenden Daten können dann eingesehen werden.

Am Ende der Nachricht sehen wir unser Delta-Token.

Delta-Abruf mit dem Token

Für Folgeabfragen, in denen Sie nur die seit dem letzten Abruf geänderten Datensätze erhalten möchten, nutzen Sie den zuvor erhaltenen Delta-Token:

http://<Host<Port>/sap/opu/odata/sap/ZORDERITEMS_2_SRV/DeltaLinksOfFactsOfORDERITMS(‘D20211116152515_000030000’)/ChangesAfter

Die Antwort enthält ausschliesslich geänderte oder neue Datensätze. Um den Datensatzstatus korrekt zu interpretieren, prüfen Sie in der Antwortfelder ODQ_ENTITYCNTR und ODQ_CHANGEMODE.

Monitoring und Fehlerbehandlung

Im Delta-Queue-Monitor der BW-GUI können Sie Ihre Anfragen nachvollziehen – inklusive der initialen Abfrage und der Folgeänderungen.

Sollte eine Datenanforderung fehlschlagen, kann der Dienst mithilfe des gespeicherten Delta-Tokens weiterhin alle Änderungen ab einem bestimmten Zeitpunkt nachladen.

Wenn Sie die angeforderten Delta-Änderungen analysieren müssen, können Sie dies mit dem EntitySet ‹DeltaLinksOfFactsOf[service]› erreichen.

Zusätzliche Optionen

  • Paginierung aktivieren:
    Für grosse Datenmengen empfiehlt sich folgender Header, um die Paketgrösse zu begrenzen:
    Header = Prefer Value = odata.maxpagesize=<n>
  • Filter anwenden:
    Um die Datenmenge einzugrenzen, können Sie Filter direkt in der URL übergeben. Beispiel:
    /sap/opu/odata/sap/ZORDERITEMS_2_SRV/FactsOfORDERITMS?$filter=PRODUCTID eq ‘MB-1034’ 

    Es sind auch mehrere Filterkombinationen möglich, je nach Datenbedarf.

Best Practices und Hinweise

  • Feldrestriktionen: Wenn nur bestimmte Felder bereitgestellt werden sollen, können diese gezielt abgewählt werden.

  • Delta-Funktion nutzen: Ideal bei regelmässigem Datenabruf mit hohem Volumen.

  • Namenskonventionen beachten: Für Übersicht und Wartbarkeit empfiehlt sich ein konsistentes Namensschema.

Fazit: Zukunftssichere Datenbereitstellung in SAP BW/4HANA

Die Nutzung von OData und ODP als Alternative zum Open Hub bietet Unternehmen eine flexible, standardisierte und kostenneutrale Möglichkeit zur Datenextraktion aus SAP BW/4HANA. Besonders in heterogenen Systemlandschaften oder bei Echtzeit-Datenanforderungen spielt diese Methode ihre Stärken aus.

Um mehr zu erfahren, oder diese technischen Inhalte im Detail zu besprechen, nehmen Sie bitte Kontakt mit uns auf.

Kontakt aufnehmen

Das könnte Sie ebenfalls interessieren

Sprechen Sie uns an

Sind Sie auf der Suche nach Antworten oder möchten Sie mehr Informationen über das Thema erhalten?

Nehmen Sie noch heute Kontakt mit uns auf und lassen Sie uns besprechen, wo Ihre Probleme liegen, was Sie erreichen wollen und wie wir Ihnen dabei helfen können.

Wir helfen Ihnen gerne weiter!