Расписание

Таймер
Рисунок 1. Пиктограмма функции

Общее описание функции

Функция Расписание выполняет роль таймера, активизируя бизнес-процесс в определенный момент и передавая управление на следующую за ней функцию.

Когда функция расписания включена в цикл, можно добиться активизации бизнес-процесса по определенному графику — в определенные моменты времени. Такой подход позволяет избежать необходимости повторно создавать экземпляры одного бизнес-процесса.

Сценарии использования

Функция расписания имеет два режима работы:
  • Однократное срабатывание: функция срабатывает один раз в определенное время или по истечении указанного периода времени, даже если она является частью цикла.

    Если функция расписания с однократным срабатыванием получает управление позже указанного для неё времени срабатывания, то она будет выполнена немедленно, если на вкладке Однократное срабатывание свойств функции был установлен флаг Учитывать дату или на следующий день в заданное время, если этот флаг установлен не был.

  • Периодическое срабатывание: функция срабатывает в соответствии с графиком, рассчитанным по определенному набору параметров.

    Чтобы функции расписания периодического типа срабатывала повторно, её необходимо включить в цикл.

Настройка параметров

Окно "Расписание". Вкладка "Параметры"
Рисунок 2. Окно "Расписание". Вкладка "Параметры"

На вкладке Параметры окна свойств функции следует указать режим работы функции (Однократное срабатывание или Периодическое срабатывание), а на вкладках Однократное срабатывание и Периодическое срабатывание — параметры срабатывания функции в зависимости от её типа и назначения.

Если необходимые для исполнения бизнес-процесса поля функции не были определены или значения переменных пустые, функция остановится по ошибке.

Однократное срабатывание

На вкладке Однократное срабатывание в секции Тип срабатывания с помощью переключателей определяется тип срабатывания функции — По абсолютному моменту времени или По относительному значению времени. В зависимости от выбранного переключателя следующая секция вкладки отображается в одном из двух возможных вариантов.

По абсолютному моменту времени

В этом случае следующая секция носит название Момент срабатывания и позволяет установить момент срабатывания функции расписания с помощью переменной типа дата/время или непосредственным заданием значения (с помощью календаря или ввода с клавиатуры). Флаг Учитывать дату позволяет кроме указанного времени учитывать дату срабатывания, без флага будет учитываться только время.

Окно "Расписание". Вкладка "Однократное срабатывание (по абсолютному моменту времени)
Рисунок 3. Окно "Расписание". Вкладка "Однократное срабатывание (по абсолютному моменту времени)
По относительному значению времени

В этом случае следующая секция носит название Величина задержки и позволяет указать период с момента получения управления функцией расписания до передачи ею управления на следующую функцию.
Период указывается при помощи целочисленной переменной (название которой указывается в поле Значение) или задания значения (в поле Значение) и его размерности (в поле Величина) — в секундах, минутах, часах, днях или неделях.

Окно "Расписание". Вкладка "Однократное срабатывание" (по относительному значению времени)
Рисунок 4. Окно "Расписание". Вкладка "Однократное срабатывание" (по относительному значению времени)

Периодическое срабатывание

На вкладке Периодическое срабатывание определяются параметры периодического срабатывания.

Окно "Расписание". Вкладка "Периодическое срабатывание"
Рисунок 5. Окно "Расписание". Вкладка "Периодическое срабатывание"
Начальная дата

Дата и время первого срабатывания функции, причем действуют следующие правила:

  • Если в поле Тип повторений явно не указывается момент срабатывания функции (например, В МАСКА Дни недели через ИНТЕРВАЛ Недель), то функция активизируется в момент времени, указанный в данном поле.

  • Если поле не заполнено, функция срабатывает в первый раз, когда приходит её очередь и ей передается управление, а затем — с указанной периодичностью — в то время суток, когда произошло её первое срабатывание.

  • Если управление передано функции расписания позднее Начальной даты, расчет следующей её активизации производится, исходя из текущей даты, а не из указанной в этом поле.

  • Начальная дата может вводиться как с помощью переменной типа Дата/Время, так и указанием конкретного значения.

Тип периодичности

Правило завершения действия функции расписания — при достижении некоторой даты (указанной в поле Конечная дата) или после определенного количества срабатываний (указанном в поле Число повторений), функция выполняется в бесконечном цикле, если тип периодичности не указан.

Конечная дата

Для типа периодичности Конечная дата. Если в момент передачи управления функции расписания значение текущей даты и времени превышает конечное значение даты, функция завершает работу.
Значение конечной даты можно указать путем ввода с клавиатуры или при помощи переменной типа Дата/Время.

Количество повторений

Для типа периодичности Количество повторений указывается количество срабатываний функции. Можно указать значение вручную или использовать целочисленную переменную.

Тип повторений

Один из следующих типов повторений:

  • Один раз — однократное повторение.

  • Каждые ИНТЕРВАЛ мин (час) — повторение каждые <числовое значение> минут/часов/недель/месяцев. Момент следующего срабатывания функции рассчитывается прибавлением к предыдущему моменту значения Интервала, которое указывается в следующем поле.

  • Каждые ИНТЕРВАЛ мин (час) после — повторение каждые <числовое значение> минут/часов/недель/месяцев. Момент следующего срабатывания функции рассчитывается прибавлением значения Интервала (размерность которого указывается в следующем поле) к моменту начала расчета.

  • В МАСКА часы через ИНТЕРВАЛ дней — повторение в <указание момента времени> часов через <числовое значение> дней (например, в 15:00 через каждые два дня).

  • В МАСКА дни недели через ИНТЕРВАЛ недель — повторение каждые <указание дней недели> через <числовое значение> недель (например, каждую среду через каждые три недели в момент времени, указанный в поле Начальная дата).

  • В МАСКА дни месяца через ИНТЕРВАЛ месяцев — повторение каждые <числовое значение> дни месяца через <числовое значение> месяцев (например, каждое 13 и 25 числа месяца через каждые четыре месяца в момент времени, указанный в поле Начальная дата).

  • В МАСКА дни недели через ИНТЕРВАЛ месяцев — повторение каждые <указание дней недели> через <числовое значение> месяцев (например, каждую среду через каждые два месяца в момент времени, указанный в поле Начальная дата).

  • МАСКА месяцы по ИНТЕРВАЛ (по маске) дням — повторение каждый <указание месяца> по <числовое значение> дням (например, каждый апрель восьмого числа в момент времени, указанный в поле Начальная дата).

  • МАСКА месяцы по ИНТЕРВАЛ (по маске) дням недели — повторение <указание месяца> по <указание дней недели> (например, каждый апрель и июнь по средам и четвергам в момент времени, указанный в поле Начальная дата).

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

Для типа периодичности Количество повторений указываются значения для различных типов повторений. Маска повторений может представлять собой числовое значение (значения), название дня (дней) недели, название месяца (месяцев).

Интервал повторений

Для типа периодичности Количество повторений определяется число, которое в поле Тип повторений обозначено как ИНТЕРВАЛ. Может быть задан интервал повторений переменной бизнес-процесса типа целое, которая работает либо как абсолютная величина (например, Через ИНТЕРВАЛ недель), либо также как Маска (например, если ИНТЕРВАЛ задает маску дней).

Рассчитанная дата

В поле может быть указана переменная бизнес-процесса, которой будет присвоено значение даты следующего срабатывания, рассчитанное по параметрам функции, определенным выше на этой же вкладке.

Связь выхода из функции

Функция, которой будет передано управление бизнес-процессом после достижения конечной даты, означающей выход из цикла.

Переменная для выбора в поле Связь выхода из функции должна быть объявлена в свойствах бизнес-процесса и иметь тип Дата/Время.

Маска повторений может определяться переменной бизнес-процесса типа целое. Переменная должна представлять собой бинарную маску (бинарная маска — это 2 в степени, равной требующемуся числу минус один), соответствующую часам, дням недели (с понедельника), числам месяца. Минимальное значение — 2^0=1, максимальное значение — 2^30 для 31 числа. Например, маска второго и двенадцатого чисел месяца определяется следующим образом: 2(2–1)+2(12-1)=2050.