Interpreter

Aus bafbal.de
Zur Navigation springen Zur Suche springen

Im Interpreter sind nur wenige Prozeduren und Funktionen direkt implementiert. Die meisten Routinen finden sich in den Modulen.

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
  • z - Wert der Variablen, Funktionen werden ersetzt, default ist ein leerer String

Beispiel

#val_set   n=7   z=$GUID()
#val_set   n=1   z=$GUID()   r=admin

#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

  1. 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

  1. tab_new c=xuser cmd=xuser($PAGE(link))

$CP()[Bearbeiten]

("command parameter") - Greift auf einen Parameter des Kommandos zu.

Parameter

  1. 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

  1. Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
  2. 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