Правило BINDPARAMETER. Как сделать поле обязательным для заполнения по определенному условию
Glossary Item Box
Общие сведения
Правило BINDPARAMETER используется для решения следующих задач:
- скрыть или отобразить поле;
- заблокировать или разблокировать поле;
- сделать поле обязательным или необязательным для заполнения.
Подробно бизнес-правила описаны в статье "Бизнес-правила и их применение".
К СВЕДЕНИЮ
В bpm'online реализована возможность настраивать бизнес-правила не только средствами разработки, но и с помощью мастера разделов. Подробнее об этом читайте в статье "Настройка бизнес-правил".
Описание примера
Настроить поля на странице редактирования контакта таким образом, чтобы поле [Рабочий телефон] ([Business phone]) было обязательным для заполнения при условии, что в поле [Тип контакта] ([Type]) выбрано значение "Клиент" ("Customer").
Исходный код
Пакет с реализацией примера можно скачать по ссылке.
Алгоритм реализации примера
1. Создать замещающий клиентский модуль страницы редактирования контакта
Создайте замещающий клиентский модуль, в котором в качестве родительского объекта укажите схему [Схема отображения карточки контакта] ([Display schema — Contact card]) (рис. 1). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".
Рис. 1. — Свойства замещающей страницы редактирования
2. В свойство rules модели представления страницы добавить правило
Добавьте в свойство rules модели представления страницы правило с типом BINDPARAMETER для колонки Phone. Свойству property правила установите значение BusinessRuleModule.enums.Property.REQUIRED. В массив conditions добавьте условие выполнения правила — значение колонки Type модели должно быть равно конфигурационной константе ConfigurationConstants.ContactType.Client.
К СВЕДЕНИЮ
Конфигурационная константа ConfigurationConstants.ContactType.Client содержит идентификатор записи "Клиент" справочника [Типы контактов].
Исходный код замещающей схемы:
// В список зависимостей модуля добавить модули BusinessRuleModule и ConfigurationConstants. define("ContactPageV2", ["BusinessRuleModule", "ConfigurationConstants"], function(BusinessRuleModule, ConfigurationConstants) { return { // Название схемы объекта страницы редактирования. entitySchemaName: "Contact", // Правила модели представления страницы редактирования. rules: { // Набор правил для колонки [Рабочий телефон] модели представления. "Phone": { // Зависимость обязательности поля [Рабочий телефон] от значения в поле [Тип]. "BindParameterRequiredAccountByType": { // Тип правила BINDPARAMETER. "ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER, // Правило регулирует свойство REQUIRED. "property": BusinessRuleModule.enums.Property.REQUIRED, // Массив условий, при выполнении которых срабатывает правило. // Определяет равно ли значение в колонке [Тип] значению "Клиент". "conditions": [{ // Выражение левой части условия. "leftExpression": { // Тип выражения — атрибут (колонка) модели представления. "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE, // Название колонки модели представления, значение которой сравнивается в выражении. "attribute": "Type" }, // Тип операции сравнения. "comparisonType": Terrasoft.ComparisonType.EQUAL, // Выражение правой части условия. "rightExpression": { // Тип выражения — константное значение. "type": BusinessRuleModule.enums.ValueType.CONSTANT, // Значение, с которым сравнивается выражение левой части. "value": ConfigurationConstants.ContactType.Client } }] } } } }; });
После сохранения схемы и обновления веб-страницы приложения на странице редактирования контакта поле [Рабочий телефон] ([Business phone]) будет обязательным для заполнения, если тип контакта — "Клиент" ("Customer") (рис. 2, 3).
Рис. 2. — Результат выполнения примера. Поле [Рабочий телефон] ([Business phone]) — необязательно
Рис. 3. — Результат выполнения примера. Поле [Рабочий телефон] ([Business phone]) — обязательно
Смотрите также:
- Бизнес-правила и их применение
- Правило BINDPARAMETER. Как заблокировать поле на странице редактирования по определенному условию
- Правило BINDPARAMETER. Как скрыть поле на странице редактирования по определенному условию
- Пример применения правила FILTRATION
- Бизнес-правила, созданные с помощью мастеров