Verwenden von Filtern mit Aktionen

Verwenden von einfachen Filtern

Beispiele für die Anwendung von einfachen Filtern:

Mit der Option "mit Verzögerung" lässt sich die Ausführung einer Aktion für einen angegebenen Zeitraum nach dem Hinzufügen oder Entfernen eines Geräts zum/vom Ordner verzögern.

Verwenden des Filters "Trigger on Active"

Wählen Sie den Filter "Trigger on Active", wenn eine Aktion nur dann einen Befehl ausführen soll, wenn eine Bedingung den Status "Active" annimmt. Beispiel: Wenn das Ereignis "Papierfach fehlt" überwacht wird und es wird ein Fach aus einem überwachten Drucker entfernt, erstellt der Drucker ein Ereignis "Papierfach fehlt" mit dem Status "Active". Der Status "Active" erfüllt die Filterbedingung und die angegebene Aktion wird ausgeführt. Wenn das Papierfach ausgetauscht wird, erstellt der Drucker ein weiteres Ereignis "Papierfach fehlt" mit dem Status "Clear". Der Status "Clear" erfüllt die Filterbedingung nicht und die angegebene Aktion wird nicht ausgeführt.

Verwenden des Filters “Bei 'Aktiv' oder 'Löschen' auslösen"

Wählen Sie den Filter “Bei 'Aktiv' oder 'Löschen' auslösen" aus, um eine Aktion einzurichten, die immer dann ausgeführt wird, wenn eine Bedingung den Status "Aktiv" oder "Löschen" aufweist. Mithilfe dieses Filters können Sie z. B. ein Protokoll über alle Papierstaus in Druckern führen, um festzustellen, wie lang es im Durchschnitt dauert, um einen Stau zu beheben. Sobald ein Papierstau auftritt, wird vom Drucker ein Ereignis mit dem Status "Aktiv" erzeugt. Dadurch wird die Bedingung des Filters erfüllt und die Aktion wird ausgeführt. Sobald ein Papierstau behoben ist, wird vom Drucker ein anderes Ereignis mit dem Status "Löschen" erzeugt. Dadurch wird ebenfalls die Bedingung des Filters erfüllt und die Aktion wird ausgeführt. Die Protokolldatei enthält nun zwei Zeilen: eine mit dem Zeitpunkt, zu dem der Papierstau auftrat, und die andere mit dem Zeitpunkt, zu dem er behoben wurde.

Verwenden von benutzerdefinierten Filtern

Benutzerdefinierte Filter dienen zur Definition, wie eine Aktion ausgeführt werden soll. Es kann eine Skriptdatei übertragen oder eine neue Skriptdatei erstellt werden. MarkVision Messenger verfügt über eine sehr einfache Skriptsprache zur Definition von Filtern. Es folgt eine vollständige Liste von Anweisungen und Bedingungen, die für benutzerdefinierte Filter zur Verfügung stehen:

Anweisungen:

Bedingungen:

Skriptbeispiel - Filter "Trigger on Active"

Das folgende Beispiel ist die Skriptdarstellung des integrierten Filters "Trigger on Active":

IfThen (EventDataIs("state", "ACTIVE"))
Distribute

Durch die Bedingung EventDataIs wird vom Ereignis der Ereigniswert abgefragt: Schlüsselwort state. Dieses Schlüsselwort kann in Befehlszeilen und E-Mail-Nachrichten eingefügt werden. Die IfThen-Anweisung führt die nächste Anweisung aus, wenn die Bedingung EventDataIs ("state", "ACTIVE") erfüllt ist. Eine EventDataIs-Bedingung ist erfüllt, wenn der Wert des Schlüsselworts (state) mit dem vorgegebenen Wert (ACTIVE) übereinstimmt. Die nächste Anweisung Distribute bewirkt die Ausführung des Befehls.

Skriptbeispiel - Filter "Trigger on Active" mit 30 Sekunden Verzögerung

Im folgenden Skriptbeispiel ist die Aktion "Trigger on Active" um 30 Sekunden verzögert:

{
WaitUntil (TimeIsAfter(30))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}

Die geschweiften Klammern ({}) dienen zur Gruppierung von Anweisungen in Listen. Im vorherigen Beispiel waren diese Klammern nicht erforderlich, weil die Anweisung IfThen und die nachfolgenden Anweisungen als eine einzige Anweisung betrachtet worden waren.

Die Anweisung WaitUntil bewirkt das Anhalten der Skriptausführung, bis die Bedingung erfüllt ist. Die Bedingung TimeIsAfter wird erst auf ihre Erfüllung geprüft, wenn die angegebene Anzahl von Sekunden vergangen ist. Wenn das Ereignis nach 30 Sekunden noch aktiv ist, wird der Befehl durch die Anweisung Distribute ausgeführt.

Skriptbeispiel - Filter "Trigger on Either Active or Clear"

Die folgende Skriptdarstellung des integrierten Filters "Trigger on Either Active or Clear" gilt für folgende Situation: Für Fach 3 ist das Ereignis "Papierfach fehlt" ausgewählt, der Befehl wird mit 20 Minuten Verspätung ausgeführt und der Befehl wird alle 20 Minuten wiederholt, wenn die Bedingung weiterhin im Status "Active" verbleibt.

While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Tray 3")))
{
WaitUntil(TimeIsAfter(1200))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}

In diesem Beispiel wurde And für die Erstellung einer zusammengesetzten Bedingung verwendet. Die While-Schleife wird nur abgearbeitet bzw. wiederholt, wenn das Ereignis für Fach 3 aktiv ist. Der Code innerhalb der Schleife ist mit Ausnahme der Bedingung TimeIsAfter, die hier auf 1200 Sekunden (20 Minuten) eingestellt ist, derselbe wie beim Filter "Trigger on Active".