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

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

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

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