IfThen

Navigation:  Entwicklerhilfe > Makro-Referenz OmAPI

IfThen

Previous pageReturn to chapter overviewNext page

Makro-Funktion IfThen

Rückgabe von Werten entsprechend einer Bedingung.

Syntax

{IfThen:Condition,TrueValue[,FalseValue]}

Parameter

Condition: Die Variable gibt den ersten Parameter TrueValue zurück, wenn die Bedingung erfüllt ist.
Condition erlaubt die Operatoren =, <>, < und >. Zwischen Groß- und Kleinschreibung wird nicht unterschieden.
Hinweis: '=' und '<>' vergleichen den Text, '01' ist dabei ungleich '1'.
'<' und '>' sind nur für ganze Zahlen erlaubt, '01' ist dabei gleich '1'.

TrueValue: Wird zurückgegeben, wenn die Bedingung erfüllt ist.

FalseValue (optional): Wird zurückgegeben, wenn die Bedingung nicht erfüllt ist.

Rückgabewert

Einen der Parameter, je nach Bedingung.

Beschreibung

Die Funktion gibt TrueValue zurück, wenn die Bedingung erfüllt ist. Wenn die Bedingung nicht erfüllt wird, ist die Rückgabe leer bzw. der Wert im optionalen Parameter FalseValue. Im Gegensatz zu IF kann diese Variable in beliebigen Makros verwendet werden.

Wenn Sie in TrueValue oder FalseValue Variablen oder Funktionen verwenden, dann beachten Sie bitte, dass diese unabhängig von der Bedingung immer interpretiert werden. In der Regel werden also nur Variablen und keine Funktionen als Parameter angegeben, siehe unten "Fehlerhaftes Beispiel".

Beispiele

Korrektes Beispiel

{DBSetField:Doc,STATE={IfThen:{Doc:CATEGORY}=Anfrage,Zu erledigen,Archiv}}

Wenn die Dokumentkategorie "Anfrage" ist, dann wird "Zu erledigen" in das Statusfeld kopiert. Anderenfalls ist der Status "Archiv".

Fehlerhaftes Beispiel

{IfThen:{Doc:CATEGORY}=Anfrage,{DBSetField:Doc,STATE=Zu erledigen},{DBSetField:Doc,STATE=Archiv}}

Auf den ersten Blick sollte dies zum gleichen Ergebnis führen. Tatsächlich ist der Status anschließend aber immer "Archiv". Der Interpreter führt zuerst "{DBSetField:Doc,STATE=Zu erledigen}" aus, dann "{DBSetField:Doc,STATE=Archiv}" und wertet zuletzt die IfThen-Variable aus. Diese hat aber keine Bedeutung, weil die beiden DBSetField-Funktionen keinen Wert zurückgeben.

Siehe auch

Makro-Referenz

Bedingte Ausführung

IF-Anweisung