Валидаторы
Валидаторы (или блокировки) - — инструмент, позволяющий осуществлять проверку по заданному условию при осуществлении определенного выполнении определённого действия над элементом системы и в зависимости от результатов результата проверки разрешить данное действие или заблокировать его.
Есть два типа валидаторов:
- Блокировка изменения (формула) - — срабатывает при любом изменении атрибутов элемента.
- Блокировка удаления (формула) - — срабатывает при удалении элемента.
Валидаторы концептуально состоят из двух частей:
- Условие срабатывания (формула)- — формула, которая проверяет надо определяет, нужно ли проверять условие по блокировке, возвращает true/false (истина/ложь). true - блокировки. Возвращает true или false:
- true — условие блокировки будет проверяться
- ;
- false
- — условие блокировки проверяться не будет.
- Условие блокировки (формула)- — основная формула валидатора, которая должна возвращать булево значение (true/false - истина/ложь). :
- true
- — условие соблюдено
- , блокировки нет
- ;
- false
- — условие не соблюдено
- ; текущее действие выполнено не будет
- , а пользователю будет показано сообщение из атрибута
- «Сообщение пользователю о
- блокировке» текущего валидатора.
Важно! Различие состояний в формулах условия
В условии срабатывания и в условии блокировки используется разное состояние текущего элемента. :
- В условии срабатывания используется состояние атрибутов элемента с
...
- учётом текущего изменения, которое
...
- проверяет валидатор.
- В условии блокировки используется состояние атрибутов элемента
...
- до текущего изменения.
Например, если у замечания сменили статус с "Не начато" на "Выполняется", то при проверки «Не начато» на «Выполняется»: при проверке условия срабатывания статус у замечания будет "Выполняется"«Выполняется», а при проверке
условия блокировки статус замечания будет "Не начато"будет «Не начато». Такой подход позволяет накладывать формулы проверки как на состояние "До"«До», так и на состояние "После"«После».
Порядок создания валидатора (блокировки)
- В настройках пространства "Центр администрирования" в разделе Типы элементов выбрать необходимый тип элемента, для которого необходимо требуется настроить блокировку.
- В панели справа выбрать закладку Валидаторы и нажать Добавить (для редактирования уже существующего валидатора надо выполнить выполните двойной клик ЛКМ на соответствующей записи).
- В появившемся выпадающем списке кнопки Добавить «Добавить» выбрать соответствующий тип блокировки.
- Заполнить атрибуты нового валидатора: .
Атрибут
Описание
Название
Произвольное название валидатора (рекомендуется давать смысловые названия, отражающие суть проверки).
Тип
«Блокировка изменения (формула)» или «Блокировка удаления (формула)». Это определяется при создании валидатора
Примеры
, в дальнейшем не изменяется.
Условие срабатывания (формула)
Формула, возвращающая true (проверять блокировку) или false (не проверять). Использует состояние атрибутов после изменения.
Условие блокировки (формула)
Основная формула валидатора. true — разрешить действие, false — заблокировать. Использует состояние атрибутов до изменения.
Сообщение пользователю о блокировке
Текст, который будет показан пользователю при блокировке действия.
Примеры
Пример 1. При переводе замечания в статус «На доработку» проверить заполнение поля «Вопрос проектировщику». Если поле не заполнено — показать сообщение и заблокировать смену статуса:
- Тип: Блокировка изменения (формула)
- Условие срабатывания: This("Статус задачи.Название") == "На доработку"
...
- Условие блокировки: IsNull(This("Вопрос проектировщику"
...
- ))
- Сообщение пользователю: Заполните поле "Вопрос проектировщику"
Поведение при переходе к связанному элементу из сообщения валидатора
Если в условии блокировки или в сообщении о блокировке ссылается на связанный элемент, то начиная с версии 25.1 в сообщении валидатора, которое видит пользователь, отображается ссылка на связанный элемент. При переходе по ссылке:
- в табличном представлении выделяется строка найденного элемента;
- автоматически открывается карточка данного элемента.
Ранее переход осуществлялся без подсветки строки и открытия карточки, что затрудняло идентификацию конкретного элемента в списке. (VITROCAD-5929)
Особенности работы валидаторов при автоматическом запуске процесса УТОЧНЕНО
В сценариях, когда процесс запускается автоматически (через правило Автоматизации, а не пользователем вручную), работа валидаторов имеет следующие особенности:
Предупреждение
При автоматическом запуске процесса валидаторы, в формулах которых используются функции работы со связями (Refs), могут отрабатывать некорректно. В таких случаях блокировка может не сработать даже при нарушении заданного условия.
Это поведение фиксировалось в версиях до 25.1 и было исправлено в версии 25.1 (VITROCAD-5674). Тем не менее, при разработке сложных сценариев с автозапуском процессов рекомендуется проводить дополнительное тестирование взаимодействия валидаторов и автоматизации.
Связь с модулем Автоматизации
Валидаторы и Автоматизация работают совместно, обеспечивая полный цикл управления жизненным циклом элементов системы:Чаще всего валидаторы нужны для блокировки действий пользователя, тогда как автоматизация - это про автоматические действия самой системы. Не очень понятно, какая здесь связь. Ниже и описаны роли и взаимосвязи в жизненном цикле. Действия это не только пользовательские действия, но и автоматические
| Anchor | ||||
|---|---|---|---|---|
|
- Валидаторы — это запреты: они блокируют действие, если условие не выполнено.
- Автоматизация — это автоматические реакции: она выполняет действия при выполнении условий.
При отладке правил рекомендуется проверять оба инструмента в комплексе, так как конфликт между ними может приводить к неочевидному поведению системы., при этом статус замечания не будет изменен.





