Modernes ABAP

ABAP Cloud

(C) Brandeis Consulting.

ABAP Varianten

Standard ABAP

  • Normales ABAP wie bisher
  • Kann auf alle Entwicklungs-objekte der SAP zugreifen
  • Alle Oberflächentechnologien sind erlaubt, auch Dynpros und WebDynpro

ABAP for Key Users

ABAP for Key Users is a subset of the programming language ABAP. This variant is available to key users to implement extensions using the SAP Fiori extensibility apps Custom Fields and Logic and Custom Business Objects.

TLDR: Nix für Profis wie Euch!

ABAP for Cloud Development

100% Cloud kompatibel. Darum ist es das Folgende nicht erlaubt:

  • Zugriff auf nicht freigegebene Schnittstellen
  • Verwendung von Dynpros, WebDynpro etc.
  • Obsolete Sprachkonstrukte
(C) Brandeis Consulting.

Einstellung der Sprachversion

Die Sprachversion kann man auf On-Premise Systemen einstellen, entweder

  • In der Softwarekomponente (Report RSMAINTAIN_SWCOMPONENTS)
  • Im Entwicklungspaket (Default-Sprachversion)
  • In der ABAP Klasse

In der Public Cloud gibt es nur ABAP Cloud.

(C) Brandeis Consulting.

Was bedeutet ABAP Cloud Sprachversion

Der Code darf

  • keine SAP Datenbanktabellen mehr ansprechen. Statt dessen müssen die Views des VDM verwendet werden. Beispiel: I_SalesDocumentItem statt VBAP
  • keine ABAP Objekte verwenden, die von der SAP nicht freigegeben sind. Beispiel: Fuba READ_EXCHANGE_RATE wurde (noch) nicht freigegeben
  • keine obsoleten Sprachkonstrukte nutzen

Alle Verstöße gegen eingestellte Sprachversion führen zu Syntaxfehlern.

Anwendungen, die 100% auf ABAP Cloud basieren, können auch auf S/4HANA Public Cloud laufen.

(C) Brandeis Consulting.

Freigabestatus am Beispiel der MARA

  • Der API-Status ist im Properties-View von Eclipse zu finden:
  • Relevant für die Verwendung ist die C1 Freigabe:
    • Contract C1 not yet set - Kann noch freigegeben werden.
    • Not to Be Released (, Stable) - Wird niemals freigegeben
    • Released - Ist freigegeben und kann in ABAP Cloud verwendet werden

Im Bereich Successors kann man die freigegebenen Nachfolger für das Entwicklungsobjekt sehen.

(C) Brandeis Consulting.

3-Tier Model Artikel von Boris Gebhardt

(C) Brandeis Consulting.

3-Tier Model

Auch auf On-Premise Systemen sollten neue Entwicklungen in Zukunft mit ABAP Cloud entwickelt werden. Da das nicht immer 100% möglich ist, hat die SAP das 3-Tier Modell entwickelt:

Tier 1 (Alle Systemstände)

Reiner ABAP Cloud Code. Gleiches Entwicklungsmodell wie in der Public Cloud. Zu 100% Upgrade-Stabil.

Tier 2 (Private Cloud oder On-Premise)

Wrapper um Entwicklungsobjekte/Schnittstellen der SAP, die noch nicht freigegeben sind. Kunden werden von der SAP aufgefordert, den Customer Influence Channel zu nutzen, um fehlende APIs anzufordern.

  • Das DRY-Prinzip beachten
  • Mit jedem Upgrade prüfen, ob Schnittstellen von der SAP freigegeben wurden.

Tier 3 (Private Cloud oder On-Premise)

Der ganze alte Sch...rott. Alle alten Entwicklungen, die noch nicht auf Tier 1/2 umgezogen wurden.

Eine Learning Journey dazu

(C) Brandeis Consulting.

Schreibende Änderungen an SAP Daten in ABAP Cloud

  • Niemals auf die DB-Tabelle
  • Über freigegebene Schnittstellen
  • Mit den RAP-Bussiness Objects über die EML
(C) Brandeis Consulting.

SAP S/4HANA Extensibility Guide

Alle wichtigen Infos sind von der SAP im SAP Extensibility Guide dokumentiert.

(C) Brandeis Consulting.

Übung

  • Lege eine ABAP-Klasse an, die das Interface IF_OO_ADT_CLASSRUN implementiert. Die Klasse soll die Sprachversion ABAP Cloud haben.
  • Versuche, in der Methode MAIN mit einer SELECT-Anweisung Daten aus der Tabelle VBAP zu lesen.
  • Schaue Dir die Fehlermeldungen an und prüfe den API-Status
  • Schaue Dir die Nachfolge-CDS-Views für die VBAP an
  • Lese per Assoziation noch zusätzlich die Materialgruppe
(C) Brandeis Consulting.