Filtros personalizados

Los filtros personalizados permiten personalizar y definir el modo de ejecución de la acción. Para ello, puede cargar un archivo de script definido anteriormente o escribir uno nuevo.

MarkVision Messenger proporciona un lenguaje sencillo de script para definir filtros. A continuación, se proporciona una lista completa de sentencias y condiciones que puede utilizar para escribir un filtro personalizado:

Sentencias:

Condiciones:

A continuación se muestra la representación del script del filtro incorporado Desencadenar activo como ejemplo.

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

El efecto de la condición EventDataIs es solicitar el evento para el valor de la palabra clave event.state. Esta palabra clave es la misma que puede insertar en las líneas de comandos y los mensajes de e-mail. La primera sentencia, IfThen, ejecuta la siguiente sentencia si la condición EventDataIs ("state", "ACTIVE")es verdadera. Una condición EventDataIs es verdadera si el valor de la palabra clave (state) coincide con el valor concreto (ACTIVE). La siguiente sentencia, Distribute, conlleva la ejecución del comando.

A continuación, se muestra el script para escribir cuando el filtro Desencadenar activo está definido con un retraso de 30 segundos:

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

Las llaves ({}) se utilizan para agrupar sentencias en una lista. No se agregaron en el ejemplo anterior, ya que la sentencia IfThen y la siguiente se tomaron como una sola.

La sentencia WaitUntil hace que el script detenga la ejecución hasta que la condición sea verdadera. La condición TimeIsAfter comprueba si es verdadera después del tiempo (número de segundos) especificado. Cuando hayan pasado 30 segundos, si el evento está todavía activo, la sentencia Distribute ejecuta el comando.

La representación del script del filtro incorporado Desencadenar activo o borrado es sólo una sentencia Distribute. Por ejemplo, si selecciona como evento Falta bandeja de papel pero sólo desea ejecutar el comando cuando el evento se produce en la Bandeja 3. Además, desea esperar 20 minutos antes de ejecutar el comando y volver a ejecutarlo en el mismo intervalo de 20 minutos si la condición sigue estando activa. A continuación se muestra el script para escribir este filtro:

While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Tray 3")))

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

En este ejemplo, And se ha utilizado para crear una condición compuesta. El bucle While sólo se introduce o repite si el evento está activo para la Bandeja 3. El código dentro del bucle es el mismo que el del filtro Desencadenar activo, excepto la condición TimeIsAfter, que está definida para esperar 1200 segundos (20 minutos).