Автозапуск сервисов

Written by Anton Resko
Updated 2 years ago

Автозапуск настраивается в два этапа - сначала создается сервис для запуска, а потом настраивается периодичность его запуска и передача параметров. Есть два варианта автозапуска - по параметрам активной или приглашенной Персоны (День рождения, дата приема на работу, конец испытательного срока и т.п.) и безусловный.

Настройка сервиса

Вы можете создать обычный сервис. Единственный момент, который вам нужно будет учесть - это то, как будут переданы в него параметры.

В сервис могут передаваться три вида параметров:

  • дата запуска. Если вам нужен это параметр - создайте его как параметр с типом Дата

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

Названия параметров сервиса - произвольные. Вы их укажете при настройке запуска.

Важно! Параметры должны быть доступны для редактирования на стадии "Черновик".

Настройка запуска

Для настройки запуска в разделе автозапуск нужно создать запись со следующей метаинформацией:

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
Did this answer your question?