Individuelle und dynamische Menüs für Datenobjekte im SAP PowerDesigner
Der Datenmodellierung kommt eine immense, oft unterschätzte Bedeutung zu. Datenmodelle bilden die Grundlage für jede IT-gestützte Abwicklung von Geschäftsprozessen, welche unerlässlich ist für die effektive Steuerung aller Unternehmensaufgaben.
Am Markt findet sich eine Vielzahl von Werkzeugen, die eine oder mehrere Modellierungstechniken für Datenmodelle unterstützen. Eines davon ist der SAP PowerDesigner, dessen Basis-Features sich auf verschiedene Arten erweitern und anpassen lassen, so dass eine optimale Konfiguration in Bezug auf das jeweils zu erstellende Datenmodell möglich ist.
In diesem Beitrag gehe ich im Detail darauf ein:
- wie sich ausgewählte Objekte eines Datenmodells individuell anpassen und erweitern lassen
- wie sich in die bestehende Struktur des Eigenschaften-Menüs für Datenobjekte eigene Metadaten-Felder einfügen lassen
- welchen Mehrwert deren automatisierte Auswertung bietet.
Anwendungsbeispiel: Entitätstypen in bestehendem Diagramm um weitere Metadaten ergänzen
Im folgenden Beispiel möchten wir für die Entitätstypen in einem Conceptual Data Model zusätzliche Metadaten verwalten. Diese sollen – möglichst anwenderfreundlich – gemeinsam mit den übrigen Metadaten (z.B. Name, Kommentar, Stereotyp, …) verwaltet werden können.
Beispiele für derartige unternehmensspezifische Metadaten sind:
- Quellsystem: Falls die später in der Datenbank gespeicherten Daten (teilweise) aus verschiedenen Quellsystem importiert werden.
- Zielsystem: Falls die Daten, die das Datenmodell beschreibt, in verschiedenen Datenbanken gespeichert werden sollen.
- Datenart: Falls Verwendungszweck und Veränderbarkeit der Daten unterschieden werden sollen (z.B. Stammdaten, Bestandsdaten, Transaktionsdaten, …)
Ausgangspunkt ist eine von uns neu definierte Metadaten-Eigenschaft Custom_Type, die entweder den Wert A oder den Wert B einnehmen kann. Abhängig von diesem Wert sind weitere – jeweils verschiedene – Metadaten zu konfigurieren. Im Sinne der Anwenderfreundlichkeit sollen dabei nur die jeweils relevanten Metadaten angezeigt werden: Wenn Custom_Type den Wert A zugewiesen bekommt, sollen zusätzlich noch die Metadaten-Eigenschaften A1, A2 und A3 konfiguriert werden. Wird der Wert B für Custom_Type gewählt, sollen die Eigenschaften B1, B2 und B3 spezifiziert werden.
Dem bereits bestehenden Menü-Reiter ‚General‘ fügen wir dazu eine eigens erstellte, individuelle Metadaten-Eigenschaft hinzu. Basierend auf dem gewählten Wert dieser Eigenschaft blenden wir einen weiteren Reiter mit zusätzlichen Eigenschaften ein oder aus.
Schritt 1: Metaclasses in den Extensions des PowerDesigners ergänzen
Unsere individuellen und dynamischen Menüeinträge konfigurieren wir in einer PowerDesigner Extension. Diese fügen wir als erstes zu unserem Datenmodell hinzu. Per Rechtsklick auf das Modell, dann ‚New >‘ und anschließend ‚Extension‘ wählen:
Sobald die Extension angelegt ist, fügen wir eine Meta-Klasse für Entitäts-Typen hinzu. Dazu führen wir einen Rechtsklick auf ‚Profile‘ aus und wählen ‚Add Metaclasses…‘:
Im darauf erscheinenden Dialogfenster haken wir das Kontrollkästchen neben ‚Entity‘ an und bestätigen mit ‚OK‘.
Schritt 2: Benutzerdefinierte Eigenschaften mittels Extended Attributes zuweisen
Jetzt können wir die gewünschten zusätzlichen Metadaten definieren. Dazu legen wir jeweils ein Extended Attribute an.
Wir beginnen mit dem Custom_Type und wählen nach einem Rechtsklick auf die Meta-Klasse ‚Entity‘ ‚New >‘ und anschließend ‚Extended Attribute‘:
Im darauf erscheinenden Dialogfenster vergeben wir den Namen Custom_Type, konfigurieren den Datentyp String und geben als mögliche Werte die Liste A; B; an:
Da alle weiteren Metadaten-Eigenschaften abhängig vom Wert unseres Custom_Type sind, legen wir uns zunächst zwei Criteria an, mittels derer wir den Wert von Custom_Type überprüfen können. Dazu führen wir – analog zum Anlegen des Extended Attributes – einen Rechtsklick auf die Meta-Klasse ‚Entity‘ aus, wählen ‚New >‘ und anschließend ‚Criterion‘.
Wir geben dem Criterion den Namen Type_A und legen folgende Bedingung fest:
(%Custom_Type% == „A“). Diese überprüft, ob der Wert des Extended Attributes Custom_Type gleich A ist:
Wir legen ein weiteres Criterion mit dem Namen Type_B an und geben als Bedingung an:
(%Custom_Type% == „B“).
Als nächstes legen wir drei weitere Extended Attributes an, die angezeigt werden sollen, wenn Custom_Type den Wert A hat. Wir führen dazu einen Rechtsklick auf unser Criterion Type_A aus, wählen ‚New >‘ und anschließend ‚Extended Attribute‘. Dadurch wird dieses unterhalb von Type_A angelegt. Wir vergeben den Namen A1 und wählen als Datentyp Integer. Wir wiederholen diesen Schritt und legen so noch zwei weitere Extended Attributes A2 und A3 mit beliebigen Datentypen unterhalb von Type_A an.
Schließlich wiederholen wir den ganzen Vorgang und legen für unser Criterion Type_B drei Extended Attributes B1, B2 und B3 an. Dadurch ergibt sich folgender Baum unterhalb der Meta-Klasse ‚Entity‘:
Schritt 3: Eigenschaften-Menüs im PowerDesigner anpassen
Nachdem wir nun alle zusätzlichen Metadaten-Eigenschaften mittels Extended Attributes angelegt haben, müssen wir noch dafür sorgen, dass diese auch im Eigenschaften-Menü für die Entitäten im Conceptual Data Model angezeigt werden.
Dazu legen wir uns in der Extension ein neues Formular an, indem wir einen Rechtsklick auf ‚Entity‘ ausführen, ‚New >‘ und anschließend ‚Form‘ wählen:
In diesem neuen Formular wählen wir bei ‚Type‘ die Option ‚Replace General tab‘ und fügen unterhalb von ‚Comment‘ unser Extended Attribute Custom_Type ein. Dadurch kann diese Eigenschaft ab sofort im Reiter ‚General‘ des Eigenschaften-Menüs konfiguriert werden:
Als nächstes legen wir unterhalb des Criterion Type_A ein weiteres Formular an, das wir Type_A_Properties nennen. Bei ‚Type‘ lassen wir in diesem Fall die Standardeinstellung ‚Property Tab‘ unverändert. Im Formular fügen wir die Extended Attributes A1, A2 und A3 ein, die genau dann konfiguriert werden sollen, wenn unser Custom_Type gleich A ist.
Den gleichen Vorgang wiederholen wir für das Criterion Type_B mit den Extended Attributes B1, B2 und B3.
Der abschließende Baum unterhalb der Meta-Klasse ‚Entity‘ schaut nun folgendermaßen aus:
Wir können die Extension durch Klicken auf ‚OK‘ schließen.
Fazit: Individualisierte Eigenschaften-Menüs bilden die Grundlage für automatisierte Auswertungen im PowerDesigner
Rufen wir jetzt das Eigenschaften-Menü einer Entität auf, so können wir direkt im Reiter ‚General‘ den Custom_Type über eine Dropdown-Liste konfigurieren:
Abhängig vom dort ausgewählten Wert erscheint entweder der zusätzliche Reiter ‚Type A properties‘ oder ‚Type B properties‘:
In diesem Reiter können dann jeweils die gewünschten zusätzlichen Metadaten – abhängig vom Custom_Type – konfiguriert werden:
Die so erstellten individuellen und dynamischen Menüs erlauben eine äußerst anwenderfreundliche Konfiguration von Datenobjekt-Metadaten im PowerDesigner.
So können unternehmensspezifische Informationen bezüglich des Datenmodells direkt dort gepflegt werden. Dies bietet den weiteren Vorteil, dass diese Informationen im PowerDesigner automatisiert ausgewertet werden können. Dadurch kann beispielsweise das Aussehen der zugehörigen Datenobjekte im PowerDesigner manipuliert werden, damit durch die Visualisierung der Metadaten im Diagramm auf einen Blick ersichtlich wird, welche Metadaten jeweils zu einem Datenobjekt hinterlegt sind.
Darauf werden wir im nächsten Artikel zu diesem Thema eingehen.