Документация по разработке bpm’online

Добавление детали [Файлы и ссылки] в раздел мобильного приложения

Glossary Item Box

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

Деталь [Файлы и ссылки] ([Attachments]) предназначена для хранения файлов и ссылок на web-ресурсы, которые связаны с записью раздела. Деталь доступна во всех разделах bpm'online (см. "Файлы и примечания") и в разделе [Продажи] ([Opportunities]) мобильного приложения.

Деталь [Файлы и ссылки] ([Attachments]) в мобильном приложении реализуется на базе встроенной детали. Встроенная деталь предназначена для удобства редактирования данных, поскольку нет необходимости в переходе на отдельную страницу.

Чтобы добавить деталь на страницу записи раздела мобильного приложения, необходимо выполнить следующие шаги:

1. Создать схему настройки раздела, в которой определить встроенную деталь на основе объекта для детали [Файлы и ссылки] ([Attachments]) раздела.

2. Создать схемы страниц просмотра и редактирования записи раздела мобильного приложения.

3. Добавить информацию о новых схемах в манифест мобильного приложения.

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

На страницу редактирования записи раздела [Контакты] ([Contacts]) мобильного приложения добавить деталь [Файлы и ссылки].

Алгоритм выполнения кейса

1. Создать схему настройки раздела, в которой определить встроенную деталь

Для этого необходимо в разделе [Конфигурация] (Configuration) в пользовательском пакете создать новую схему модуля со следующими значениями свойств:

  • [Заголовок] ([Title]) — "UsrMobileContactModuleConfig".
  • [Название] ([Name]) — "UsrMobileContactModuleConfig".
  • [Пакет] ([Package]) — название пользовательского пакета, в котором ведется разработка.

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

Рис. 1. — Добавление локализуемой строки в дизайнере схемы модуля

Табл. 1. — Свойства локализуемых строк

Локализуемая строка Значение Описание
ContactRecordPage_contactFilesDetail_Title Файлы и ссылки (Attachments) Заголовок детали.
ContactRecordPage_contactFilesDetail_Data Файл (File) Заголовок поля для файла.
ContactRecordPage_contactFilesDetail_Link Ссылка (Link) Заголовок поля для ссылки.

На вкладку [Исходный код] ([Source Code]) схемы в дизайнере модуля необходимо добавить следующий исходный код:

// Добавление встроенной детали.
Terrasoft.sdk.RecordPage.addEmbeddedDetail("Contact", {
    name: "contactFilesDetail",
    position: 5,
    title: "ContactRecordPage_contactFilesDetail_Title",
    modelName: "ContactFile",
    primaryKey: "Id",
    foreignKey: "Contact",
    displaySeparator: false
},
// Массив конфигурационных объектов колонок детали.
[
    {
        name: "Data",
        displayColumn: "Name",
        label: "ContactRecordPage_contactFilesDetail_Data",
        placeHolder: "ContactRecordPage_contactFilesDetail_Data"
    },
    {
        name: "Type",
        hidden: true
    },
    {
        name: "Name",
        label: "ContactRecordPage_contactFilesDetail_Link",
        placeHolder: "ContactRecordPage_contactFilesDetail_Link",
        viewType: Terrasoft.ViewTypes.Url
    }
]);

После внесения изменений схему необходимо сохранить.

Здесь выполняется вызов метода addEmbeddedDetail(), которому в качестве аргументов передаются:

  • Название основного объекта раздела, в который будет добавлена деталь.
  • Конфигурационный объект свойств детали.
  • Массив конфигурационных объектов свойств колонок детали.

2. Создать схемы страниц просмотра и редактирования записи

Страница записи раздела в мобильном приложении может отображаться в двух режимах — в режиме просмотра и в режиме редактирования. Чтобы деталь корректно отображалась в обоих режимах, необходимо добавить соответствующие контроллеры и представления.

Для корректного отображения детали в режиме просмотра необходимо в пользовательский пакет добавить новую схему модуля со следующими значениями свойств:

  • [Заголовок] ([Title]) — "UsrMobileContactPreviewPage".
  • [Название] ([Name]) — "UsrMobileContactPreviewPage".
  • [Пакет] ([Package]) — название пользовательского пакета, в котором ведется разработка.

На вкладку [Исходный код] ([Source Code]) схемы в дизайнере модуля необходимо добавить следующий исходный код:

// Запоминание просмотренных страниц и разделов.
Terrasoft.LastLoadedPageData = {
    controllerName: "ContactPreviewPage.Controller",
    viewXType: "contactpreviewpageview"
};
// Представление детали в режиме просмотра.
Ext.define("ContactPreviewPage.View", {
    extend: "Terrasoft.view.BasePreviewPage",
    xtype: "contactpreviewpageview",
    config: {
        id: "ContactPreviewPage"
    }
});
// Контроллер детали в режиме просмотра.
Ext.define("ContactPreviewPage.Controller", {
    extend: "FileAndLinksPreviewPage.Controller",
    statics: {
        Model: Contact
    },
    config: {
        refs: {
            view: "#ContactPreviewPage"
        }
    },
    fileModel: "ContactFile"
});

После внесения изменений схему необходимо сохранить.

Для корректного отображения детали в режиме редактирования необходимо в пользовательский пакет добавить новую схему модуля со следующими значениями свойств:

  • [Заголовок] ([Title]) — "UsrMobileContactEditPage".
  • [Название] ([Name]) — "UsrMobileContactEditPage".
  • [Пакет] ([Package]) — название пользовательского пакета, в котором ведется разработка.

На вкладку [Исходный код] ([Source Code]) схемы в дизайнере модуля необходимо добавить следующий исходный код:

// Запоминание просмотренных страниц и разделов.
Terrasoft.LastLoadedPageData = {
    controllerName: "ContactEditPage.Controller",
    viewXType: "contacteditpageview"
};
// Представление детали в режиме редактирования.
Ext.define("ContactEditPage.View", {
    extend: "Terrasoft.view.BaseEditPage",
    xtype: "contacteditpageview",
    config: {
        id: "ContactEditPage"
    }
});
// Контроллер детали в режиме редактирования.
Ext.define("ContactEditPage.Controller", {
    extend: "FileAndLinksEditPage.Controller",
    statics: {
        Model: Contact
    },
    config: {
        refs: {
            view: "#ContactEditPage"
        }
    },
    
    fileModel: "ContactFile"
}, function() {
    this.addDefaultBusinessRules();
});

После внесения изменений схему необходимо сохранить.

3. Добавить информацию о новых схемах в манифест мобильного приложения

Чтобы внесенные изменения были применены, необходимо добавить информацию о них в манифест мобильного приложения. Для этого необходимо в пользовательском пакете создать расширяющую схему MobileApplicationManifestDefaultWorkplace. Подробнее о манифесте можно узнать из статьи "Манифест мобильного приложения". Как создать замещающую схему, подробно описано в статье "Создание клиентской схемы".

В дизайнере модуля на вкладку [Исходный код] ([Source Code]) расширяющей схемы MobileApplicationManifestDefaultWorkplace необходимо добавить следующий исходный код:

{
    "SyncOptions": {
        "SysSettingsImportConfig": [],
        // Настройка импорта необходимых моделей.
        "ModelDataImportConfig": [
            // Тип файла.
            {
                "Name": "FileType",
                "SyncColumns": []
            },
            // Объект детали [Файлы и ссылки] раздела [Контакты].
            {
                "Name": "ContactFile",
                "SyncByParentObjectWithRights": "Contact",
                "SyncColumns": [
                    "Contact",
                    "Type",
                    "Data",
                    "Size"
                ]
            }
        ]
    },
    // Используемые модели.
    "Models": {
        "Contact": {
            // Конфигурирование режима просмотра.
            "Preview": "UsrMobileContactPreviewPage",
            // Конфигурирование режима редактирования.
            "Edit": "UsrMobileContactEditPage",
            "RequiredModels": [
                "ContactFile",
                "FileType"
            ],
            // Конфигурирование раздела.
            "ModelExtensions": [
                "UsrMobileContactModuleConfig"
            ]
        }
    }
}

После внесения изменений схему нужно сохранить.

В результате выполнения кейса на странице редактирования записи раздела [Контакты] ([Contacts]) мобильного приложения появится [Файлы и ссылки] ([Attachments]) (рис. 2).

Рис. 2. — Деталь [Файлы и ссылки] ([Attachments]) на странице редактирования контакта

© Terrasoft 2002-2018.

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

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