사용자 정의 필터를 사용하면 액션을 실행하는 방법을 사용자 정의할 수 있습니다. 이것은 기존에 정의된 스크립트를 업로드하거나 새로운 스크립트를 작성하여 수행할 수 있습니다.

MarkVision Messenger는 필터를 정의할 수 있도록 매우 간단한 스크립팅 언어를 제공합니다. 아래 내용은 사용자 정의 필터를 작성할 때 사용할 수 있는 문(statement)과 조건에 대한 전체 목록입니다.

명령문

조건

다음은 내장된 활성화될 때 트리거 필터의 스크립트를 보여주는 예제입니다.

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

EventDataIs 조건은 이벤트에 대해 event.state 키워드의 값을 요청합니다. 이것은 명령줄과 이메일 메시지에 삽입할 수 있는 것과 동일한 키워드입니다. 첫 번째 IfThen문은 조건 EventDataIs ("state", "ACTIVE")가 true일 때 다음 명령문을 실행합니다. 키워드의 값(state)이 지정된 값(ACTIVE)과 일치할 경우 EventDataIs 조건은 true입니다. 다음 Distribute 문은 명령이 실행되도록 합니다.

스크립트가 30초의 지연시간을 가지고 Trigger on Active(활성화될 때 트리거) 필터를 설정하는 방법이 여기 나와 있습니다.

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

중괄호({})는 명령문을 목록으로 그룹화하는데 사용됩니다. 이전 예제에서는 IfThen과 그 이후의 명령문이 단일 명령문으로 취급되었기 때문에 중괄호를 사용할 필요가 없었습니다.

WaitUntil 문은 조건이 true가 될 때까지 스크립트 실행을 일시 중지합니다. TimeIsAfter 조건은 지정된 시간(초)이 경과한 후에만 true 여부를 확인합니다. 30초가 지난 후 이벤트가 계속 활성화된 경우 Distribute 문은 명령을 실행합니다.

내장된 Trigger on Either Active or Clear((활성화될 때 또는 지울 때 트리거) 필터의 스크립트는 단일 Distribute 명령문으로 나타냅니다. 예를 들어, Paper Tray Missing(급지대 없음)을 이벤트로 선택하지만 이벤트가 Tray 3에 대해 발생할 경우에만 명령을 실행하고자 할 경우에 대해 살펴 보겠습니다. 또한 명령을 실행하기 전에 20분을 대기하고 조건이 Active(활성화) 상태를 유지할 경우 동일한 20분 간격에 다시 명령을 실행할 수 있습니다. 해당 필터의 스크립트는 다음과 같습니다.

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

이 예제에서 And는 복합 조건을 생성하는데 사용되었습니다. While 루프는 이벤트가 용지함 3에 대해 활성화된 경우에만 루프 작업을 수행합니다. 루프 내부 코드는 TimeIsAfter 조건이 1200초(20분)를 대기하도록 설정된 경우를 제외하고 활성화될 때 트리거 필터의 코드와 동일합니다.