Бизнес-правила и их применение
Glossary Item Box
Общие сведения
Одним из инструментов настройки логики страниц в bpm'online являются бизнес-правила.
Бизнес-правила — это стандартный механизм системы, который позволяет настраивать поведение полей на странице путем конфигурирования колонок модели представления.
Бизнес-правила позволяют решать следующие типовые задачи:
- скрыть или отобразить поле;
- заблокировать или разблокировать поле;
- сделать поле обязательным или необязательным для заполнения;
- отфильтровать значения справочного поля в зависимости от значения в другом поле.
В bpm'online бизнес-правила могут добавляться двумя способами:
1. С помощью мастера разделов или мастера деталей.
- Бизнес-правила, которые сгенерированы мастером, добавляются в свойство businessRules клиентского модуля.
- Сгенерированные бизнес-правила имеют более высокий приоритет при выполнении.
- При описании сгенерированного бизнес-правила не используются перечисления модуля бизнес-правил BusinessRuleModule.
Более подробно о настройке бизнес-правил с помощью мастера читайте в статье "Настройка бизнес-правил". Особенности ручной настройки сгенерированных бизнес-правил описаны в статье "Бизнес-правила. Свойство businessRules".
2. Конфигурированием свойства rules схемы клиентского модуля.
Функциональность бизнес-правил реализована в клиентском модуле BusinessRuleModule. Для того чтобы воспользоваться этой функциональностью, необходимо в список зависимостей пользовательской схемы модели представления добавить модуль BusinessRuleModule.
Пример объявления пользовательского модуля с использованием бизнес-правил:
define("CustomPageModule", ["BusinessRuleModule"], function(BusinessRuleModule) { return { // Реализация схемы модели представления. }; });
К СВЕДЕНИЮ
Вариант добавления бизнес-правил средствами разработки присутствует в системе для поддержания совместимости с предыдущими версиями.
Общие требования к объявлению бизнес-правил в клиентском модуле
- Все правила описываются в свойстве rules модели представления страницы.
- Правила применяются к колонкам модели представления, а не к элементам управления.
- Бизнес-правила не поддерживаются в страницах реестра.
- Правило имеет название.
- Параметры правила задаются в его конфигурационном объекте.
Пример объявления правил:
// Список всех правил модели представления. rules : { // Имя колонки, для которой добавляется правило. "FirstColumnName" : { // Список правил для колонки FirstColumnName. // Имя правила. FirstRuleName : { // Конфигурационный объект правила FirstRuleName. ruleType: <значение из перечисления BusinessRuleModule.enums.RuleType> // Остальные конфигурационные свойства правила. }, SecondRuleName: { // Конфигурационный объект правила SecondRuleName. ruleType: <значение из перечисления BusinessRuleModule.enums.RuleType> // Остальные конфигурационные свойства правила. } }, "SecondColumnName" : { // Список правил для колонки SecondColumnName. ... } }
Типы бизнес-правил
Типы правил bpm’online определены в перечислении RuleType модуля BusinessRuleModue.
На текущий момент используется два типа правил — BINDPARAMETER и FILTRATION.
BINDPARAMETER
Используется для настройки привязки свойств одной колонки к значениям различных параметров. Например, чтобы настроить видимость или доступность колонки в зависимости от значения другой колонки. Основные свойства конфигурационного объекта правила BINDPARAMETER приведены в таблице 1.
Табл. 1. — Конфигурирование правила BINDPARAMETER
Свойство | Значение |
ruleType |
Тип правила. Определяется значением перечисления BusinessRuleModule.enums.RuleType. В данном случае используется тип BINDPARAMETER. |
property |
Свойство элемента управления. Задается значением из перечисления BusinessRuleModule.enums.Property:
|
conditions |
Массив условий применения правила. Каждое условие представляет собой конфигурационный объект, свойства которого приведены в таблице 2. |
logical |
Логическая операция объединения условий из свойства conditions. Задается значением из перечисления Terrasoft.LogicalOperatorType. |
Табл. 2. — Конфигурирование условия правила BINDPARAMETER
Свойство | Значение |
leftExpression |
Выражение левой части условия. Представляет собой конфигурационный объект со свойствами:
|
comparisonType |
Тип сравнения. Задается значением из перечисления Terrasoft.core.enums.ComparisonType. |
rightExpression | Выражение правой части условия. Аналогично leftExpression. |
FILTRATION
Используется для настройки фильтрации значений колонки модели представления. Например, для фильтрации определенной колонки с типом справочник в зависимости от значения текущего состояния страницы.
Табл. 3. — Конфигурирование правила FILTRATION
Свойство | Значение |
ruleType |
Тип правила. Задается значением из перечисления BusinessRuleModule.enums.RuleType. В данном случае используется тип FILTRATION. |
autocomplete | Признак обратной фильтрации. Может принимать значения true или false. |
autoClean | Признак автоматической очистки значения при изменении колонки, по которой осуществляется фильтрация. Может принимать значения true или false. |
baseAttributePatch |
Мета-путь к колонке справочной схемы, по которой будет выполняться фильтрация. При построении пути к колонке применяется принцип обратной связи так же, как в EntitySchemaQuery. Путь формируется относительно схемы, на которую ссылается колонка модели. |
comparisonType |
Тип операции сравнения. Задается значением из перечисления Terrasoft.ComparisonType. |
type |
Тип значения, с которым будет сравниваться baseAttributePatch. Задается значением из перечисления BusinessRuleModule.enums.ValueType. |
attribute |
Имя колонки модели представления. Это свойство описывается в том случае, если указан тип значения (type) ATTRIBUTE. |
attributePath |
Мета-путь к колонке схемы объекта. При построении пути к колонке применяется принцип обратной связи так же, как в EntitySchemaQuery. Путь формируется относительно схемы, на которую ссылается колонка модели. |
value |
Значение для фильтрации. Это свойство описывается в том случае, если указан тип значения (type) ATTRIBUTE. |
Смотрите также:
- Пример применения правила FILTRATION
- Правило BINDPARAMETER. Как заблокировать поле на странице редактирования по определенному условию
- Правило BINDPARAMETER. Как скрыть поле на странице редактирования по определенному условию
- Правило BINDPARAMETER. Как сделать поле обязательным для заполнения по определенному условию
- Бизнес-правила, созданные с помощью мастеров