Interpreter
Im Interpreter sind nur wenige Prozeduren und Funktionen direkt implementiert. Die meisten Routinen finden sich in den Modulen.
Inhaltsverzeichnis
Values[Bearbeiten]
Im Gegensatz zu Variablen ist der Gültigkeitsbereich von Values auf das jeweilige (Primär- oder Sub-) Kommando beschränkt. Values haben Nummern, während Variable Namen haben.
#val_set[Bearbeiten]
Setzt der Wert für einen Value.
Parameter
- cnd (condition) - Der Value wird nur dann gesetzt, wenn cnd=Y ist; Funktionen werden ersetzt
- ie (if empty) - Wenn der Wert von z leer ist, dann wird ersatzweise der Wert von ie verwendet; ähnlich NVL bei Oracle; Funktionen werden ersetzt
- n - Nummer des Values
- r (rights) - Der Value wird nur dann gesetzt, wenn das Recht vorliegt; default ist frm
- rf (replace functions) - Wenn Y, dann werden nach der Zuweisung auf den Value nochmals die Funktionen ersetzt. Wird zum Beispiel benötigt, wenn Code mit Funktionen mittels $DATA() aus der Datenbank geladen wird; Funktionen werden ersetzt, default N; siehe Beispiel
- z - Wert der Variablen, Funktionen werden ersetzt, default ist ein leerer String
Beispiele
#val_set n=7 z=$GUID() #val_set n=1 z=$GUID() r=admin
-- Zum Parameter rf: $NOW() in die Zwischenablage kopieren und dann ausführen #val_set n=1 z=$CLIPBOARD() rf=N #message c=$VAL(1) #val_set n=1 z=$CLIPBOARD() rf=Y #message c=$VAL(1)
#val_add[Bearbeiten]
#val_add fügt einem Value einen Wert hinzu.
Parameter
- cnd (condition) - Der Value wird nur dann gesetzt, wenn cnd=Y ist; Funktionen werden ersetzt
- n - Nummer des Values; zwingend erforderlich
- r (rights) - Der Value wird nur dann gesetzt, wenn das Recht write vorliegt; default ist frm.
- y -Typ der Operation; default text
- curr - Es wird eine Fixkomma-Addition vorgenommen
- date - Es wird dem Datum eine Anzahl von Tagen hinzugefügt
- datetime - Es wird dem Datum eine Anzahl von Tagen hinzugefügt, Ergebnis als datetime
- int - Es wird eine Ganzzahl-Addition vorgenommen
- text - Der Wert wird als Text hinzugefügt
- z - Wert, welcher dem Value hinzugefügt wird, Funktionen werden ersetzt, default ist ein leerer String oder eine 0
Beispiel
#val_set n=1 z=$NOW() #val_add n=1 z=1 y=datetime #cout c=$VAL(1)
#val_clearall[Bearbeiten]
Löscht alle Values. Wird selten benötigt, da die Values mit Ende des (Primär- oder Sub-) Kommandos ohnehin ihre Gültigkeit verlieren.
Parameter
(keine)
Beispiel
#val_clearall
$VAL()[Bearbeiten]
Gibt den Inhalt eines Values zurück
Parameter
- Nummer des Values
Beispiel
#cout c=$VAL(3)
Log[Bearbeiten]
#exception_info[Bearbeiten]
Tritt eine Exception auf, dann wird die entsprechende Fehlermeldung in das Log geschrieben. Mit #exception_info kann eine Information ergänzt werden, die vor diese Fehlermeldung gesetzt wird. Üblicherweise wird das dazu verwendet, um eine ID zu schreiben, damit der fehlerhafte Datensatz gefunden wird.
Parameter
- z - Wert, welcher vor die Fehlermeldung geschrieben wird.
Beispiel
#exception_info z=$DATA(dat,knd_nr)
#log[Bearbeiten]
Schreibt einen Text in das Log.
Parameter
- c ("caption") - Text, der in das Log geschrieben wird; Funktionen werden ersetzt; default ist #log, Parameter c nicht gesetzt
- y - Typ des Log-Eintrags; default I. Vorgesehen sind die folgenden Typen:
- E - Error
- I - Info
- W - Warning
Beispiel
#log y=W c="Ermittelte Summe untypisch gering"
#logi[Bearbeiten]
Schreibt einen Text als Info in das Log.
Parameter
Die Prozedur #logi hat keine benannten Parameter. Der komplette Text nach dem #logi und dem folgenden Leerzeichen wird in das Log geschrieben; Funktionen werden ersetzt.
Beispiel
#logi Berechnung beendet
Kommandos[Bearbeiten]
#tab_new[Bearbeiten]
Öffnet einen neuen Tab im BAF-Client und führt dort ein Kommando aus.
Parameter
- c ("caption") - Beschriftung des neuen Tabs
- cmd ("command") - Kommando, das im neuen Tab ausgeführt wird
Beispiel
- tab_new c=xuser cmd=xuser($PAGE(link))
$CP()[Bearbeiten]
("command parameter") - Greift auf einen Parameter des Kommandos zu.
Parameter
- Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
Beispiel
#page_fill d=$CP(1)
$ICP()[Bearbeiten]
("is command parameter") - Vergleicht den Parameter des Kommandos mit dem im zweiten oder weiteren Parameter angegebenen Wert; Unterschiede in Groß- und Kleinschreibung werden dabei nicht berücksichtigt. Gibt Y zurück, wenn der Parameter mit einem der Vergleichswerte übereinstimmt.
Wird fast immer in Verbindung mit Verzweigungsbedingungen verwendet.
Parameter
- Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
- und Folgende: Vergleichswerte
Beispiele
~ $ICP(0,ex) ~ $ICP(0,ex,im,new)
Internes[Bearbeiten]
Die folgenden Funktionen werden für interne Zwecke verwendet:
- $INTER() - Name des Interpreters
- $HISTSQL() - SQL-Statement für den History-Dialog
- $HISTTABLE() - Tabellenname der History-Tabelle
- $HISTMEMOFIELD() - Feldname des Memo-Feldes für den History-Dialog