Creatio development guide
PDF
Документация по разработке
Разработка в bpm'online на примерах
Конфигурирование страницы
Это документация Creatio версии 7.12.0. Мы рекомендуем использовать новую версию документации.

Правило 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.

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

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