Автозапуск настраивается в два этапа - сначала создается сервис для запуска, а потом настраивается периодичность его запуска и передача параметров. Есть два варианта автозапуска - по параметрам активной или приглашенной Персоны (День рождения, дата приема на работу, конец испытательного срока и т.п.) и безусловный.
Настройка сервиса
Вы можете создать обычный сервис. Единственный момент, который вам нужно будет учесть - это то, как будут переданы в него параметры.
В сервис могут передаваться три вида параметров:
-
дата запуска. Если вам нужен это параметр - создайте его как параметр с типом Дата
-
В случае запуска по персоне - персона и дата события у персоны. Сервис может вызываться отдельно для каждой персоны или для всех персон в месте. Если отдельно для каждой - предусмотрите два параметра типа Пользователь и Дата, если все вместе - вам понадобиться уже таблица с двумя полями, так же типа Пользователь и Дата
Названия параметров сервиса - произвольные. Вы их укажете при настройке запуска.
Важно! Параметры должны быть доступны для редактирования на стадии "Черновик".
Настройка запуска
Для настройки запуска в разделе автозапуск нужно создать запись со следующей метаинформацией:
title: Probation End Notification # Заголовок автозапуска
serviceId: 24 # Какой сервис запускать
startByPersonId: 6 # От имени кого запускать
cronSchedule: '*/1 * * * *' # Периодичность запуска в UTC. Можно настроить тут: https://crontab.guru/
launch: type: ByPersonFields # ByPersonFields или Unconditional
batch: false # Запускать один для всех событий (true) или отдельно по каждому (false)
inputData: filter: #Блок только для типа ByPersonFields
type: Condition
field: Person.ProbationEndDate # По какому полю вызывать событие - ProbationEndDate, BirthDate, JobStartDate, JobEndDate
condition: # Указывается за какой период отбирать персон
type: RelativeToCaseStart afterDays: 2 # В данном случае после 2х дней от срабатывания по расписанию
durationDays: 7 # Выбрать всех, у кого дата в промежутке 7-ми дней
# Передача параметров для случая batch: false (Запуск для каждого по-отдельности)
mapping:
- parameterId: param