Назначение
Присваивает значение указанному атрибуту элемента: по умолчанию — элемента, на котором сработал триггер; при заполненном поле «Исходный элемент(ы) (формула)» — каждого элемента из результата формулы. Самое востребованное действие: смена статусов, заполнение дат, вычисление служебных атрибутов, переход процесса на следующий этап.
Сведения о типе действия
| Параметр | Значение |
|---|---|
| Название в портале | Установить значение атрибута |
| Также встречается как | Установить значения атрибута; Установить значение поля |
| Activity в Elsa (обработчик) | Установить значение поля (SetItemFieldActivity) |
| ID типа элемента действия | 5e016e29-262e-467b-9d27-ac05dcf0c292 |
| Проверка условий правила | Да |
| Поддержка «Исходный элемент(ы) (формула)» | Да |
Атрибуты действия
| Атрибут | Обязательный | Описание | Пример |
|---|---|---|---|
| Название | Да | Текст. Название действия. | Установить статус процесса |
| Атрибут | Да | Атрибут, которому присваивается значение. Выбор из всех атрибутов системы, допустимо одно значение. Атрибут должен входить в тип целевого элемента. | Статус процесса |
| Формула | Да | Значение или формула для его расчёта. Результат должен соответствовать типу атрибута (для подстановок — Lookup(...), для дат — Date() и т.п.). Вычисляется в контексте целевого (исходного) элемента. | Lookup('Статус процесса.Согласующие') |
| Исходный элемент(ы) (формула) | Нет | Формула, возвращающая элемент(ы), которым нужно присвоить значение, вместо элемента-триггера. | Refs('Вложение процесса') |
Как работает
- Проверяются условия правила (в контексте элемента-триггера).
- Определяется список целевых элементов (исходные элементы или элемент-триггер).
- Для каждого целевого элемента: если его тип содержит указанный атрибут — вычисляется формула в контексте этого элемента, значение записывается, элемент сохраняется. Если атрибута нет — элемент пропускается без ошибки.
Исходный элемент(ы)
Если в карточке действия есть поле «Исходный элемент(ы) (формула)» и оно заполнено, действие выполняется не над элементом, на котором сработал триггер, а над каждым элементом, который вернула формула (элемент, значение подстановки, GUID или список). Формулы самого действия в этом случае вычисляются в контексте исходного элемента (функция This() ссылается на него), а условия правила — по-прежнему в контексте элемента-триггера. Подробнее: Общие поля и правила выполнения действий.
Примеры
| Задача | Атрибут | Формула | Комментарий |
|---|---|---|---|
| Перевести процесс на этап «Согласующие» | Статус процесса | Lookup("Статус процесса.Согласующие") | Вызовет правила столбца «Согласующие» Канбан-доски. |
| Зафиксировать дату начала | Дата начала (Факт) | Date() | |
| Рассчитать плановую дату окончания | Дата окончания (План) | AddDay(Date(), This("Трудозатраты этап 1")) | |
| Завершить процесс | Статус процесса | Lookup("Статус процесса.Завершен") | Процесс станет доступен только для чтения, ожидающий экземпляр Elsa будет отменён. |
Особенности
- Изменение атрибута — новое событие: могут сработать другие правила. Не назначайте действие, меняющее атрибут-триггер этого же правила.
- Действие, переводящее процесс в следующий статус, размещайте последним среди действий текущего статуса.
- Для изменения атрибутов вложений процесса можно использовать как это действие с полем «Исходный элемент(ы)», так и «Установить значение атрибута связанных объектов». Отличие — в контексте формулы: здесь формула вычисляется для каждого вложения, там — один раз для процесса.