Скрипт счетчика времени

Описание скрипта

Набор скриптов задает условия запуска/ приостановки/ возобновления/ остановки отсчета счетчика времени.

Место настройки скрипта

Форма добавления счетчика времени, см. Счетчики времени.

Когда выполняется скрипт

Первый раз скрипт выполняется в момент создания объекта, в котором используется указанный счетчик.

Скрипт выполняется при каждом изменении атрибутов объекта (кроме атрибутов типа "Счетчик времени" и "Счетчик времени(обратный)".

Результат выполнения скрипта

Скрипт возвращает:

  • "true" (верно) — условие выполнено и производится запуск, приостановка, возобновление или остановка счетчика;
  • "false" (ложь) — счетчик остается в текущем состоянии.

Переменные и их значения

Глобальные переменные:

  • user — пользователь, инициализировавший событие. Является объектом класса "Сотрудник" (employee). Если событие инициализировал суперпользователь, то user=null.
  • ip — ip-адрес рабочего места пользователя user. Если действие выполняется автоматически системой (а не пользователем), то переменная не определяется.
  • appVersion — версия приложения.
  • api — используется для обращения к методам api, например api.utils, api.ldap, api.timing, см. Методы API;
  • modules — используется для обращения к скриптовому модулю и конкретному методу, определенному в нем, с помощью конструкции: modules.{код модуля}.{имя метода}({параметры метода}...), см. Скрипт текста модуля;
  • logger — используется для отладки скриптов и позволяет вывести в лог на указанный уровень переданную строку, см. Оформление и отладка скриптов.
  • utils — синоним api.utils.

Переменные контекста:

  • subject — объект, атрибутом которого является счетчик;
  • oldSubject — старое значение объекта. При использовании переменной значение атрибутов типа "Обратная ссылка" всегда будет равно null.

Особенности скрипта

Если в скрипте счетчика времени используется значение какого-либо атрибута объекта или нескольких атрибутов, необходимо использовать аннотацию, в которой указывается код данного атрибута (@DependsOn ('counter1')) или атрибутов (@DependsOn (['counter1', 'counter2'])), от которых зависит настраиваемый счетчик. Это позволит гарантировать, что в момент вычисления скрипта условия счетчика времени значения необходимых атрибутов будут заполнены.

Подробнее описание аннотации см. Использование аннотации @DependsOn.

Примеры скрипта

1. Скрипт условие начала отсчета счетчика времени:

return (subject.state == 'registered' && oldSubject.state == 'resolved')

2. Скрипт условие остановки счетчика времени:

return (subject.state == 'closed')