Versions Compared

Key

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

Валидаторы

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

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

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

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

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

  • В условии срабатывания используется состояние атрибутов элемента с

...

  • учётом текущего изменения, которое

...

  • проверяет валидатор.
  • В условии блокировки используется состояние атрибутов элемента

...

  • до текущего изменения.

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

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

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

    Атрибут

    Описание

    Название

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

    Тип

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

    .
    Image Removed

Примеры

  1. , в дальнейшем не изменяется.

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

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

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

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

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

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

    Image Added

    Примеры

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

...

  • Условие блокировки: IsNull(This("Вопрос проектировщику"

...

  • ))
  • Сообщение пользователю: Заполните поле "Вопрос проектировщику"

Image Added

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

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

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

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

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

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

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

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

Anchor
_GoBack
_GoBack

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

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