下面是简单过滤器的使用示例:
配置操作在设备符合过滤器要求时执行命令。例如,创建只包含页计数大于 10,000 的打印机的文件夹。当被监视的打印机的页计数超过 10,000 时,它被添加到该文件夹中。
只监视已安装闪烁存储器设备的打印机。例如,如果文件夹只包含已安装闪烁存储器设备的打印机,并且从被监视的打印机中移除闪烁存储器设备,该打印机将从文件夹中被删除。当打印机不符合过滤器要求时,过滤器自动更新文件夹。
使用“延迟”选项来在设备被添加到文件夹或从文件夹中被删除后,延迟操作的执行到指定的时间。
选择“活动时触发”的过滤器来设置只在状态变为“活动”时才执行命令的操作。例如,如果您正在监视“缺少进纸匣”事件,并且有人从被监视的打印机中取出进纸匣,打印机产生状态为“活动”的“缺少进纸匣”事件。“活动”状态满足过滤器的条件,因此执行指定的操作。当进纸匣被装回原位时,打印机产生另一个“缺少进纸匣”事件,状态为“清除”。“清除”状态不满足过滤器的条件,因此操作不被执行。
选择“活动或清除时触发”的过滤器来设置每次在状态变为“活动”或“清除”时执行的操作。例如,使用过滤器来对所有打印机卡纸进行记录,这样可以确定清除卡纸所需要的平均时间。当发生卡纸时,打印机产生状态为“活动”的事件。这满足过滤器的条件,因此执行操作。当卡纸被清除时,打印机产生另一个状态为“清除”的事件。该事件也满足过滤器的条件,因此执行操作。现在,在日志文件中有两行记录,一行是发生卡纸的时间,另一行是清除卡纸的时间。
使用自定义过滤器来定义如何执行操作。上载脚本文件或编写新的脚本。MarkVision Messenger 提供非常简单的脚本编写语言来定义过滤器。下面是完整的语句和条件的列表,您可以用来编写自定义过滤器:
(条件)
(条件)
(条件)
{ StatementList }
(条件_1...条件_n)
(条件_1...条件_n)
(关键字,值)
(关键字,值)
下面是内建的“活动时触发”过滤器的脚本表示:
IfThen (EventDataIs("state", "ACTIVE"))
Distribute条件的作用是询问事件有关 event: state 关键字的值。这个关键字可以被插入命令行和电子邮件消息中。 语句在条件 为真时执行下一条语句。如果关键字(state)与给定的值(ACTIVE)相匹配,则 条件为真。下一条语句,,使命令被执行。
下面是“活动时触发”的过滤器被延迟 30 秒时使用的脚本示例:
{
WaitUntil (TimeIsAfter(30))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}大括号({})被用于将语句组成列表。在前面的示例中不需要它们,因为 和后面的语句被当作一条语句处理。
语句使脚本暂停执行,直到条件为真。 条件只在经过指定的秒数后检查是否为真。当经过 30 秒之后,如果事件仍然为活动,则 语句执行命令。
下面是内建的“活动或清除时触发”过滤器的脚本表示,用于下列环境:“缺少进纸匣”事件选定为“进纸匣 3”,在执行命令之前有 20 分钟延迟,如果条件保持活动则每隔 20 分钟重复执行命令。
While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Tray 3")))
{
WaitUntil(TimeIsAfter(1200))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}在该示例中, 被用于构造组合条件。只有当“进纸匣 3”的事件是活动时,才进入或重复 While 循环。除了 条件被设置为等待 1200 秒(20 分钟)之外,循环中的代码与“活动时触发”过滤器的代码相同。