Проблематика и принцип работы
Как правило, триггером Автоматизации является изменение статуса элемента:
...
Иногда требуется реагировать на изменение другого атрибута. Типичная ситуация — загрузка новой версии файла: если документ уже имел статус «Согласовано» или «Отклонено», после обновления его нужно перевести в статус «На корректировке», чтобы пользователи видели, что файл изменился.
Пример настройки автоматического сброса статуса файла при размещении новой версии
Создаётся одиночное правило автоматизации для типа элемента «Файл проекта»: при любом изменении системного атрибута «Файл» (он обновляется при сохранении новой версии) атрибуту «Статус файла» устанавливается значение «На корректировке». Значение-триггер не указывается — важен сам факт изменения.
...
- Открыть системный список правил.
В пространстве Центр администрирования перейти в Настройки → Списки и открыть содержимое списка «Автоматизация» двойным щелчком по строке. - Добавить правило.
Создать элемент с типом «Изменено значение атрибута (правило автоматизации)», заполнить атрибуты, добавить условие и действие:Название Тип элемента Тип действия Атрибут Значение (строка) Условия Действия Файл проекта_Смена статуса файла при повторном размещении Файл проекта Установить значение атрибута Файл не заполняется - Название:
Если повторное размещение файла пользователем - Формула:
This("Версия.Название") != "0.1" && Str(Id(This("editor"))) != "00000000-0000-0000-0000-000000000001" && This("Статус файла.Название") != "Размещено"
- Название:
Установить значение атрибута (Статус файла) - Атрибут:
Статус файла - Формула:
Lookup("Статусы документов.На корректировке")
- Название:
Разбор условия
| Часть формулы | Зачем нужна |
|---|---|
This("Версия.Название") != "0.1" | Исключает первичную загрузку файла: при создании элемента «Файл» тоже считается изменённым атрибутом. |
Str(Id(This("editor"))) != "00000000-0000-0000-0000-000000000001" | Исключает изменения, сделанные самой системой. Действия автоматизации выполняются от имени системного пользователя с этим идентификатором; например, «Добавить штамп» и «Добавить пустую страницу» перезаписывают «Файл» — без этой проверки штамп на согласованном документе сбрасывал бы его статус. |
This("Статус файла.Название") != "Размещено" | Не менять статус файлам, которые ещё не проходили согласование. |
...