Mit Hilfe von benutzerdefinierten Filtern können Sie anpassen und festlegen, wie und wann eine Aktion ausgeführt wird. Sie können hierfür entweder eine zuvor definierte Skriptdatei laden oder ein neues Skript schreiben.
MarkVision Messenger verfügt über eine sehr einfache Skriptsprache zum Definieren von Filtern. Nachfolgend finden Sie eine vollständige Liste der Anweisungen und Bedingungen, mit denen Sie einen benutzerdefinierten Filter erstellen können:
Anweisungen:
Bedingungen:
Als Beispiel finden Sie hier die Skriptdarstellung des integrierten Filters Auslösen bei Aktivierung:
IfThen (EventDataIs("state", "ACTIVE"))
Distribute
Die Bedingung EventDataIs
fragt das Ereignis nach dem Wert des Schlüsselworts event.state. Es handelt sich um dasselbe Schlüsselwort, das Sie in Befehlszeilen und E-Mail-Nachrichten einfügen können. Die erste Anweisung (IfThen
) führt die nächste Anweisung aus, sofern die Bedingung EventDataIs ("state", "ACTIVE")
wahr ist. Eine Bedingung EventDataIs
ist wahr, wenn der Wert des Schlüsselworts (state
) mit dem vorgegebenen Wert (ACTIVE
) übereinstimmt. Die nächste Anweisung (Distribute
) veranlaßt die Ausführung des Befehls.
Als nächstes betrachten wir das Skript, das verwendet werden muß, wenn für den Filter Auslösen bei Aktivierung eine Verzögerung von 30 Sekunden festgelegt ist:
{
WaitUntil (TimeIsAfter(30))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}
Die geschweiften Klammern ({}
) dienen dazu, Anweisungen zu einer Liste zusammenzufassen. Im vorstehenden Beispiel sind sie nicht erforderlich, da IfThen
und die folgende Anweisung als eine Anweisung betrachtet werden.
Die Anweisung WaitUntil
hält die Ausführung des Skripts an, bis die Bedingung wahr wird. Die Bedingung TimeIsAfter
prüft erst dann, ob die Bedingung wahr ist, nachdem die festgelegte Anzahl Sekunden verstrichen ist. Wenn das Ereignis nach Ablauf der 30 Sekunden immer noch aktiv ist, wird der Befehl mit der Anweisung Distribute
ausgeführt.
Die Skriptdarstellung des integrierten Filters Auslösen bei Aktivierung oder Löschung ist eine einzige Distribute
-Anweisung. Angenommen, Sie wählen Papierfach fehlt als Ereignis aus, der Befehl soll jedoch nur ausgeführt werden, wenn das Ereignis in Fach 3 stattfindet. Außerdem möchten Sie 20 Minuten warten, bis der Befehl ausgeführt wird, und den Befehl nach jeweils weiteren 20 Minuten erneut ausführen, wenn die Bedingung aktiv bleibt. Für diesen Filter muß folgendes Skript geschrieben werden:
While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Fach 3")))
In diesem Beispiel wurde mit Hilfe von And
eine kombinierte Bedingung erstellt. Die Schleife While
wird nur dann eingeleitet oder wiederholt, wenn das Ereignis für Fach 3 aktiv ist. Der Code innerhalb der Schleife ist identisch mit dem Code des Filters Auslösen bei Aktivierung, mit der Ausnahme, daß für die Bedingung TimeIsAfter
eine Verzögerung von 1200 Sekunden (20 Minuten) eingerichtet ist.