Документация по разработке bpm’online
PDF
Документация по разработке
Разработка в bpm'online на примерах
Конфигурирование страницы

Правило 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]) — обязательно

Смотрите также:

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?