You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Валидаторы

Валидаторы (или блокировки) — инструмент, позволяющий осуществлять проверку по заданному условию при выполнении определённого действия над элементом системы и в зависимости от результата проверки разрешить данное действие или заблокировать его.
Есть два типа валидаторов:

  • Блокировка изменения (формула) — срабатывает при любом изменении атрибутов элемента.
  • Блокировка удаления (формула) — срабатывает при удалении элемента.

Валидаторы концептуально состоят из двух частей:

  • Условие срабатывания (формула) — формула, которая определяет, нужно ли проверять условие блокировки. Возвращает true или false:
    • true — условие блокировки будет проверяться;
    • false — условие блокировки проверяться не будет.
  • Условие блокировки (формула) — основная формула валидатора, которая должна возвращать булево значение (true/false):
    • true — условие соблюдено, блокировки нет;
    • false — условие не соблюдено; текущее действие выполнено не будет, а пользователю будет показано сообщение из атрибута «Сообщение пользователю о блокировке» текущего валидатора.

Важно! Различие состояний в формулах условия
В условии срабатывания и в условии блокировки используется разное состояние текущего элемента:

  • В условии срабатывания используется состояние атрибутов элемента с учётом текущего изменения, которое проверяет валидатор.
  • В условии блокировки используется состояние атрибутов элемента до текущего изменения.

Например, если у замечания сменили статус с «Не начато» на «Выполняется»: при проверке условия срабатывания статус будет «Выполняется», а при проверке условия блокировки статус будет «Не начато». Такой подход позволяет накладывать формулы проверки как на состояние «До», так и на состояние «После».

Порядок создания валидатора (блокировки)

  1. В настройках пространства Центр администрирования в разделе Типы элементов выбрать необходимый тип элемента, для которого требуется настроить блокировку.
  2. В панели справа выбрать закладку Валидаторы и нажать Добавить (для редактирования уже существующего валидатора выполните двойной клик на соответствующей записи).
  3. В появившемся выпадающем списке кнопки «Добавить» выбрать соответствующий тип блокировки.
  4. Заполнить атрибуты нового валидатора:

    Атрибут

    Описание

    Название

    Произвольное название валидатора (рекомендуется давать смысловые названия, отражающие суть проверки).

    Тип

    «Блокировка изменения (формула)» или «Блокировка удаления (формула)». Это определяется при создании валидатора, в дальнейшем не изменяется.

    Условие срабатывания (формула)

    Формула, возвращающая true (проверять блокировку) или false (не проверять). Использует состояние атрибутов после изменения.

    Условие блокировки (формула)

    Основная формула валидатора. true — разрешить действие, false — заблокировать. Использует состояние атрибутов до изменения.

    Сообщение пользователю о блокировке

    Текст, который будет показан пользователю при блокировке действия.

    Примеры

    Пример 1. При переводе замечания в статус «На доработку» проверить заполнение поля «Вопрос проектировщику». Если поле не заполнено — показать сообщение и заблокировать смену статуса:
  • Тип: Блокировка изменения (формула)
  • Условие срабатывания: This("Статус задачи.Название") == "На доработку"
  • Условие блокировки: IsNull(This("Вопрос проектировщику"))
  • Сообщение пользователю: Заполните поле "Вопрос проектировщику"

Поведение при переходе к связанному элементу из сообщения валидатора

Если в условии блокировки или в сообщении о блокировке ссылается на связанный элемент, то начиная с версии 25.1 в сообщении валидатора, которое видит пользователь, отображается ссылка на связанный элемент. При переходе по ссылке:

  • в табличном представлении выделяется строка найденного элемента;
  • автоматически открывается карточка данного элемента.

Ранее переход осуществлялся без подсветки строки и открытия карточки, что затрудняло идентификацию конкретного элемента в списке. (VITROCAD-5929)

Особенности работы валидаторов при автоматическом запуске процесса УТОЧНЕНО

В сценариях, когда процесс запускается автоматически (через правило Автоматизации, а не пользователем вручную), работа валидаторов имеет следующие особенности:
Предупреждение
При автоматическом запуске процесса валидаторы, в формулах которых используются функции работы со связями (Refs), могут отрабатывать некорректно. В таких случаях блокировка может не сработать даже при нарушении заданного условия.
Это поведение фиксировалось в версиях до 25.1 и было исправлено в версии 25.1 (VITROCAD-5674). Тем не менее, при разработке сложных сценариев с автозапуском процессов рекомендуется проводить дополнительное тестирование взаимодействия валидаторов и автоматизации.

Связь с модулем Автоматизации

Валидаторы и Автоматизация работают совместно, обеспечивая полный цикл управления жизненным циклом элементов системы:Чаще всего валидаторы нужны для блокировки действий пользователя, тогда как автоматизация - это про автоматические действия самой системы. Не очень понятно, какая здесь связь. Ниже и описаны роли и взаимосвязи в жизненном цикле. Действия это не только пользовательские действия, но и автоматические

  • Валидаторы — это запреты: они блокируют действие, если условие не выполнено.
  • Автоматизация — это автоматические реакции: она выполняет действия при выполнении условий.

При отладке правил рекомендуется проверять оба инструмента в комплексе, так как конфликт между ними может приводить к неочевидному поведению системы.

  • No labels