Wichtige Konzepte auf dem ABAP Technologiestack

(C) Brandeis Consulting.

Entwicklungsumgebungen und Oberflächen

SAP GUI

  • Alte Oberfläche für alles:
    • Entwicklung
    • Anwendung
    • Customizing
  • Transaktionsbasiert
  • Funktioniert nicht mit S/4HANA Cloud
  • Sah schon vor 20 Jahren total veraltet aus ;-)

Eclipse mit ADT

ADT = ABAP Development Tools

  • Neue Entwicklungsumgebung
  • Manche Objekte lassen sich nur hier anlegen:
    • CDS Views
    • AMDP Routinen
    • RAP Objekte

Fiori Apps

  • Anwendungsoberflächen für S/4HANA
  • Browserbasiert
  • Rollenbasiert
  • Responsive Design
  • anpassbar und erweiterbar
  • Start über das Fiori Launchpad
(C) Brandeis Consulting.

Mehrsystemlandschaft

Herausforderung

  • Alle Änderungen am System sollen nachvollziehbar sein
  • Es soll mit echten Daten getestet werden
  • Upgrades sollen keine technische Fehler verursachen
  • Während Upgrade-Phasen sollen weiterhin Korrekturen erstellt werden können
  • Auf produktiven Systemen sollen die Berechtigungen der Benutzer sehr begrenzt sein.
(C) Brandeis Consulting.

Mehrsystemlandschaft

Konzept

Es gibt mehrere Systemtypen. Typisch sind 3 Systeme, manchmal aber auch 2 oder 4 möglich:

  • Entwicklungssystem (DEV): Hier werden neue Anwendungen entwickelt, Änderungen vorgenommen und getestet.
  • Qualitätssicherungssystem (QAS): Wird verwendet, um Entwicklungen und Änderungen unter realen Bedingungen zu testen, bevor sie in das Produktionssystem übernommen werden.
  • Produktionssystem (PRD): Das Live-System, in dem die täglichen Geschäftsprozesse des Unternehmens ausgeführt werden.

Bei sehr kleinen Kunden wird das QAS System manchmal durch einen weiteren Mandant auf dem DEV System ersetzt.

Bei großen Installationen gibt es manchmal noch ein weiteres System, auf dem die Konsistenz der Transporte vor dem Import in PRD getestet werden können.

(C) Brandeis Consulting.

Transporte

Herausforderungen

  • Korrekturen und neue Entwicklungen von DEV über QAS in PRD bringen
  • Dokumentation der Systemänderungen
  • In sich konsistente Änderungen auf PRD bringen, z.B. größere Features
  • Nicht immer alles auf PRD bringen müssen, z.B. bei dringenden Korrekturen
(C) Brandeis Consulting.

Transporte

Konzept

  • Sogenannte Transporte bündeln Änderungen
  • Die Transporte bestehen aus einer Objektliste
  • Bei Änderungen von Entwicklungsobjekten erfolgt eine automatische Änderungsaufzeichnung. Der Entwickler kann einen passenden Transportauftrag auswählen.
  • Sobald ein Entwicklungsobjekt auf einem Transport in der Objektliste steht, ist es für andere Transporte gesperrt
  • Wenn alle Änderungen für einen Transport durchgeführt wurden, kann dieser freigegeben werden.
  • Mit der Freigabe eines Transportes passiert das folgende:
    • Es werden die Transportdateien aus dem zu dem Zeitpunkt aktiven Zustand der Objekte erzeugt
    • Die Objekte werden wieder entsperrt, d.h. sie können in einem anderen Transport landen
    • ggf. wird der Import in ein Folgesyste getriggert
(C) Brandeis Consulting.

Transporte

Typische Komplikationen

  • Unvollständige Transporte - Es fehlen Objekte im Zielsystem oder die Objekte sind in einem alten Zustand. Lösung: ein weitere Transport wird angelegt, der die benötigten Objekt enthält.
  • Überholer - Ein Transport niedriger Prio wird freigegeben, z.B. ein neues Feature. Da es keiner testen wollte, bleibt das erstmal in QAS. Dann kommt ein Transport der einen schlimmen Fehler behebt. Der enthält die gleichen Objekte wie der erste Transport. Der Fehler wird damit erfolgreich behoben. Nach dem Import des ursprünglichen Transports ist der Fehler aber wieder da.

Grundregeln

  • Die Reihenfolge der Freigabe sollte der Reihenfolge des Imports im PRD entsprechen. Alles andere muss gründlich geprüft werden.
  • Die Vollständigkeit sollte man immer vor der Freigabe noch mal prüfen.
  • Im QAS System sollte möglichst schnell getestet werden
(C) Brandeis Consulting.

Mandantenkonzept

Herausforderung

Ein System für mehrere Geschäftseinheiten im ERP

  • Datenisolation
  • Teilung von Ressourcen
  • Saubere Trennung der Berechtigungen und Benutzer
  • Wenig Administrativer Aufwand
  • Flexibel skalierbar und erweiterbar um weitere Geschäftseinheiten
(C) Brandeis Consulting.

Mandantenkonzept

Lösung

  • Jede Anwendungs- und Customizingtabelle enthält das Schlüsselfeld Mandant
  • Beim der Anmeldung am System meldet man sich an genau einem Mandanten an
  • Die Daten werden automatisch nur für diesen Mandanten gelesen. Mandantenübergreifender Zugriff ist (fast) nicht möglich.
  • Auch in SELECT-Abfragen werden die Daten automatisch gefiltert
(C) Brandeis Consulting.

Berechtigungen (Rollen & Berechtigungsobjekte)

Das Berechtigungs- und Rollenkonzept in einem SAP-System ist zentral für die Sicherheit und die effiziente Verwaltung von Zugriffsrechten.

  1. Berechtigungsobjekte: Bestehen aus einer Aktivität und Feldern.

  2. Berechtigungen: Konkretisierte Ausprägungen von Berechtigungsobjekten. Sie definieren, welche Aktivität ein Benutzer auf einem bestimmten Objekt ausführen darf.

  3. Rollen: Sammlungen von Berechtigungen, die zusammengefasst werden, um bestimmte Arbeitsaufgaben zu ermöglichen. Rollen erleichtern die Verwaltung von Berechtigungen.

  4. Einfache Rollen: Beinhalten Berechtigungen für einen bestimmten Bereich oder Prozess. Sie sind auf spezifische Aufgaben oder Funktionen ausgerichtet.

  5. Sammel Rollen: Bündeln mehrere einfache Rollen. Sie werden verwendet, um komplexere Aufgabenbereiche abzudecken.

  6. Benutzerzuordnung: Benutzer erhalten Zugriff auf Systemfunktionen, indem ihnen Rollen zugewiesen werden.

(C) Brandeis Consulting.

Berechtigungen

SAP_ALL

Das Profil SAP_ALL enthält alle Berechtigungen eines Systems.

Transaktion SU53

Jede Berechtigungsprüfung wird protokolliert. Mit der Transaktion SU53 kann man sich fehlende Berechtigungen anzeigen lassen, nach dem die Prüfung gescheitert ist.

(C) Brandeis Consulting.

Namensräume

Z und Y Namensraum

Kunden dürfen Entwicklungsobjekte anlegen, die mit Z und Y beginnen. Sie sind selber dafür verantwortlich, dass es keine Namenskollisionen innerhalb des eigenen Unternehmens gibt.

Präfix-Namensräume /ABC/

Partner und manche Module/Komponenten der SAP nutzen einen sogenannten Partnernamensraum. Dieser besteht aus einem 3-5 Stelligen Kürzel zwischen zwei Schrägstrichen. Alle Entwicklungsobjekte müssen damit beginnen.

Die Zuteilung von Namensräumen erfolgt durch die SAP.

SAP Namensraum

Alles andere nutzt die SAP für eigene Entwicklungen.

(C) Brandeis Consulting.

Objektkatalog

Im Objektkatalog sind alle Entwicklungsobjekte registriert. Es handelt sich um die Tabelle TADIR. Hier stehen wichtige Informationen über die Objekte, die unter anderem für die Transporte wichtig sind:

  • Objekttyp & Name
  • Paketzuordnung
  • Originalsystem
  • Ersteller
  • Datum Erstellung
  • Lösch-Flag
  • Originalsprache
  • Flag, ob das Objekt generiert wurde
(C) Brandeis Consulting.

Pakete und lokale Objekte

Alle Entwicklungsobjekte liegen in einem Paket (aka. Entwicklungsklasse). Das Paket ist in erster Linie ein Ordungskriterium.
Das Paket

  • kann lokal sein oder eine Transportschiene festlegen
  • ist kein Namensraum
  • kann nachträglich geändert werden

Das Paket $TMP ist immer lokal. Hier werden die Objekte dem jeweiligen Benutzer zugeordnet.

(C) Brandeis Consulting.

Data Dictionary aka. DDic

Das Data Dictionary in SAP ist ein zentrales Repository, in dem alle Datenbankobjekte und andere Modellierungsobjekte definiert werden:

  • Datenbanktabellen
  • Datenbankviews
  • Strukturen
  • Datenelemente
  • Domänen

Früher war das DDic dafür zuständig auf unterschiedlichen Datenbanksystemen (Oracle, IBM, Microsoft, ...) die entsprechenden Datenbankobjekte zu generieren. Heute gibt es fast nur noch die SAP HANA Datenbank.

(C) Brandeis Consulting.

Speichern und Aktivieren

Die Definition von Entwicklungsobjekte in SAP werden in einem Repository in Datenbanktabellen gespeichert. Erst mit der Aktivierung werden daraus die Laufzeitobjekte generiert. Somit gibt es ggf. zwei Versionen von einem Objekt:

  • die aktive Version - Entspricht dem Laufzeitobjekt und
  • die modifizierte Version - Diese enthält alle Änderungen, die ggf. gemacht wurden, aber noch nicht aktiviert sind.
(C) Brandeis Consulting.