Zurück zu Ressourcen
Blog 2019-01-29 2 min Lesezeit Kevin Petri

ModGen SCAPI

Überblick über die erwin Script Client API und ihre Verwendung zur Automatisierung von Data-Warehouse-Modellen mit MODGEN.

heureka entwickelte das erwin-Add-in MODGEN, um Transformationen in Data Warehouses zu automatisieren. Die damalige Version konnte aus einem Staging-Modell ein Data-Vault-Modell generieren. Eine unverzichtbare Grundlage dafür war die erwin Script Client API (SCAPI).

SCAPI ist eine umfangreiche Schnittstelle. Sie ermöglicht es, Objekte eines Modells zu erstellen, zu öffnen und zu bearbeiten, darunter Tabellen, Spalten und User Defined Properties (UDPs).

Zugriffsebenen

Die API unterscheidet mehrere Zugriffsebenen. Auf der Standardebene SCD_SL_M0 können Tabellen und Spalten erstellt, gelesen und geschrieben werden. Auch einfache Properties lassen sich dort anlegen und bearbeiten.

Für den Zugriff auf Metainformationen sowie das Bearbeiten oder Löschen von UDPs ist eine Sitzung mit erhöhten Rechten auf der Ebene SCD_SL_M1 erforderlich.

Persistence Units und Property Bags

Neben Persistence Units stellt SCAPI Property Bags bereit. Sie bilden Eigenschaften eines Objekts ab. Zusätzlich zu Name und Wert enthalten sie nützliche Flags. Diese geben beispielsweise an, ob ein Wert null oder skalar ist oder ob eine Eigenschaft nur gelesen werden darf.

Klassen- und Schnittstellenmodell der erwin Script Client API

Das SCAPI-Modell verbindet Persistence Units, ModelObjects, Collections und Properties.

ModelObject und ModelObjects

Die am häufigsten verwendete Klasse ist ModelObject. Tabellen und Spalten sind unter anderem Instanzen dieser Klasse und über die Standardebene SCD_SL_M0 erreichbar.

ModelObjects im Plural ist eine Sammlung von ModelObject-Instanzen. Sie enthält einen Enumerator, über den iteriert werden kann. Die Eigenschaft NewEnum verweist auf das Interface IEnumVARIANT, dessen Methoden Next(), Skip(), Reset() und Clone() den Iterationsablauf steuern.

Ein ModelObject besitzt außerdem die Eigenschaft Properties. Die Sammlung kann vollständig durchlaufen oder zur gezielten Auswahl einer einzelnen Eigenschaft verwendet werden.

Änderungen und Transaktionen

Änderungen an ModelObjects können unmittelbar in das Modell übernommen werden. Dazu wird vor dem Abruf eine Transaktion geöffnet und nach den gewünschten Änderungen ausgeführt. Der Commit schreibt alle Änderungen an den betroffenen Objekten in das zugehörige erwin-Modell zurück.

Jedes Objekt wird durch vier Kennungen klassifiziert:

  • SC_OBJID identifiziert das konkrete Objekt.
  • SC_CLSID ordnet das Objekt einer Klasse zu.
  • SC_MODELTYPEID beschreibt den Modelltyp.
  • SC_CREATORID kennzeichnet den Ersteller.

SCAPI-Codebeispiel zum Bearbeiten einer Eigenschaft aller Tabellen

Beispiel für die Iteration über Tabellen und die Bearbeitung eines Properties.

Ausführliche Details und weitere Codebeispiele enthält die erwin API Reference für Version 9.8.

Bereit für den nächsten Schritt?

Erzählen Sie uns von Ihrer aktuellen Landschaft und Ihren Zielen. Wir geben Ihnen eine ehrliche Einschätzung zum nächsten praktischen Schritt.

Konkrete Umsetzung

Aus der Ressource einen umsetzbaren nächsten Schritt machen

Besprechen Sie Ihre konkrete Ausgangslage mit heureka. Gemeinsam ordnen wir Prioritäten, Verantwortlichkeiten und den sinnvollsten Startpunkt.