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 ▶ |