Innovator 11 eXcellence DDL-Skripten über oAW generieren HowTo Udo Ende www.mid.de HowTo DDL-Skripten über oAW generieren Zweck Aus einem physikalischen Datenbank-Schema in einem Modell von Innovator Data eXcellence soll über openArchitectureWare (oAW) das zugehörige DDL-Skript generiert werden. Vorgehensweise Die Generierung von DDL-Skripten aus Innovator Data eXcellence erfolgt über eine konfigurierte Engineering-Aktion, die mit dem Profil DB Base zur Verfügung gestellt wird. Die Engineering-Aktion ist eine Java-Applikation, die über das Innovator JAPI mit dem Repositoryserver kommuniziert, zur Selektion die Daten sammelt und über oAW-Generierung die entsprechende Datei mit den SQL-Statements erzeugt. Engineering-Aktion konfigurieren Engineering-Aktionen sind Bestandteil eines Profils und werden im Konfigurationseditor angepasst. Wenn Sie diese Engineering-Aktion wie vorkonfiguriert belassen, werden Standard-oAW-WorkflowDateien und Standard-Schablonen der MID für die Generierung der DDLs verwendet. Die generierte Datei wird in ein Unterverzeichnis \ddl unterhalb des $INOTMP-Verzeichnisses geschrieben. Eigenschaftendialog der Engineering-Aktion öffnen Sie können die Eigenschaften vorkonfigurierter Engineering-Aktionen Ihren Bedürfnissen anpassen. So gehen Sie vor Um den Eigenschaftendialog der Engineering-Aktion zu öffnen: » Wechseln Sie mit Wechseln>Konfiguration in den Konfigurationseditor Ihres Datenmodells. » Wählen Sie Ansicht>Aktionen. Sie befinden sich in der Ansicht Aktionen. » Selektieren Sie im Profilbaum im Profil DB Base die Aktionssequenz DDL generieren. » Selektieren Sie in der Liste der Profilelemente die untergeordnete Engineering-Aktion. 1 HowTo DDL-Skripten über oAW generieren » Wählen Sie Bearbeiten>Eigenschaften. Die gleichnamige Dialogbox erscheint. 2 HowTo DDL-Skripten über oAW generieren Argumente der Engineering-Aktion anpassen So gehen Sie vor Um die Argumente der Engineering-Aktion anzupassen: » Das erste Argument db_workflow.oaw verweist auf die Standard-oAW-Workflow-Datei der MID. Das Ändern dieser Einstellung bedarf genauerer oAW-Kenntnisse und wird deshalb nicht detailliert erklärt. Sollte es erforderlich sein, kann hier nur ein Dateiname ohne Pfad stehen, da oAW hier nichts anderes auflöst. Sollte ein anderer Workflow verwendet werden, muss eventuell der Pfad zur Workflow-Datei im Klassenpfad eingehängt werden (s. u.). » Alle weiteren Argumente benötigen ein –p vor dem Argument. Dies entspricht dem oAW-Standard. » Das zweite Argument innovator.language darf nicht verändert werden. » Das dritte Argument prj.root.dir steht in Anführungszeichen, um falsche Argumentauflösungen z. B. durch Leerzeichen im Projekt-Root-Verzeichnisname zu verhindern. Darüber hinaus gibt es noch weitere Argumente: y commentsDesired ist standardmäßig true. Mit false kann die Ausgabe von KommentarStatements unterdrückt werden. y createIndexPositioning ist standardmäßig AfterAllTables, wodurch die IndexStatements erst nach allen Tabellen-Statements positioniert werden. Mit EachTableMiddle kann die Ausgabe bei jeder Tabelle direkt vor den Kommentar-Statements erfolgen, mit EachTableEnd am Ende jeder Tabelle. y dbType ist standardmäßig Unknown. Mit Oracle, MSSQL, MySQL oder DB2 können datenbankspezifische Positionierungen im DDL-Skript für Optionen erreicht werden. Neben der standardmäßigen Nachfolge der Option im DDL-Statement kann diese hiermit alternativ nachfolgend sein oder gar weggelassen werden. 3 HowTo DDL-Skripten über oAW generieren Diese Positionierung wird über eine Konfigurationsdatei positions.xml aus InoIMInOut.jar (siehe Eintrag im Klassenpfad) gelesen, in der die zu berücksichtigenden Positionierungen hinterlegt sind. Mit dem Argument positionsRessourceFileName kann auf eine eigene XMLKonfigurationsdatei verwiesen werden. Genaueres im Folgenden unter "Anpassen der Positionierungen für Optionen von DB-Elementen". y endingQuoter ist standardmäßig leer. Durch Angabe einer Zeichenkette erhalten alle Namen von Tabellen, Spalten u. ä. diese Zeichenkette hintangestellt. y foreignKeyWithConstraint ist standardmäßig true, wodurch alle ForeignKey-Statements hinter dem ADD ein CONSTRAINT plus Name des ForeignKeys bekommen. Mit false werden diese unterdrückt. y foreignKeyandTriggersPositioning ist standardmäßig AfterAllTables, wodurch die ForeignKey- und Trigger-Statements erst nach allen Tabellen-Statements positioniert werden. Mit EachTableMiddle kann die Ausgabe bei jeder Tabelle nach den Kommentar-Statements erfolgen, mit EachTableEnd am Ende jeder Tabelle. y indexForPrimaryKey ist standardmäßig false, wodurch für PrimaryKeys nicht automatisiert Indizes zusätzlich erzeugt werden. Mit true werden diese erzeugt. y leadingQuoter ist standardmäßig leer. Durch Angabe einer Zeichenkette erhalten alle Namen von Tabellen, Spalten u. ä. diese Zeichenkette vorangestellt. y primarykeyInCreate ist standardmäßig false, wodurch alle PrimaryKey-Statements hinter allen Tabellen-Statements positioniert werden. Mit true folgen diese direkt hinter den Tabellenspalten-Statements. y showNulls ist standardmäßig true, wodurch ein NULL hinter den Tabellenspalten positioniert wird, falls diese nullable sind. Mit false kann diese Ausgabe unterdrückt werden. y showtableOwner ist standardmäßig false. Mit true kann der Innovator-Besitzer als DBSchemaname vor die Tabellennamen, getrennt durch einen Punkt von diesen, gesetzt werden. y singleFilename ist standardmäßig AllDBData und bestimmt den Dateinamen der generierten Datei, dem ein „.sql“ angehängt wird. Über dieses Argument kann der Dateiname direkt bestimmt werden. y tableNamePrefix ist standardmäßig leer. Durch Angabe einer Zeichenkette erhalten alle Namen von Tabellen diese Zeichenkette als Namenspräfix vorangestellt. y uniqueconstraintInCreate ist standardmäßig false, wodurch alle UniqueConstraintStatements hinter allen Tabellen-Statements positioniert werden. Mit true folgen diese direkt hinter den Tabellenspalten-Statements. 4 HowTo DDL-Skripten über oAW generieren Klassenpfad für Einbindung eigener Workflow-Dateien anpassen So gehen Sie vor Um den Klassenpfad zu erweitern: » Selektieren Sie die Eigenschaftsseite Klassenpfad. » Klicken Sie auf die Schaltfläche , um einen neuen Eintrag zu erzeugen und das Verzeichnis der Workflow-Datei über die Schaltfläche auszuwählen oder klicken Sie auf die Schaltfläche , um den Klassenpfad in einem Textfeld direkt einzutragen. Die letzte Zeile im Bild ist ein Beispiel für den Pfad zu einer eigenen Workflow-Datei. Anpassen der Positionierungen für Optionen von DB-Elementen Die Konfigurationsdatei positions.xml (Verweis mit dem Argument positionsRessourceFileName) enthält ein Root Tag Options, darunter datenbankspezifische Tags OracleOptions, SQLServerOptions, DB2Options und MySQLOptions. Darunter kann es jeweils wieder Tags TableOptions, ColumnOptions, PKOptions, FKOptions und IndexOptions geben. Jedes dieser Tags kann ein Tag Option mit Attribut position enthalten. Der Inhalt des Tags Option ist der Innovator-Name der jeweiligen Option, das Attribut bestimmt die Positionierung des Attributs: leading stellt die Option vor das zugehörige Keyword, leftOut lässt die Option wegfallen. Anpassen der Zeilenumbrüche und Tabulatoren in den Ausgabedateien Durch Konfiguration eines PostProcessors in der Workflow-Datei kann man die Zeichen für Zeilenumbrüche und Tabulatoren beeinflussen. Diese Möglichkeit bedarf genauerer oAW-Kenntnisse und wird deshalb nicht detailliert erklärt. 5 HowTo DDL-Skripten über oAW generieren Engineering-Aktion ausführen Die konfigurierte Engineering-Aktion führen Sie aus, um das DDL-Skript zu dem Datenbank-Schema zu generieren. Selektieren Sie im Modellbrowser ein Paket, in dem die Tabellen liegen, für die DDLSkripten erzeugt werden sollen, oder die Tabellen selbst und wählen Sie Engineering>Aktion ausführen>DDL generieren. Copyright © 2010 MID GmbH Bei Fragen wenden Sie sich bitte an unsere Hotline. Telefon: +49 (0)911 96836-222, E-Mail: [email protected]. Dieses Dokument finden Sie neben anderen auch im exklusiven Login-Download-Bereich für Innovator-Wartungskunden unter http://www.mid.de/support/. Ihre MID Innovator 11.2 HowTo DDL generieren eXcellence 100630.doc MID GmbH, Kressengartenstraße 10, 90402 Nürnberg Telefon: +49 (0)911 96836-0, Fax: +49 (0)911 96836-100, E-Mail: [email protected], Internet: http://www.mid.de 6