Les filtres personnalisés vous permettent de définir le mode d'exécution de votre action. Pour ce faire, vous pouvez soit télécharger (côté serveur) un fichier de script déjà défini, soit en créer un.
MarkVision Messenger dispose d'un langage de création de script très simple pour définir des filtres. Vous trouverez ci-dessous la liste complète des instructions et des conditions que vous pouvez utiliser pour créer un filtre personnalisé :
Instructions :
Conditions :
Prenons comme exemple la représentation sous forme de script du filtre intégré Déclencher lorsqu'elle est définie sur Active :
IfThen (EventDataIs("state", "ACTIVE"))
Distribute
La condition EventDataIs
a pour effet de demander la valeur du mot-clé event.state à l'événement. Il s'agit du même mot-clé que vous pouvez insérer dans les lignes de commande et dans les messages électroniques. La première instruction, IfThen
, exécute l'instruction suivante si la condition EventDataIs ("state", "ACTIVE")
est vérifiée. La condition EventDataIs
est vérifiée si la valeur du mot-clé (state
) correspond à la valeur donnée (ACTIVE
). L'instruction suivante, Distribute
, lance l'exécution de la commande.
Examinons maintenant le script à créer lorsque le filtre Déclencher lorsqu'elle est définie sur Active est réglé avec un retard de 30 secondes :
{
WaitUntil (TimeIsAfter(30))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}
Les accolades ({}
) sont utilisées pour grouper des instructions dans une liste. Elles n'étaient pas nécessaires dans l'exemple précédent car l'instruction IfThen
et la suivante étaient considérées comme une seule et même instruction.
L'instruction WaitUntil
permet d'attendre que la condition soit vérifiée avant d'exécuter la commande. La condition TimeIsAfter
vérifie si la condition est vraie uniquement lorsque le nombre de secondes indiqué est écoulé. Une fois les 30 secondes passées, si l'événement est toujours Actif, l'instruction Distribute
exécute la commande.
La représentation sous forme de script d'un filtre Déclencher lorsqu'elle est active ou effacée est une instruction Distribute
simple. Par exemple, vous avez choisi Tiroir manquant comme événement, mais vous ne souhaitez exécuter la commande que lorsque cet événement se produit pour le tiroir 3. De plus, vous souhaitez attendre 20 minutes avant d'exécuter la commande et l'exécuter à nouveau dans 20 minutes si la condition demeure Active. Examinons le script correspondant :
While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Tray 3")))
Dans cet exemple, And
a été utilisé pour construire une condition composée. La boucle While
n'est entrée ou répétée que si l'événement est actif pour Tiroir 3. Le code contenu dans la boucle est le même que le code correspondant au filtre Déclencher lorsqu'elle est définie sur Active, sauf que la condition TimeIsAfter
est réglée sur une attente de 1200 secondes (20 minutes).