Es gibt verschiedene Möglichkeiten, AQL-Programme zu starten:
Interaktiv starten können Sie AQL-Programme durch
AQL-Programme, die die Standardein- und -ausgabe verwenden, d.h. Ein- und Ausgabefunktionen ohne vorhergehende file-Anweisung, benutzen das Fenster, in dem EUKLID-Design gestartet wurde.
Während der Entwicklungs- und Testzeit ist der Programmname f1.aql empfehlenswert. Diese Programme können mit den Funktionstasten <F1> bis <F4> bzw. deren Kombination mit der Taste <SHIFT> gestartet werden.
Wenn Sie die ersten Beispiele nachvollziehen wollen, können Sie die restlichen Ausführungsarten in diesem Kapitel überspringen.
Soll EUKLID-Design nur ein AQL-Programm ausführen, ohne daß Interaktionen des Anwenders erforderlich sind, so kann es im Batch-Modus gestartet werden:
d2.exe -batch <aql-dateiname> <modellname>
Die Option -batch und die darauf folgenden Namen von AQL-Dateien veranlassen EUKLID-Design, die AQL-Programme auszuführen und sich danach zu beenden, ohne ein Grafikfenster zu eröffnen. Damit können z.B. Umsetzer oder automatisches Plotten von Modellen elegant in Shell-Prozeduren ausgeführt werden.
Ein AQL-Programm wird an eine definierte Aktion (UDA) gekoppelt, wenn dies bei der Erstellung der UDA angegeben wurde.
Beispiel: Das UDA myuda.uda ist mit dem AQL-Programm myuda.aql gekoppelt.
Je nach Angabe verschiedener Attribute werden Funktionsrümpfe vorgeneriert, die vom Entwickler mit Semantik zu füllen sind.
pre_action | Ablauf vor Durchlauf von "execute" und Parameterfunktionen |
post_action | Ablauf nach Durchlauf von "execute" und Parameterfunktionen |
execute | eigentliche Evaluierungsfunktion |
pre_par_<parname> | Ablauf vor Parametereingabe |
post_par_<parname> | Ablauf nach Parametereingabe |
select_par_<parname> | Selektorfunktion für Parameter |
traverse_values_par_<parname> | liefert die möglichen Zustände der Selektoren |
draft_par_<parname> | liefert skizzierten Wert für Parameter |
move_cursor_par_<parname> | Cursorroutine bei Mausbewegung ohne Tastendruck |
drag_cursor_par_<parname> | Cursorroutine bei Mausbewegung mit gedrückter linker Maustaste |
show_par_<parname> | Darstellungsmethode für Parameterhilfsdarstellung z.B. Länge |
init_par_<parname> | Eintragen einer Voreinstellung für Parameter |
get_prompt_par_<parname> | Parametereigenes Prompting |
check_par_<parname> | Intervalltest für Parameterwerte |
suppress_property | Funktion zum Unterdrücken von Properties in Resultat und Effekten |
res_fill_suppress_props | füllen von Standardwerten für suppressed Resultatproperties |
Ein AQL-Programm wird von anderen AQL-Programmen aus mit der AQL-Funktion aql, die den Namen des AQL-Programms als erstes Argument erhält, aufgerufen: aql (<dateiname>)
aql("!my_subprog", "Arg1", "Arg2")
Die Funktion liefert folgende Werte als Rückgabewert: | |
-1 | Laufzeitfehler |
-2 | Syntaxfehler |
-3 | Die angegebene Datei mit dem AQL-Programm kann nicht geöffnet werden. |
1 | Fehler in externen Funktionen |
Sollen übergebene Argumente von der gerufenen Prozedur übernommen werden, gibt es dafür zwei vordefinierte Symbole:
aql_argument_list | Gruppe der Parameterstrings |
aql_arg_<n> | n-tes Argument der Parameterleiste |
aql_arg_0 | enthält den Dateinamen |
j=1
for i in aql_argument_list do
‘Argument‘[j]‘;‘[i] nl
j=j+1
end
‘Unterprogramm‘[aql_arg_0]‘gestartet!‘ nl
Für die AQL-Programmausführung sind folgende Optionen beim Start von EUKLID-Design wichtig:
-access <aqlnam> | Vor und nach jedem Speicher- und Ladevorgang sowie bei Aufruf neuer Modelle wird je eine AQL-Routine (siehe auch mitgeliefertes Beispiel im Installationsverzeichnis #/aql.aql/file_aql.aql) aufgerufen. Diese wird nacheinander in folgenden Verzeichnissen gesucht: im Arbeitsverzeichnis ~/user_data #/aql.aql |
-start <aqlname> | erst AQL-Datei, dann interaktiv |
-stop <aqlname> | Ablauf vor Beenden der Sitzung |
EUKLID-Design kann AQL-Protokolle mitschreiben. Sie dienen als gute Programmiererstützen, wenn bestimmte AQL-Funktionen unklar sind.
AQL-Protokolle werden bei folgender Start-Option mitgeschnitten:
-protocol | Protokollmitschnitt Mitschnitt der Modell-Logik, d.h. Objektidentifikation über Name |
Die Mitschnitte unterliegen keiner Ablaufgewähr, können aber Datenstrukturzusammenhänge gut widerspiegeln und sind damit eine Hilfe bei der AQL-Programmierung. Die Mitschnitte werden im Arbeitsverzeichnis abgelegt.
◀ Programmaufbau | AQL abbrechen ▶ |