Innovator 2007 Automatisch durchführbare HowTo Befehlssequenzen Funktionalität von InoAutoCommand.jar Josef Nagl www.mid.de HowTo Automatisch durchführbare Befehlssequenzen Funktionalität von InoAutoCommand.jar Mit InoAutoCommand.jar kann in Modellbäumen beliebiger Innovator-Modelle durch eine konfigurierbare Steuerdatei eine Sequenz von Menübefehlen automatisch ausgeführt werden. InoAutoCommand kann direkt durch eine JavaVM gestartet werden. Dazu müssen die obligatorisch benötigten Innovator-Pfade und -Bibliotheken (inojapi.jar etc.) deklariert werden. Die Steuerdatei enthält in Sektionen die Modellbeschreibungs- und Logindaten, die Definition von Umgebungsvariablen und die eigentlichen Befehlssequenzen. Obwohl InoAutoCommand.jar eine Java-Applikation ist, kann sie sowohl mit eXcellence- als auch mit classiX-Modellen verwendet werden. Für die vollautomatische Ausführung ist Voraussetzung, dass die verwendeten Menübefehle keine Dialogboxen öffnen, also keine interaktive Bedienung durch den Anwender verlangen. Durch Verwendung zeitgesteuerter Mechanismen des Betriebssystems (Unix: 'cron-Jobs', Windows: 'at'- bzw. 'schtask.exe'-Kommandos), die InoAutoCommand benutzen, können damit u.U. zeitaufwändige Aktionen, wie z.B. die Generierung von Dokumentationen oder die Ausführung von Generatoren, zu einem festgelegten Zeitpunkt erfolgen. Aufruf von InoAutoCommand InoAutoCommand kann direkt durch eine JavaVM gestartet werden. Dazu müssen jedoch die obligatorisch benötigten Innovator-Pfade und -Bibliotheken deklariert werden. Ein Beispiel zeigt unten aufgeführte Batchdatei. Zusätzlich muss die Steuerdatei (Parameter -Dcontrolfile) angegeben werden, die die benötigten Modelldaten und Kommandosequenzen enthält. Der Aufbau der Steuerdatei wird weiter unten beschrieben. Die in der Batchdatei zu setzenden Variablen INOEXE, INODIR und INOHOST sind gemäß der im Zielsystem eingestellten Innovator-Installation zu belegen. Beispieldatei runme.bat set INOEXE=<Pfad zum INOEXE-Verzeichnis> set INODIR=<Pfad zum INODIR-Verzeichnis> set INOHOST=<Name des eingestellten INOHOST> java·-Djava.library.path=%INOEXE%·-cp·%INODIR%\java\lib \ext\inojapi.jar;%INODIR%\java\MappingCore\MappingCore.jar; %INODIR%\java\InoAutoCommand\InoAutoCommand.jar;%INODIR% \java\JNILib\inojapil.jar·-Dde.mid.innovator.inohost= %INOHOST%·-Dcontrolfile=%INODIR%\automateddocu.conf· de.mid.innovator.scripts.autocommand.AutoCommand pause Aufbau der Steuerdatei Die Steuerdatei besteht analog zu Windows-Ini-Dateien aus Sektionen und darin befindlichen Einträgen. Bestimmte Einträge in Sektionen definieren eine Folgesektion. Deren Name besteht aus dem Wert eines Basissektionsnamens und dem durch einen Doppelpunkt getrennten Wert des Sektionseintrags. Beispieldatei [Tasks] Task=TaskName [TaskDescriptor:TaskName] ... Im Folgenden werden die definierten Sektionen beschrieben. Sektion Tasks Die obligatorische Sektion Tasks enthält eine Auflistung von durchzuführenden Taskdeskriptoren,die in Folgesektionen mit dem Namen TaskDescriptor definiert sind. Diese sind an anderer Stelle der Steuerdatei definiert. Die Sektion wird mit dem Schlüsselwort Task und mit dem Namen des Taskdeskriptors als Wert eingeleitet. Die Taskdeskriptoren werden nacheinander in der Reihenfolge, in der sie in der Sektion Tasks definiert sind, abgearbeitet. Der Name der Sektion des jeweils gesuchten Taskdescriptors besteht aus dem Text „TaskDescriptor:<TaskName>“. 2 HowTo Automatisch durchführbare Befehlssequenzen Folgesektion TaskDescriptor Die Sektion TaskDescriptor enthält die Verweise auf andere Folgesektionen, die für die Durchführung einer Tasksequenz benötigt werden, z.B. Verweise auf die Modelldaten und die eigentliche Kommandosequenz. Gültige Einträge der Sektion TaskDescriptor sind Verweise auf die Folgesektionen ModelSpecification, CommandSequence oder EnvironmentSection. Die Folgesektion ModelSpecification enthält die Modellbeschreibungs- und Logindaten, die für das Einloggen in ein konkretes Innovator-Modell benötigt werden. Folgesektion ModelSpecification Sektionseintrag ModelName Name des Innovator-Modells Sektionseintrag RepositoryName Name des Innovator-Repositorys Sektionseintrag ModelType Typ des Innovator-Modells Sektionseintrag UserName Name des Benutzers Sektionseintrag UserRole Rolle des Benutzers (nur bei Modelltyp eXcellence) Sektionseintrag Password Passwort des Benutzers im Modell Folgesektion EnvironmentSection Die Folgesektion EnvironmentSection erlaubt die Erzeugung einer Datei und die Definition von Umgebungsvariablen, die nachfolgend gestartete Anwendungen auswerten können. Sektionseintrag FileName Pfadname einer Datei. Die angegebene Datei wird, falls nicht existent, erzeugt. Sektionseintrag Property Definition einer Eigenschaft in der Datei. Die Angabe 'Property=<EnvVar>,<Value>' erzeugt in der im Sektionseintrag FileName definierten Datei einen Eintrag '<EnvVar>=<Value>'. Folgesektion CommandSequence Die Folgesektion CommandSequence enthält die eigentliche Sequenz von Menübefehlen, die an den Innovator-Modellbrowser gesendet werden soll. Dabei werden folgende Einträge unterstützt. Sektionseintrag Pause Pause kann verwendet werden, um dem vorangegangenem Befehl Zeit zu verschaffen, seine Tätigkeit zu beenden. Der angegebene Zahlenwert gibt die Wartezeit in Sekunden an. Sektionseintrag ElementSelection ElementSelection vermag ein Element im Modellbrowser zu bestimmen und zu selektieren. Die Angabe der Elementdaten erfolgt im Modellreferenzformat (aox-URL-Notation). Dies kann im Modellbaum durch Ausführen des Menübefehls Bearbeiten>Kopieren> Modellreferenz bestimmt werden, wobei der aox-URL im Zwischenspeicher hinterlegt wird und anschließend in beliebige Anwendungen eingefügt werden kann. Sektionseintrag MenuCommand Im Sektionseintrag MenuCommand können zeilenweise Menübefehle des Modellbrowsers angegeben werden. Einzelne Menüebenen werden durch einen Schrägstrich "/" getrennt. Die Menübefehl-Sequenz muss die verwendete Oberflächensprache des Modellbrowsers berücksichtigen. Die Menübefehle können zweisprachig (in Deutsch und Englisch) angegeben werden, um sie in beiden Oberflächensprachen benutzen zu können. Hinweis Kann ein Befehl nicht gefunden werden (z.B. aufgrund eines Schreibfehlers), dann wird keine Fehlermeldung zurückgeliefert. Der Eintrag in der Steuerdatei wird ignoriert. 3 HowTo Automatisch durchführbare Befehlssequenzen Für die vollautomatische Ausführung ist Voraussetzung, dass die verwendeten Menübefehle keine Dialogboxen öffnen, also keine interaktive Bedienung durch den Anwender verlangen. Beispiel: MenuCommand=Modell/Dokumentation/HTML/Hierarchischer Report würde den gleichnamigen Menübefehl im Modellbrowser ausführen. Sektionseintrag WaitForFileDeleted WaitForFileDeleted erlaubt es, die Sequenzverarbeitung solange auszusetzen, bis die angegebene Datei wieder gelöscht wurde. So kann auf Befehle, deren Ausführung eine unbestimmte Zeit benötigt, gezielt gewartet werden. Am Ende des Befehls muss dieser lediglich die angegebene Datei löschen. Als Beispiel kann die Generierung einer Dokumentation aufgeführt werden, die u.U. recht lange dauern kann. Nach der Beendigung der Dokumentation wird eine zuvor erstellte Datei gelöscht. Die Befehlssequenz kann weitergeführt werden. Beispiel einer Konfigurations- ; Steuerdatei für das Script InoAutoCommand.jar ; Modelldaten werden in den Parametern ModelName, RepositoryName und ModelType datei angegeben. ; Logindaten werden in den Parametern UserName, UserRole und Password angegeben. UserRole ist nur bei eXcellence-Modellen anzugeben. ; In der Sektion CommandSequence können Selektionskommandos (ElementSelection) und Menübefehle ( MenuCommand ) angegeben werden. ; Als Wert von MenuCommand ist der Pfad des entsprechenden Menübefehls anzugeben. ; Die Sektion Tasks ist obligatorisch. Hier stehen die in der angegebenen Reihenfolge durchzuführenden Tasks. [Tasks] ;Task=Task1 Task=Task2 ;Task=Taskn ; Die Sektion ModelSpecification:<Identifier> enthält die Login- und Modelldaten. [ModelSpecification:Model1] ModelName=testModel RepositoryName=testRepository ModelType=UML UserName=Benutzer1 UserRole=Mapping BMCSE Password= ; Die Sektion ModelSpecification:<Identifier> enthält die Login und Modelldaten. [ModelSpecification:Model2] ModelName=testModel2 RepositoryName=testRepository2 ModelType=SERM UserName=ADMIN UserRole= Password= 4 HowTo Automatisch durchführbare Befehlssequenzen ; Die Sektion EnvironmentSection:<Identifier> enthält die Daten, die in eine Datei geschrieben werden sollen. [EnvironmentSection:EnvSection1] FileName=/tmp/test Property=x,y Property=z,y ; Die Sektion CommandSequence:<Identifier> enthält die durchzuführenden Befehlssequenzen. [CommandSequence:Sequence1] ElementSelection=MESystemModel 16 Pause=1 MenuCommand=Modell/Dokumentation/Voranzeige/Hierarchischer Report MenuCommand=Element/Browser beenden WaitForFileDeleted=/tmp/test ; Die Sektion CommandSequence:<Identifier> enthält die durchzuführenden Befehlssequenzen. [CommandSequence:Sequence2] WaitForFileDeleted=/tmp/test,1 ; Ein TaskDescriptor:<Identifier> enthält genau eine ModellSpecifikation=Identifier und eine CommandSequence=Identifier. ; Optional kann noch eine Umgebungssektion EnvironmentSection=Identifier angegeben werden. [TaskDescriptor:Task1] ModelSpecification=Model1 CommandSequence=Sequence1 EnvironmentSection=EnvSection1 ; Weitere TaskDescriptoren [TaskDescriptor:Task2] ModelSpecification=Model2 CommandSequence=Sequence2 EnvironmentSection=EnvSection1 Innovator_2007_HowTo_InoAutoCommand_070719.doc [TaskDescriptor:Taskn] ModelSpecification=Model1 CommandSequence=Sequence1 EnvironmentSection=EnvSection1 Copyright © 2007 MID GmbH Bei Fragen wenden Sie sich bitte an unsere Hotline Telefon: +49 911 96836-22, 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 MID GmbH, Eibacher Hauptstr. 141, 90451 Nürnberg Telefon: +49 911 96836-0, Fax: +49 911 96836-10 E-Mail: [email protected], Internet: http://www.mid.de 5