Interpreter
Im Interpreter sind nur wenige Prozeduren und Funktionen direkt implementiert. Die meisten Routinen finden sich in den Modulen.
Inhaltsverzeichnis
Values
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
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
#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
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()
Gibt den Inhalt eines Values zurück
Parameter
- Nummer des Values
Beispiel
#cout c=$VAL(3)
Log
#exception_info
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
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
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
#tab_new
Ö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()
("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()
("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
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