BTP - Business Configuration (Anlage)
In diesem Artikel geht es um die Anlage von Pflegeviews im ABAP Environment zur Pflege von Daten und zum späteren Transport der Einstellungen.
Inhaltsverzeichnis
Wie pflegt man eigentlich Einstellungen und Tabellen, wenn es keine SAP GUI und damit keine SM30 gibt? In diesem Artikel werden wir etwas genauer auf die Anlage von Pflegeobjekten eingehen.
Einleitung
Die Pflege und Verteilung von Customizing ist im SAP Ökosystem schon immer zentraler Bestandteil der Pflege und Erweiterung des Systems. Um sicher zu stellen, dass nur Einstellungen ins Produktionssystem kommen, die bereits auch getestet wurden, werden die Einstellungen über Transporte verteilt. Dazu verwenden wir im System Pflegeviews, damit wir über die Transaktion SM30 oder eine eigene Transaktion, die Daten ändern und aufzeichnen können.
Im ABAP Environment gibt es dafür die neue Funktionalität der Business Configuration (BC). Hierbei wird auf einer Tabelle ein RAP Modell erstellt, um die Daten über eine Fiori App pflegbar zu machen. In diesem Zusammenhang gibt es eine Reihe von neuen Objekten, auf die wir in diesem Artikel näher eingehen wollen.
Tabelle
Dazu definieren wir uns im ersten Schritt eine Tabelle, für die wir eine Pflege anlegen möchten. Über die ABAP Development Tools legen wir nun auf dem Paket die neue Tabelle an. Per Rechts-Klick das Paket und über "New -> Other Repository Object" starten wir die Anlage und suchen nach "Database table".
Nun befüllen wir den Namen und die Beschreibung und lassen uns die Tabellen anlegen.
Diese Tabelle besitzt einen eigenen Schlüssel und einige Felder für die Pflege.
@EndUserText.label : 'Business Configuration'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zbs_dmo_bc {
key client : abap.clnt not null;
key config_id : zbs_dmo_config_id not null;
description : abap.char(60);
is_used : abap_boolean;
is_mandatory : abap_boolean;
processes : abap.int1;
working_class : abap.char(32);
configdeprecationcode : config_deprecation_code;
last_changed_at : abp_lastchange_tstmpl;
local_last_changed_at : abp_locinst_lastchange_tstmpl;
}
Folgende Anforderungen gibt es an die Tabelle, bevor der Generator die entsprechenden Objekte generieren kann:
- dataMaintenance - Attribut muss auf #ALLOWED stehen, damit die Pflege der Daten möglich ist.
- Felder - Schlüsselfeld muss mit Datenelement und Domäne ausgestattet werden. Weiterhin werden einige Felder benötigt, die als technische Grundlage dienen (LAST_CHANGED_AT, LOCAL_LAST_CHANGED_AT).
Generierung
Ähnlich wie beim RAP Generator, können wir uns nun alle relevanten Objekte generieren lassen. Dazu wählen wir über das Kontextmenü der Tabelle die Option "Generate ABAP Repository Objects...".
Im nächsten Schritt startet nun der Wizard, wo wir auch die anderen Generatoren für die RAP Objekte finden. Da wir die Business Configuration erzeugen wollen, wählen wir den Generator für "Maintenance Object" und bestätigen die Auswahl.
Es werden nun die einzelnen Schritte angezeigt, wo du noch die Möglichkeit hast, die Namen und Beschriftungen der Objekte anzupassen. Bei "Scenario Options" können Optionen gewählt werden, ob zum Beispiel die Kopieren-Aktion angeboten wird, ob Konsistenzchecks generiert werden. Hier wird auch der Name der abstrakten Entität zum Kopieren geändert.
Im Abschnitt "BC Maintenance" wir der Name des Transport-Objekts und des Maintenance-Objekts angegeben, diese können ebenfalls angepasst werden.
Der Abschnitt "Data Model" umfasst die Hauptobjekte des Datenmodells, im unteren Abschnitt befindet sich aktuell die gewählte Tabelle, hier können aber weitere Tabellen angegeben werden. Hier werden weitere Informationen zu Draft Objekten und Texten gepflegt.
Im Abschnitt "Behavior Implementations" werden die Klassen definiert, in denen später die Logik, wie Ermittlungen und Validierungen, entwickelt werden können.
Im letzten Abschnitt "Business Service" wir der Name des Service Bindung und der Service Definition hinterlegt. Diese stellen den Zugriff nach Außen als API zur Verfügung.
Zum Abschluss erhalten wir noch eine Liste der Objekte, die generiert werden soll und können die verschiedenen Objekte einmal prüfen, bevor sie dann im System angelegt werden.
Maintenance Object
Bei diesem Objekt handelt es sich um ein neues Objekt, welches die Funktionen der BC steuert. Hier können die unterschiedlichen Dinge eingestellt und konfiguriert werden.
Die Möglichkeiten der Konfiguration sind recht umfangreich, sodass wir diese in einem späteren Artikel durchgehen werden. Im Moment müssen wir hier keine Einstellungen vornehmen, der Generator hat bereits die wichtigsten Punkte für uns erledigt.
Transport Object
Das Transportobjekt ist ein neues Objekt, um Transporteinstellungen zu hinteregen. Aktuell ist das Objekt nur über die JSON-Ansicht in Eclipse sichtbar und nur einige Einstellungen können geändert werden.
Berechtigung
Bevor wir allerdings mit der Business Configuration arbeiten können, müssen wir uns entsprechende Berechtigungen erstellen, ansonsten können die Einstellungen nicht gepflegt werden.
IAM App
Dazu legen wir uns im ersten Schritt eine IAM App an und verwenden dabei den Typ mit der Endung MBC.
Im nächsten Schritt ordnen wir im Reiter "Service" den erstellten Service von der Business Configuration zu. Der Service wir immer als OData v4 und UI Service angelegt.
Nach der Zuordnung ist der Service entsprechend im Reiter sichtbar.
Im nächsten Schritt benötigen wir noch die Berechtigungen zum Zugriff auf die Daten, diese ordnen wir im Reiter "Authorizations" zu. Dabei weisen wir zwei Einträge zu. Wir benötigen Berechtigungen zum Lesen der Änderungsdokumente der Tabelle, da hier auch die Änderungsbelege gespeichert werden. Und Anzeige, sowie Bearbeitung, für Tabelle und den Core Data Service, der nach außen freigegeben wird.
Business Catalog
Im nächsten Schritt benötigen wir einen Business Catalog, die eigentliche Rolle, die wir dann dem Anwender zuordnen können. Entsprechend geben wir dem Katalog einen Namen und eine Beschreibung.
Im Reiter "Apps" ordnen wir die IAM App mit der Endung MBC zu. Hier nicht vergessen über "Publish Locally" den Katalog im System freizugeben, um ihn dann einer Rolle zuordnen zu können.
Nutzung
Wir können wir nun die Daten in unserer Tabelle pflegen? Dazu gehen wir in die App "Custom Business Configurations" (F4579), diese finden wir im Business Catalog "Customizing - Business Configuration" (SAP_CA_BC_IC_LND_PC).
Dort finden wir alle BC Objekt, wofür wir auch Berechtigungen haben. Über die Suche können wir die Objekte einschränken, um unsere Pflege/Tabelle zu finden.
Wenn wir unser Objekt wählen, gelangen wir in die Anzeige der Tabelle und können per "Edit" Button die Bearbeitung in der App starten. Sollte der Button nicht klickbar sein, fehlen sehr wahrscheinlich noch die passenden Berechtigungen.
Die ersten Prüfungen sind bereits in der App aktiv und weisen uns auf Fehler oder fehlende Informationen hin.
Fazit
Mit der Anlage der Tabelle und einigen Informationen erhalten wir bereits eine einfache Pflegeoberfläche für unsere Tabelle. Wir sparen uns damit die Anlage einer eigenen UI über eine App und erhalten weitere Komfortfunktionen für die Arbeit mit den Daten.