This is a test message to test the length of the message box.
Login
|

032: Recycling-Heroes - Tags and Types

110

In dieser Folge legen wir weitere Business Configurations an, die wir später in unserem Datenmodell brauchen. Einige der Eigenschaften heben sich dabei geändert und diese Änderungen schauen wir uns im Detail an.

Werbung


Einleitung

Willkommen zu einer neuen Folge für die Recycling-Heroes. Heute wollen wir die fehlenden Business Configurations anlegen, die wir für unsere nächste große Anwendung benötigen. Dabei schauen wir auch noch einmal auf die Fehler vom letzten Mal und schauen uns die Möglichkeiten zur Anpassung in der Business Configuration im Detail an.

 

Reuse Layer

Im ersten Schritt kümmern wir uns um die Struktur unserer Datenelement und Domänen. Aktuell haben wir den Prozess in unserer Konfiguration angelegt. Der Prozess wird aber auch an einer anderen Stelle benötigt, weshalb wir ihn erst einmal in das Paket für die Wiederverwendung schieben. Über die Funktion "Change Pakage Assignment" können wir Objekt einem anderen Paket zuordnen. Ist das Datenelement und die Domäne dann verschoben, können wir uns um die Anlage eines neuen übergreifenden Elements kümmern. Für die beiden neuen Objekte benötigen wir jeweils eine Beschreibung, hier verwenden wir das gleiche Element in beiden Entitäten. Auf Domäneben nicht vergessen, auch die Groß- und Kleinschreibung zu aktivieren, da wir hier Freitexte zulassen und nicht mit technischen Schlüsseln arbeiten.

 

Tags

Im nächsten Schritt definieren wir uns eine neue Tabelle für die Tags. Dabei gehen wir über das entsprechende Paket, welches wir in einer älteren Folge angelegt haben. Dort suchen wir nach "Database" um die Tabelle zu finden und den Anlage-Wizard zu starten. Nach Vergabe des Namens und der Beschreibung legen wir die neue Tabelle im System an. Wir benötigen zwei Felder, die TAG_ID und die Beschreibung. Für die Beschreibung verwenden wir unser neues Datenelement müssen aber für die TAG_ID ein neues Element anlegen. Über die Vorwärtsnavigation legen wir das neue Datenelement an und vergeben eine Beschreibung. Nicht vergessen die entsprechenden Tags mitzugeben, die dann später in der Fiori App auftauchen. Zum Abschluss der Anlage legen wir noch die Domäne an, da diese für die Business Configuration und als Schlüsselfeld benötigt wird. Da wir bei dieser Konfiguration auf UUIDs setzen und uns eine sprechende ID nicht so wichtig ist, definieren wir den Datentypen als RAW mit der Länge 16. Damit wir nun den Wizard auf der Tabelle ausführen können, müssen wir die Auslieferungsklasse auf C, wie Customizing, setzen und die Pflege erlauben. Zum Abschluss die Tabelle aktivieren.

Im nächsten Schritt können wir nun auf der Tabelle den Wizard starten, um die Business Configuration im System generieren zu lassen. Nach dem Start müssen wir das Paket für die Generierung angeben, hier hat sich soweit nichts am Flow geändert. Wir setzen das Objekt auf keinen Transport und wollen alle Transportfunktionalitäten deaktivieren, so wie wir es auch beim letzten Mal gemacht hatten. Nun können wir den verschiedenen Objekten die richtigen Namen geben. Benennne wir zuerst das Transport Objekt und das Maintenace Objekt um. Als Nächstes konfigurieren wir den Service der geniert wird und passen dann alle Namen für die Entitäten, den Singleton und die Core Data Services an. Zum Abschluss ändern wir den Namen der implementierenden Klasse, dabei brauchen wir den Consumption View nicht anzupassen, da wir nur den Interface Layer generieren. Die Generierung der Objekte dauert nun eine Weile.

Nach Generierung erhalten wir ein entsprechendes Popup und können ins Maintenance Objekt navigieren. Über dieses gelangen wir zum Service Bindung und müssen dieses ebenfalls noch aktivieren. Dazu über "Publish" die Freigabe triggern und wieder einen Moment warten. Ist der Service aktiviert, benötigen wir noch Berechtigungen, um die Pflege in der App durchführen zu können. Dazu wechseln wir in das Fiori Paket und legen eine neue IAM App an. Nach der Anlage ordnen wir den neuen Service unter dem Tab "Service" hinzu und fügen unter "Authorizations" die nötigen Berechtigungen hinzu. Wir benötigen S_TABU_NAM für die Tabelle und für den Core Data Service. Die Berechtigungen sind wichtig, damit wir die Pflege in der App durchführen können, ohne Berechtigungen bleibt die Anzeige leer und der Button ist nicht aktiv.

 

Document Type

Bevor wir in den Test gehen, legen wir noch unsere zweite Business Configuration für die Dokumententypen an. Dazu müssen wir allerdings noch ein neues Paket anlegen, welches wir bei der initialen Einrichtung vergessen haben. Darunter legen wir nun unsere neue Tabelle an. Die Tabelle hat dabei den Dokumenttyp als Schlüsselfeld, eine Beschreibung für den Typen und den Prozess, wozu die verschiedenen Typen zugeordnet sind. In diesem Fall müssen wir das neue Schlüsselfeld ebenfalls anlegen und befüllen die nötigen Informationen. Als Domain verwenden wir dieses Mal einen sprechenden Schlüssel, da wir später noch auf diesen zugreifen müssen. Dann aktivieren wir alle Objekte und können mit der Business Configuration beginnen.

Bei der Generierung der Business Configuration lassen wir dieses Mal die Transport Konfiguration auf Standard. Dann passen wir die folgenden Objekte wie bereits in der ersten Version für uns an, bevor wir an die Generierung gehen. Grundsätzlich hast du hier die Möglichkeit deinen eigenen Namenskonventionen zu folgen und die Objekte sauber zu benennen. Zum Abschluss führen wir ebenfalls die gleichen Schritt wie zuvor durch: nachdem alle Objekte generiert wurden, aktivieren wir den Service und legen zum Abschluss eine neue IAM App an, um auch die Berechtigungen zu definieren.

 

Business Catalog

Aktuell haben wir allerdings noch keine Berechtigungen auf die neue Business Configuration. Wir haben zwar die IAM Apps angelegt, allerdings noch keinem Business Catalog und keinem Business User zugeordnet. Dazu öffnen wir unseren Business Catalog für dn Admin und fügen auf dem Reiter "Apps" die beiden IAM Apps hinzu, um uns die Berechtigungen zu geben. Zum Abschluss daran denken über "Publish Locally" die Einstellungen im aktuellen System auch bekannt zu geben. Da der Business Catalog uns bereits zugeordnet ist, erhalten wir die neuen Berechtigungen damit automatisch.

 

Test

Gehen wir dazu in die "Custom Business Configuration" App im Launchpad und suchen nach unseren Tabellenpflegen. Haben wir die Schritt zuvor richtig durchgeführt, sehen wir die beiden neuen Objekte. Gehen wir zuerst in die Tags und legen einige neue Tags an. Das Hinzufügen der neuen Datensätze klappt reibungslos, die UUID Schlüssel werden vom System automatisch vergeben. Öffnen wir den Dokumententypen, dann wird bereits im Draft ein Customizing Transport angezeigt, worauf die Objekte geschrieben werden. Damit ist bei unserem ersten View der Transport deaktiviert und in diesem View das Transport Handling noch aktiv. Die Generierung über den Wizard scheint damit wieder korrekt zu funktionieren.

 

Transport

Deaktivieren wir im nächsten Schritt die Transporte für unseren Dokumententyp. Dazu gehen wir im ersten Schritt in die Behavior Definition, um die verschiedenen Prüfungen und Funktionen zu finden und zu entfernen. Überall wo wir das Wort Transport finden, können wir die passenden Objekte dazu entfernen. Dann die Definition aktivieren, damit wir die Fehler in der Implementierung direkt sehen und die Bestandteile aus dem Coding entfernen können. Entfernen wir im ersten Schritt erst einmal alle Methoden mit einem Fehler, da wir diese bereits aus der Definition entfernt haben. Nach der Generierung können wir die UI Annotationen im Root View entfernen, die noch eine Navigation zum Transport enthalten.

Führen wir dann einen Test in der Business Configuration aus, dann erhalten wir erst einmal keine Fehlermeldung, aber auch das Speichern funktioniert nicht. Hier haben wir eine Anpassung in der Behavior Implementation vergessen, die für die Aufzeichnung des Transports verantwortlich ist. Diese entfernen wir ebenfalls aus dem Code und aktivieren das Objekt noch einmal. Eine weitere Anpassung die wir durchführen müssen ist am Transport Objekt. Dazu können wir über das Maintenace Objekt navigieren und müssen die beiden Punkte "Recording" und "Adaptable" anpassen. Damit deaktivieren wir den Transport und erlauben die Pflege in einem Produktivsystem. Nun erhalten wir eine Fehlermeldung im Objekt und müssen noch den Transport Selection Strip entfernen. Hierbei handelt es sich um eine Konfiguration im Bereich der Object Page, die etwas versteckt liegt.

Nun können wir noch einmal die Pflege testen und legen einen neuen Datensatz an. Aktuell haben wir keine Wertehilfe für den Prozess, dehslab tragen wir erst einmal einen Wert ein und Speichern den Datensatz. Es kommt nun kein Fehler mehr und der Datensatz wird gespeichert.

 

Wertehilfe

Definieren wir nun die Wertehilfe für den Prozess. Diese haben wir bereits im System definiert und können sie in der Business Configuration einfach wiederverwenden. Dabei nutzen wir wieder unsere IDE Action und definieren die Wertehilfe am Feld. Über die Suche können wir das passende Feld aus dem Core Data Service in der Hilfe mappen. Nach der Aktivierung übernehmen wir die Suchhilfe noch in den Service, damit diese auch im Service zur Verfügung steht und können zum Abschluss einen Test dafür durchführen. In der Anwendung ist nun der Dropdown verfügbar und wir können bei der Anlage einen neuen Prozess wählen.

 

Testdaten

Damit wir nun die passenden Daten für unsere Tests haben, erweitern wir unsere Testklasse, um zusätzliche Daten über GitHub laden zu können. Wir benötigen eine neue Methode zum Laden der Tags, zuvor deaktivieren wir noch die bestehende Funktion, um nicht die Nummernkreise zurücksetzen zu müssen. Dabei kopieren wir den Großteil der bisherigen Logik und passen einige Stellen für uns an. Bei der Business Configuration müssen wir über den Singleton in das Business Objekt einsteigen. Als Entity verwenden wir den Singleton und nutzen beim Create By die Assoziation zu unseren eigentlichen Daten. Da der Schlüssel automatisch verwaltet und angelegt wird, müssen wir nur die Beschreibung aktualisieren. Dabei solltest du darauf achten, auch die richtige Tabelle für die Anlage zur Verfügung zu stellen. Da wir über eine Assoziation die Daten anlegen, müssen wir auch unsere Tabelle entsprechend definieren. Als nächstes müssen wir einen Datensatz in die Tabelle einfügen, die eigentlichen Daten stehen unter %TARGET, welches wir mappen müssen.

Nun löschen wir noch die eigentlichen Tabellen, um immer mit einer frischen Version zu starten. Haben wir die beiden Tabellen angegeben, dann legen wir noch eine neue Methode für den Dokumententypen an. Hier können wir die Logik ebenfalls kopieren und passen nur noch die nötigen Bestandteile in der Logik an.

Einen wichtigen Punkt den wir bisher vergessen haben, müssen wir noch in der Tabelle definieren. Und zwar benötigen wir einen Schlüssel für die Root Entität, um die abhängigen Datensätze unterhalb anzulegen. Die Singleton ID ist in beiden Fällen hart im View mit 1 hinterlegt. Haben wir den Code formattiert, können wir die Klasse ausführen, laden die neuen Einträge von GitHub und fügen sie in die beiden Tabellen ein.

 

Zusammenfassung

Wir haben nun in der Business Configuration verschiedene Tags für die Dokumente angelegt, mit denen wir später die Dokumente kennzeichnen können. Ebenso haben wir verschiedene Dokumententypen definiert, die in den verschiedenen Prozessen in unserem Framework zur Verfügung stehen sollen. Damit haben wir zusätzliche Business Configurationen angelegt, die wir beim nächsten Mal in der neuen Anwendung benötigen. Die Daten findest du jeweils im GitHub Repository als JSON Datei.

Damit sind wir am Ende dieser Folge. Danke fürs Zuschauen und bis zum nächsten Mal.

 

YouTube
Video


Enthaltene Themen:
YouTubeSkriptRecycling-HeroesTagsTypesBusiness Configuration
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


050: Clean Core Measurement (Preview)

Kategorie - YouTube

Clean Core Kennzahlen sichtbar machen? Mit dieser Übersicht erhältst du einen Einblick in den aktuellen Stand des Open Source Projekts, die verschiedenen Funktionen und Möglichkeiten, um Transparenz im Unternehmen zu schaffen.

03.08.2026

048: ABAP - ADT for VS Code (Part 4)

Kategorie - YouTube

Wie gelingen dir die ersten Schritte mit ABAP in Visual Studio Code? In dieser Folge schauen wir uns einige Beispiele im Agentic AI und RAP Umfeld an. Dabei schauen wir auch auf einige Punkte, die nch zubeachten sind.

20.07.2026

047: ABAP - ADT for VS Code (Part 3)

Kategorie - YouTube

Wie gelingen dir die ersten Schritte mit ABAP in Visual Studio Code? In dieser Folge konfigurieren wir Agentic UI und schauen uns verschiedene Beispiele zur Nutzung im Bereich ABAP Unit und RAP an.

13.07.2026

046: ABAP - ADT for VS Code (Part 2)

Kategorie - YouTube

Wie gelingen dir die ersten Schritte mit ABAP in Visual Studio Code (VS Code)? In diesem Teil geben wir einen Einblick in die Verwendung der Extension. Neuanlage, Debugging und Testen stehen dabei im Fokus.

06.07.2026

045: ABAP - ADT for VS Code (Part 1)

Kategorie - YouTube

Wie gelingen dir die ersten Schritte mit ABAP in Visual Studio Code (VS Code)? In diesem Teil geben wir einen Einblick in die Architektur und den Aufbau der Extension und was du bisher davon erwarten kannst.

29.06.2026