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

Правило BINDPARAMETER. Как заблокировать поле на странице редактирования по определенному условию

Glossary Item Box

Общие сведения

Правило BINDPARAMETER используется для решения следующих задач:

  • скрыть или отобразить поле;
  • заблокировать или разблокировать поле;
  • сделать поле обязательным или необязательным для заполнения.

Подробно бизнес-правила описаны в статье "Бизнес-правила и их применение".

К СВЕДЕНИЮ

В bpm'online реализована возможность настраивать бизнес-правила не только средствами разработки, но и с помощью мастера разделов. Подробнее об этом можно прочитать в статье "Настройка бизнес-правил".

Описание примера

Настроить поля на странице редактирования контакта таким образом, чтобы поле [Рабочий телефон] ([Business phone]) было доступным только при условии, что заполнено поле [Мобильный телефон] ([Mobile phone]).

Исходный код

Пакет с реализацией примера можно скачать по ссылке.

Алгоритм реализации примера

1. Создать замещающий клиентский модуль страницы редактирования контакта

Создайте замещающий клиентский модуль, в котором в качестве родительского объекта укажите схему [Схема отображения карточки контакта] ([Display schema — Contact card]) (рис. 1). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".

Рис. 1. — Свойства замещающей страницы редактирования

2. В свойство rules модели представления страницы добавить правило

Добавьте в свойство rules модели представления страницы правило с типом BINDPARAMETER для колонки Phone ([Рабочий телефон]). Свойству property правила установите значение BusinessRuleModule.enums.Property.ENABLED. В массив conditions добавьте условие выполнения правила — значение колонки MobilePhone ([Мобильный телефон]) модели не должно быть пустым.

Исходный код замещающей схемы:

// В список зависимостей модуля добавить модуль BusinessRuleModule.
define("ContactPageV2", ["BusinessRuleModule"], function(BusinessRuleModule) {
    return {
        // Название схемы объекта страницы редактирования.
        entitySchemaName: "Contact",
        // Правила модели представления страницы редактирования.
        rules: {
            // Набор правил для колонки [Рабочий телефон] модели представления.
            "Phone": {
                // Зависимость доступности поля [Рабочий телефон] от значения поля [Мобильный телефон].
                "BindParameterEnabledPhoneByMobile": {
                    // Тип правила BINDPARAMETER.
                    "ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
                    // Правило регулирует свойство ENABLED. 
                    "property": BusinessRuleModule.enums.Property.ENABLED,
                    // Массив условий, при выполнении которых срабатывает правило. 
                    // Определяет установлено ли значение в поле [Мобильный телефон]. 
                    "conditions": [{
                        // Выражение левой части условия.
                        "leftExpression": {
                            // Тип выражения — атрибут (колонка) модели представления. 
                            "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
                            // Название колонки модели представления, значение которой сравнивается в выражении. 
                            "attribute": "MobilePhone"
                        },
                        // Тип операции сравнения — не равно. 
                        "comparisonType": Terrasoft.ComparisonType.NOT_EQUAL,
                        // Выражение правой части условия.
                        "rightExpression": {
                            // Тип выражения — константное значение.
                            "type": BusinessRuleModule.enums.ValueType.CONSTANT,
                            // Значение, с которым сравнивается выражение левой части.
                            "value": ""
                        }
                    }]
                }
            }
        }
    };
});

После сохранения схемы и обновления веб-страницы приложения на странице редактирования контакта поле [Рабочий телефон] ([Business phone]) будет недоступно для редактирования до тех пор, пока в поле [Мобильный телефон] ([Mobile phone]) не будут введены данные (рис. 2).

Рис. 2. — Демонстрация результата выполнения примера

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

© Terrasoft 2002-2019.

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

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