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

Структура и состав пакетов

Glossary Item Box

Основные сведения о пакетах

Пакет bpm'online — это совокупность конфигурационных элементов (схем, данных, скриптов, дополнительных библиотек), которые реализуют определенный блок функциональности. Физически пакет представляет собой каталог, содержащий определенный набор подкаталогов и файлов.

Любой продукт представляет собой конечный набор пакетов. Чтобы расширить или изменить функциональность продукта, нужно установить пакет, в котором реализованы все необходимые изменения.

Пакеты bpm'online условно можно разделить на два вида:

  • Предустановленные пакеты. Поставляются вместе с системой и устанавливаются в рабочее пространство по умолчанию. К таким относятся пакеты с базовой функциональностью (например, Base, NUI), пакеты, расширяющие функциональность системы (например, пакеты интеграции с 1С, телефонией и т.д.), а также пакеты, созданные сторонними разработчиками. Такие пакеты устанавливаются с помощью утилиты WorkspaceConsole из zip-архивов.
  • Пользовательские пакеты — пакеты, создаваемые пользователями системы. Они могут быть привязаны к хранилищу SVN.

Конфигурационные элементы из предустановленных пакетов недоступны для изменения. Разработка дополнительной функциональности и модификация существующей выполняется исключительно в пользовательских пакетах.

Плоская структура пакетов в хранилище

В bpm'online используется плоская структура пакетов. Это означает, что предназначенные для хранения различных версий проекта каталоги branches и tags находятся внутри корневого каталога пакета (рис. 1). Таким образом, упрощенно каждый пакет можно представить в виде отдельного хранилища версий проекта разработки.

Рис. 1. — Ранее используемая структура хранилища версий и плоская структура пакетов bpm'online

В отличие от ранее используемой структуры хранилища, в пакетах bpm'online не используется каталог trunk. Это связано с тем, что приложение работает только с определенной версией пакета, указываемой во время его создания или установки из хранилища. Различные версии пакетов хранятся в каталоге branches.

Версия пакета

Одной из основных характеристик пакета является его версия.

Версия указывается при создании пакета в соответствующем поле карточки пакета (рис. 2). Версия пакета может содержать цифры, символы латинского алфавита, символы "." и "_". Версия пакета должна начинаться с цифрового или буквенного символа.

Рис. 2. — Версия пакета в карточке пакета

Также версия пакета хранится в его метаданных в свойстве PackageVersion объекта, определенного в файле descriptor.json. Файл descriptor.json создается приложением для каждой версии пакета. Пример файла descriptor.json:

{
  "Descriptor": {
    "UId": "8bc92579-92ee-4ff2-8d44-1ca61542aa1b",
    "PackageVersion": "7.8.0",
    "Name": "UsrCustomPackage",
    "ModifiedOnUtc": "\/Date(1477652941000)\/",
    "Maintainer": "Customer",
    "Description": "Пакет пользователя",
    "DependsOn": [
      {
        "UId": "e14dcfb1-e53c-4439-a876-af7f97083ed9",
        "PackageVersion": "7.8.0",
        "Name": "SalesEnterprise"
      }
    ]
  }
}

Все элементы пакета имеют ту же версию, что и сам пакет.

Обновление приложения сводится к обновлению установленных в системе пакетов с функциональностью пакетов более новых версий.

Структура пакета

При фиксации пакета в систему контроля версий в хранилище пакета создается папка с именем пакета, а внутри нее — каталоги branches и tags (рис. 3).

Рис. 3. — Структура пакета в SVN

 

В папке branches хранятся все версии данного пакета. Каждая версия хранится в отдельной вложенной папке, имя которой совпадает с номером версии пакета в системе, например, 7.8.0.

Каталог tags предназначен для хранения меток. Метки в системе управления версиями — это "снимок" проекта в определенный момент времени, статическая копия файлов, необходимая для фиксации определенного важного этапа разработки.

Рабочая копия пакета сохраняется локально в файловой системе. Путь для хранения пакетов задается в конфигурационном файле ConnectionStrings.config в атрибуте connectionString элемента defPackagesWorkingCopyPath:

  <add name="defPackagesWorkingCopyPath" connectionString="TEMP\APPLICATION\WORKSPACE\TerrasoftPackages" />

По этому пути создается папка с именем пакета. Ее внутренняя структура представлена на рисунке 4.

Рис. 4. — Структура папки пакета в файловой системе

 

В каталоге Schemas хранятся схемы пакета. Привязанные к пакету внешние сборки, данные и SQL-сценарии содержатся, соответственно, в каталогах AssembliesData и SqlScripts. Все текстовые ресурсы пакета, переведенные на разные языки, вынесены в отдельный каталог Resources.

В файле descriptor.json хранятся метаданные пакета в формате JSON — его идентификатор, наименование, версия, зависимости и т.д.

Файл CommitLocker — это служебный файл, который используется в механизме блокировки пакета.

© Terrasoft 2002-2017.

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

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