Welcome to our Help Center 👋

Бета-функции

Внимание! Мы не гарантируем поддержку этих функций в будущих релизах в том виде, как они описаны сейчас.
AR
Written by Anton Resko
Updated 4 months ago

Валидация параметров типа Date

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

parameters: 
declaration:
- id: parameter-1
caption: Дата возмещения
type: date
mode: date
validations:
- formula: Today() <= [parameter-1]
message: Значение параметра не может быть в прошлом

Поддерживаемы функции:

  • Today() - сегодняшняя дата без времени

  • Now() - текущее время и дата

  • NowUTC()- текущее время и дата в UTC

  • AddDay([дата], [сколько дней добавить], [тип календаря]) - добавляет указанное количество дней к дате. Тип календаря - WorkDays или CalendarDays, соотв. рабочие или календарные дни согласно календаря по-умолчанию

  • [parameter_id] - использовать значение параметра

  • 'YYYY-MM-DD' - константа типа дата

  • 'YYYY-MM-DD HH:MM:SS' - константа типа дата/время

Пример использования функции добавления дней

     validations: 
- formula: AddDay(Today(), 3, WorkDays) <= [parameter-1]
message: Значение параметра должно быть на три дня позже чем сегодня

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

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

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

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

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

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

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

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

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

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

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

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: parameter-3 # Параметр сервиса, куда будет передана дата срабатывания
value: Case.StartedAt
converter:
type: AddDays
count: 3 # Сколько дней добавить к этой дате
- parameterId: parameter-1 # Параметр сервиса, куда будет передана персона
value: Person
- parameterId: parameter-2 # Параметр сервиса, куда будет передана дата события
value: Person.ProbationEndDate
# Передача параметров для случая batch: true (Запуск для всех вместе)
mapping:
- parameterId: parameter-1
value: Case.StartedAt
converter:
type: AddDays
count: 3
- parameterId: parameter-2 # Таблица в которую будут переданы все персоны по которым сработает событие
batch: true
mapping:
- parameterId: parameter-1
value: Person
- parameterId: parameter-2
value: Person.BirthDate
converter:
type: NextClosestDate
Did this answer your question?