Перейти к содержанию

Настройка правил для формы

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

Comindware Business Application Platform поддерживает два типа элемента, с помощью которых описываются правила формы:

  • Правило — определяет базовое условие, которое должно выполниться, чтобы запустить выполнение действий;
  • Действие — определяет действие, которое будет выполняться при соблюдении условий, заданных в правиле. Действие всегда должно быть включено в состав какого-либо правила.

Рассмотрим каждый элемент более подробно.

 

Правило 

Правило является контейнером для включения в него действий.

Внешний вид добавленного правила и его характеристик 

Внешний вид добавленного правила и его характеристик 

Для описания правила существуют следующие характеристики:

  • Название — наименование правила для простоты понимания настройщикам решения;
  • Условие применения — определяется условие с помощью языка выражений или запроса RDF N3, которое должно возвращать «true» или «false». Если выражение возвращает «false», то правило не запускает выполнение действий, добавленных внутри правила. Если выражение возвращает «true», то правило запускает выполнение действий внутри правила.

Продукт позволяет добавлять неограниченное количество правил и определять порядок их расположения друг за другом путем перемещения правил с помощью мышки.

Запуск проверки условия применения правил выполняется после завершения внесения изменений в любое поле на форме или при открытии формы.

Все правила выполняются независимо друг от друга в точном порядке, определенном в рабочей области редактора правил — сверху вниз. Это очень важно, так как если в разных правилах присутствуют действия, изменяющие один и тот же атрибут и при этом условия применения этих правил вернули значение true, в результате в атрибуте будет значение, которое установит правило, находящееся ниже в конструкторе, т.е. которое выполнится последним.

Условие применения получает на вход контекст текущей записи, для которой открывается форма.

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

 

Действие 

Действие определяет изменение, которое необходимо произвести на форме (с элементами формы или с данными на форме) при наступлении условия применения действия, описанного в правиле, в которое добавленное действие вложено (и/или в условии применения самого действия).

Внешний вид добавленного действия

Внешний вид добавленного действия

Каждое действие имеет следующие параметры для настройки:

  • Поле — элемент формы (наименование и системное имя поля), над которым необходимо выполнить действие;
  • Тип действия — характер действия, которое необходимо выполнить для выбранного поля / элемента формы. Появляется после выбора элемента формы;
  • Условие применения — дополнительное условие применения действия, которое применяется дополнительно к условию применения, заданному в элементе «Правило». Более подробно о характеристике будет рассказано в описании каждого типа действия ниже;
  • Описание дополнительных параметров в зависимости от выбранного типа действия будут в соответствующих разделах с описанием каждого типа действия ниже.

Существует 3 типа действий, которые применимы к различным элементам формы в зависимости от их типа:

Ниже представлена таблица доступности типов действий для элементов формы различных типов. 

Тип элемента формы Изменить тип доступа Установить значение Показать ошибку
Статические элементы  + - -
Атрибуты + + +
Операции + - -
Вложенные формы  + - -

Рассмотрим каждый тип действия более подробно. 

 

Изменить тип доступа

Действие предназначено для переопределения доступности и видимости элемента на экранной форме в интерфейсе пользователя.

Действие имеет единственный дополнительный параметр «Новое значение», который предназначен для выбора нового типа доступа, который будет установлен в рамках текущего действия. Существуют следующие типы доступа, которые определяются в параметре «Новое значение»:

  • Обязательное — на экранной форме элемент должен быть обязательно заполнен на момент сохранения данных в форме;
  • Редактирование — на экранной форме элемент доступен для редактирования;
  • Только для чтения — на экранной форме элемент отображается, но не доступен для редактирования;
  • Скрытое — элемент скрыт с экранной формы.

В следующей таблице представлены доступные вариации типов доступа в зависимости от типа элемента формы.

Тип элемента формы Обязательное Редактирование Только для чтения Скрытое
Статические элементы - + + +
Атрибуты + + + +
Атрибуты вычисляемые  - - + +
Операции - + Операция доступна для выполнения + Операция не доступна для выполнения +
Вложенные формы - + + +

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

Новое значение типа доступа в соответствии с настроенным действием присваивается элементу формы только до следующего изменения данных на форме. Со следующим изменением данных на экранной форме пользователем типа доступа элемента формы возвращается в исходное состояние, заданное в конструкторе форм. Все заданные правила с действиями применяются заново. Если в соответствии с новым изменением данных условие применения больше не выполняется и, как следствие, действие внутри правила не выполняется, тип доступа восстанавливается в исходное состояние, которое определено настройками формы.

Условие применения для типа действия «Изменить тип доступа» действует в дополнение к условию применения Правила, внутри которого находится действие. Действие выполняется, если условие применения возвращает значение «true».

Контекст условия применения зависит от того, к какому элементу формы применяется действие: 

  • Если элемент формы, к которому применяется действие, является элементом текущей формы и не относится к полю таблицы атрибута с типом данных «Коллекция», то в качестве контекста условия выступает текущая запись, для которой открыта экранная форма;
  • Если элемент формы, к которому применяется действие является полем таблицы атрибута с типом данных «Коллекция», в качестве контекста выступает запись, которая относится к строке таблицы атрибута с типом данных «Коллекция».

 

Установить значение

Действие применимо только к атрибутам и предназначено для изменения данных, отображаемых в полях экранной формы.

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

При настройке действия по установке значения доступны следующие варианты указания типов значений:

  • Значение — означает, что в поле указания значения необходимо ввести или выбрать фиксированное значение поля. Указание значения выполняется в соответствии с типом атрибута, привязанного к полю формы, для которого указывается действие:
    • Текст — отображается строка ввода текста
    • Число — отображается строка ввода числа;
    • Длительность — отображается поле для ввода длительности;
    • Дата / Время — отображается поле для выбора даты и времени;
    • Логический — отображается как выпадающий список из двух значений («Да» и «Нет»);
    • Документ — недоступен для изменения значения;
    • Пользователь — отображается как выпадающий список с перечнем пользователей;
    • Ссылка — отображается как выпадающий список с перечнем элементов шаблона записи, на который указывает ссылка;
    • Коллекция — недоступна для изменения значения.
  • Выражение — в качестве указанного значения будет определен результат выражения, которое будет вычислено при запуске действия. Поле указания значения в этом случае преобразуется в поле ввода выражения на языке выражений Comindware или RDF N3.

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

Если в поле указания значения ничего не введено или в результате выполнения вычисления возвращено пустое значение, то по результатам выполнения действия поле очищается.

Измененное действием значение поля действует до момента изменения значения этого поля текущим (другим) действием или ручным изменением значения пользователем. Условие применения для типа действия «Установить значение» действует в дополнение к условию применения Правила, внутри которого находится действие. Действие выполняется, если условие применения возвращает значение true.

Контекст условия применения зависит от того, к какому элементу формы применяется действие:

  • Если элемент формы, к которому применяется действие, является элементом текущей формы и не относится к полю таблицы атрибута с типом данных «Коллекция», то в качестве контекста условия выступает текущая запись, для которой открыта экранная форма;
  • Если элемент формы, к которому применяется действие является полем таблицы атрибута с типом данных «Коллекция», в качестве контекста выступает запись, которая относится к строке таблицы атрибута с типом данных «Коллекция».

 

Показать ошибку

Действие применимо только к атрибутам и предназначено для проверки и отображения сообщения пользователю при ошибке введения каких-либо данных.

Действие имеет следующие дополнительные параметры

  • Тип сообщения — указывается тип выводимого сообщения:
    • Предупреждение — показывает предупреждение на выбранном поле с возможностью сохранения данных;
    • Ошибка — показывает ошибку на выбранном поле без возможности сохранения данных, пока ошибка не будет устранена. 
  • Сообщение — выбор типа значения сообщения и указание сообщения, которое необходимо вывести в сообщение об ошибке или в текст предупреждения:
    • Значение — означает, что в поле указания сообщения необходимо ввести фиксированный текст, который необходимо выводить в предупреждение или сообщение об ошибке;
    • Выражение — в качестве указанного сообщения будет определен результат выражения, которое будет вычислено при запуске действия. Поле указания сообщения в этом случае преобразуется в поле ввода выражения на языке выражений Comindware или RDF N3.

Действие выполняется только при попытке сохранения экранной формы.

Условие применения для типа действия «Показать ошибку» действует в дополнение к условию применения Правила, внутри которого находится действие. Действие выполняется, если условие применения на действии возвращает значение «false».

Контекст условия применения зависит от того, к какому элементу формы применяется действие:

  • Если элемент формы, к которому применяется действие, является элементом текущей формы и не относится к полю таблицы атрибута с типом данных «Коллекция», то в качестве контекста условия выступает текущая запись, для которой открыта экранная форма.
  • Если элемент формы, к которому применяется действие является полем таблицы атрибута с типом данных «Коллекция», в качестве контекста выступает запись, которая относится к строке таблицы атрибута с типом данных «Коллекция».

В интерфейсе сообщение об ошибке выглядит следующим образом. 

Внешний вид сообщения об ошибке, настроенной на поле 

Внешний вид сообщения об ошибке, настроенной на поле