簡易フィルタは次のような場合に使用します。
あるデバイスがフィルタ要件を満たしたときにコマンドを実行するアクションを設定します。 たとえば、ページ数が 1 万ページを超えるプリンタのみを含むフォルダを作成します。 監視対象プリンタは、ページ数が 1 万ページを超えるとこのフォルダに追加されます。
フラッシュデバイスが取り付けられているプリンタのみ監視します。 たとえば、フォルダにフラッシュデバイスが取り付けられているプリンタのみが含まれている場合、監視対象プリンタからフラッシュデバイスを取り外すと、プリンタはフォルダから削除されます。 プリンタがフィルタ要件を満たさない場合、フィルタによってフォルダが自動的に更新されます。
デバイスをフォルダに追加、またはフォルダから削除した後で、指定された時間だけアクションの実行を遅延するには[with a delay of(遅延時間)]オプションを使用します。
条件が有効になったときにのみコマンドが実行されるようにアクションを設定するには、[Trigger on Active(有効になったら起動)]フィルタを選択します。 たとえば、「Paper Tray Missing(用紙カセットがありません)」イベントを監視している場合、監視対象プリンタからカセットを取り外すと、このプリンタにより、有効な状態の「Paper Tray Missing(用紙カセットがありません)」イベントが生成されます。 有効状態によりフィルタ条件が満たされ、指定されたアクションが実行されます。 用紙カセットが取り付けられると、プリンタにより、クリア状態の「Paper Tray Missing(用紙カセットがありません)」イベントが生成されます。 クリア状態ではフィルタ条件は満たされないため、指定されたアクションは実行されません。
条件が有効またはクリアされたときにアクションが実行されるように設定するには、[Trigger on Either Active or Clear(有効化またはクリアされたときに起動)]フィルタを選択します。 たとえば、紙づまりの除去に必要な時間の平均値を判断するために、プリンタで発生するすべての紙づまりのログを記録するにはこのフィルタを使用します。 紙づまりが発生すると、プリンタにより有効状態のイベントが生成されます。 これにより、フィルタの条件が満たされ、アクションが実行されます。 紙づまりが除去されると、プリンタによりクリア状態のイベントが生成されます。 このイベントでも、フィルタの条件が満たされ、アクションが実行されます。 この結果、ログファイルには紙づまりが発生した時刻と、除去された時刻の 2 行が記録されます。
アクションの実行方法を定義するにはカスタムフィルタを使用します。 スクリプトファイルをアップロードするか、新しいスクリプトファイルを作成します。 MarkVision Messenger には、フィルタを定義するための非常に簡単なスクリプト言語が用意されています。 以下にカスタムフィルタで使用できるすべてのステートメントと条件を示します。
(条件)
(条件)
(条件)
{ StatementList }(ステートメントリスト)
(条件_1...条件_n)
(条件_1...条件_n)
(key、値)
(key、値)
例として、付属の[Trigger on Active filter(有効になったら起動)]フィルタのスクリプトを示します。
IfThen (EventDataIs("state", "ACTIVE"))
Distribute条件 は、イベントのキーワード event: state の値をたずねます。 このキーワードはコマンドラインや電子メールメッセージに挿入できます。 ステートメント は、条件 が真の場合に、次のステートメントを実行します。 条件 は、キーワード (state) の値が指定された値 (ACTIVE) と一致する場合に真になります。 次のステートメント は、コマンドが実行されるようにします。
[Trigger on Active(有効になったら起動)]フィルタアクションを 30 秒の遅延後に行う場合に使用されるスクリプトの例は次のとおりです。
{
WaitUntil (TimeIsAfter(30))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}中括弧({ })は、ステートメントをリストにまとめるのに使用されます。 前の例では、 とそれ以降のものが 1 つのステートメントとして扱われていたために必要ありませんでした。
ステートメント により、スクリプトは条件が真になるまで一時停止されます。 条件 は、指定された時間が経過した場合にのみ真偽を確認します。 30 秒後に依然としてイベントが有効であった場合、ステートメント によりコマンドが実行されます。
付属の[Trigger on Either Active or Clear(有効またはクリアされたときに起動)]フィルタをスクリプトで表現すると次のようになります。このフィルタでは、「Tray 3(カセット 3)」に対して「Paper Tray Missing(用紙カセットがありません)」イベントが選択され、コマンドの実行までの遅延が 20 分間で、条件が有効の場合、コマンドは 20分おきに繰り返されます。
While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Tray 3")))
{
WaitUntil(TimeIsAfter(1200))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}この例では、 は複合条件を作成するために使用されています。 「Tray 3(カセット 3)」に対してイベントが有効である場合のみ、While ループが実行または繰り返されます。 ループ中のコードは、条件 が 1200 秒間(20 分間)待機するように設定されていること以外は、[Trigger on Active(有効になったら起動)]フィルタの内容と同じです。