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. Заполнить атрибуты нового валидатора:

    Атрибут

    Описание

    Название

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

    Тип

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

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

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

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

    Основная формула валидатора

    .
    Image Removed

Примеры

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

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

    Текст, который будет показан пользователю при блокировке действия.
    Внимание! Текст сообщения может быть также рассчитан по формуле. При использовании расчета по формуле
    этот атрибут должн содержать только формулу. Если нужен текст + вычисленное значение, то формула должна содержать формат и результат вычисления должен быть строковым (см. примеры ниже).


    Image Added

    Примеры

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

Image Added

Пример 2. Задача: При ручном заполнении Текущего процента выполнения проекта на папке комплекта блокировать ввод, если сумма заполненных процентов на всех комплектах проекта больше 100

Image Added  Image Added

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

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

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

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

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

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

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

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

Anchor
_GoBack
_GoBack

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

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