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

Страница редактирования с указанным набором колонок

Glossary Item Box

ВАЖНО

Эта статья актуальна для bpm'online версии 7.11.2 и выше, а также для мобильного приложения версии 7.11.4 и выше.

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

Часто возникает необходимость открыть страницу редактирования записи раздела с одной или несколькими колонками. Например, в разделе [Обращения] ([Cases]) после выполнения действия [Эскалировать] ([Escalate]) должна открыться страница редактирования со следующими колонками: [Уровень поддержки] ([Support line]), [Ответственный] ([Assignee]) и [Группа ответственных] [(Assignee group)]. Пример такой страницы web-приложения bpm'online приведен на рис. 1.

Рис. 1. — Страница эскалации обращения

Для реализации такой страницы в мобильном приложении был добавлен класс контроллера Terrasoft.configuration.controller.EditPage. Класс позволяет создать страницу, колонки и бизнес-правила которой формируются не на основе настроек модели, не средствами SDK, а на основе конфигурационного объекта, определенного в свойстве config класса.

Пример

Например, в мобильном приложении необходимо создать страницу эскалации со следующими колонками: [Уровень поддержки] ([Support line]), [Ответственный] ([Assignee]) и [Группа ответственных] [(Assignee group)].

Для этого нужно создать (например, в схеме UsrCaseEditPage) класс контроллера, унаследованного от Terrasoft.configuration.controller.EditPage. Исходный код такого класса приведен ниже:

Ext.define("Terrasoft.configuration.controller.CaseEscalationPage", {
    extend: "Terrasoft.configuration.controller.EditPage",
    config: {
        refs: {
            view: "#CaseEscalationPage"
        },   
        businessRuleConfigs: [
            {
                name: "CaseEscalationOwnerOrGroupRequirementRule",
                ruleType: Terrasoft.RuleTypes.Requirement,
                requireType: Terrasoft.RequirementTypes.OneOf,
                events: [Terrasoft.BusinessRuleEvents.Save, Terrasoft.BusinessRuleEvents.ValueChanged],
                triggeredByColumns: ["Owner", "Group"]
            }
        ],
        columnConfigs: [
            {
                name: "SupportLevel"
            },
            {
                name: "Owner",
                customEditConfig: {
                    required: true
                }
            },
            {
                name: "Group",
                customEditConfig: {
                    required: true
                }
            }
        ]
    },
    statics: {
        Model: Case
    }
});

Конфигурационное свойство businessRuleConfigs принимает массив настроек бизнес-правил. Настройка соответствует вызову метода SDK:

Terrasoft.sdk.Model.addBusinessRule("Case", businessRuleConfig);

Конфигурационное свойство columnConfigs принимает массив настроек колонок. Настройка соответствует вызову метода SDK:

Terrasoft.sdk.RecordPage.addColumn("Case", columnConfig);

Контроллер поддерживает еще одно конфигурационное свойство — useModelBusinessRules. Свойство определяет, будут ли использоваться бизнес-правила из модели, настроенные с помощью SDK.

После этого необходимо создать класс представления и добавить страницу в кэш:

Ext.define("Terrasoft.configuration.view.CaseEscalationPage", {
    extend: "Terrasoft.view.BaseEditPage", 
    config: {    
        id: "CaseEscalationPage"    
    } 
});

Terrasoft.PageCache.addItem("CaseEscalationPage", {
    controllerName: "Terrasoft.configuration.controller.CaseEscalationPage",
    pageSchemaName: "CaseEscalationPage",
    viewXClass: "Terrasoft.configuration.view.CaseEscalationPage"
});

К СВЕДЕНИЮ

Весь приведенный выше программный код можно разместить в одной схеме модуля, например, в схеме UsrCaseEditPage.

Чтобы открыть страницу, необходимо в обработчик любого события (например, нажатия на кнопку, выполнения действия и т. п.) добавить следующий код:

Terrasoft.util.openCachedPage("CaseEscalationPage", {
    recordId: "0fa67d76-8cc2-4e5b-bd3e-36d16741b06a"
});

Здесь recordId — идентификатор открываемой в странице записи раздела. В данном случае это значение колонки Id объекта Case.

В результате в мобильном приложении будет открыта страница с указанным набором колонок (рис. 2 ).

Рис. 2. — Страница с указанным набором колонок

 

 

 

© Terrasoft 2002-2018.

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

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