Бизнес-правила и их применение
Glossary Item Box
Общие сведения
Одним из инструментов настройки логики страниц в bpm'online являются бизнес-правила.
Бизнес-правила — это стандартный механизм системы, который предоставляет возможность разработчику добавлять реализацию типичной функциональности путем конфигурирования колонок модели представления. То есть, для решения типовых задач нет необходимости писать дополнительные пользовательские методы. Достаточно выполнить конфигурирование колонок с использованием правил.
Функциональность бищнес-правил реализована в клиентском модуле 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. Как сделать поле обязательным для заполнения по определенному условию