Core Data Services (CDS) ABAP

CDS und OData

(C) Brandeis Consulting

Grundlagen

Was ist OData?

  • OData steht für Open-Data-Protokoll und wurde ursprünglich von Microsoft entworfen
  • OData enthält "SQL-Like" Anweisungen wie Filter

Wofür?

  • OData ist eines Standard-Protokol der SAP für modernen Datenaustausch.
  • OData ist die Grundlage ALLER Fiori-Anwendungen!
(C) Brandeis Consulting

CDS und OData - aber wie?

SEGW und RDS

  • Der "Klassiker" aus grauer Vorzeit (seit ABAP 7.00)
  • Seit ABAP 7.50 mit SADL und RDS
    • SADL: Service Adaption Description Language
    • RDS: Referenced Data Source
  • ABER: die meiste Flexibilität, da Möglichkeit der Redefinition

Per Annotation

@OData.publish: true

  • "Neu" ab ABAP 7.50
  • Aus der CDS wird direkt ein OData-Service

Service Definition und Service Binding

  • seit S/4HANA 1809
  • Grundlage für RAP
(C) Brandeis Consulting

Veröffentlichung von Service Bindings

Lokale Veröffentlichung kann nicht transportiert werden! Nur für Testzwecke bzw. die lokale Preview der App.

OData V2

Transaktion /IWFND/MAINT_SERVICE

OData V4

Transaktion /IWBEP/V4_ADMIN

(C) Brandeis Consulting

Metadaten eines Services

Service-URL mit $metadata ergänzen:
<host>/sap/opu/odata4/sap/z_99_service/srvd/sap/z_00_service/0001/$metadata

(C) Brandeis Consulting

Aufrufen eines Entity Set

<host>/sap/opu/odata4/sap/z_99_service/srvd/sap/z_00_service/0001/<EntitySetName>

Der Entity Set Name ist der in der Service Definition Datei vergebene Name. Man findet ihn auch in den Metadaten unter EntitySet Name:

(C) Brandeis Consulting

Datenformat

$format=json

Mögliche Formate:

  • xml - Nur V2
  • json - V2 & V4
  • xlsx - Excel Download, direkt aus V2!
(C) Brandeis Consulting

Debug Tools

?$format=json&sap-ds-debug=true


https://s4d.sap.kli-int.com/sap/opu/odata/sap/ZDKUI_I_TASKS/Tasks?$format=json&sap-ds-debug=true

(C) Brandeis Consulting

Weitere Parameter

  • &$top=5 => nur 5 Sätze holen
  • &$skip=10 => die ersten 10 überspringen (sinnvoll für Paging!)
  • &$orderby=Priority desc => sortiert nach Priorität absteigend
  • Auflösen von Assoziationen mit expand:
    /sap/opu/odata/sap/Z_99_SERVICE_V2/Users?$expand=to_TasksToDo
(C) Brandeis Consulting