Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Проблематика и принцип работы

Как правило, триггером Автоматизации является изменение статуса элемента:

...

Иногда требуется реагировать на изменение другого атрибута. Типичная ситуация — загрузка новой версии файла: если документ уже имел статус «Согласовано» или «Отклонено», после обновления его нужно перевести в статус «На корректировке», чтобы пользователи видели, что файл изменился.

Пример настройки автоматического сброса статуса файла при размещении новой версии

Создаётся одиночное правило автоматизации для типа элемента «Файл проекта»: при любом изменении системного атрибута «Файл» (он обновляется при сохранении новой версии) атрибуту «Статус файла» устанавливается значение «На корректировке». Значение-триггер не указывается — важен сам факт изменения.

...

  1. Открыть системный список правил.
    В пространстве Центр администрирования перейти в Настройки → Списки и открыть содержимое списка «Автоматизация» двойным щелчком по строке.
  2. Добавить правило.
    Создать элемент с типом «Изменено значение атрибута (правило автоматизации)», заполнить атрибуты, добавить условие и действие:
    НазваниеТип элементаТип действияАтрибутЗначение (строка)УсловияДействия
    Файл проекта_Смена статуса файла при повторном размещенииФайл проектаУстановить значение атрибутаФайлне заполняется
    • Название:
      Если повторное размещение файла пользователем
    • Формула:
      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("Статус файла.Название") != "Размещено"Не менять статус файлам, которые ещё не проходили согласование.

...