Creatio development guide
Это документация Creatio версии 7.9.0. Мы рекомендуем использовать новую версию документации.

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

Glossary Item Box

Описание кейса

Настроить поля на странице редактирования контакта таким образом, чтобы поле [Рабочий телефон] было обязательным для заполнения при условии, что в поле [Тип контакта] выбрано значение "Клиент".

Алгоритм реализации кейса

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

Необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать схему ContactPageV2 (рис. 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,
                        // Массив условий, при выполнении которых отрабатывает правило. В данном 
                        // случае массив содержит одно условие для определения, равно ли значение
                        // в колонке [Type] значению Клиент. 
                        "conditions": [{
                            // Выражение левой части условия.
                            "leftExpression": {
                                // Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает 
                                // атрибут (колонка) модели представления. 
                                "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
                                // Название колонки модели представления, значение которой сравнивается в выражении.
                                "attribute": "Type"
                            },
                            // Тип операции сравнения. 
                            "comparisonType": Terrasoft.ComparisonType.EQUAL,
                            // Выражение правой части условия.
                            "rightExpression": {
                                // Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает 
                                // константное значение.
                                "type": BusinessRuleModule.enums.ValueType.CONSTANT,
                                // Значение, с которым сравнивается выражение левой части. В данном случае
                                // значение выражено через перечисление ContactType из модуля ConfigurationConstants.
                                "value": ConfigurationConstants.ContactType.Client
                            }
                        }]
                    }
                }
            }
        };
    });

После сохранения схемы и обновления веб-страницы системы на странице редактирования контакта поле [Контрагент] будет обязательным для заполнения, если тип контакта — клиент (рис. 2, 3).

Рис. 2. — Результат выполнения кейса. Поле [Рабочий телефон] — необязательно

Рис. 2. — Результат выполнения кейса. Поле [Рабочий телефон] — обязательно

 

© Terrasoft 2002-2017.

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

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