Automatisch durchführbare Befehlssequenzen

Werbung
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
Herunterladen