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

Зависимости пакетов. Основные пакеты системы

Glossary Item Box

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

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

Зависимости и иерархия пакетов

Пакет может иметь несколько зависимостей. Например, в пакете С (Рис. 1) установлены зависимости от пакетов А и D. Таким образом, вся функциональность пакетов А и D доступна в пакете С.

Рис. 1. — Зависимости и иерархия пакетов

Зависимости пакетов формируют иерархические цепочки. Это означает, что в пакете доступна не только функциональность пакета, добавленного в зависимости текущего, но и функциональность всех пакетов, от которых зависит пакет, добавленный в зависимости текущего. Ближайшей аналогией иерархии пакетов является иерархия наследования классов в объектно-ориентированном программировании. Так, например, в пакете Е (Рис. 1) доступна функциональность не только пакета C, от которого он зависит, но и функциональность пакетов А, В и D. А в пакете F доступна функциональность пакетов B и D.

Добавление зависимостей пакета

Зависимости можно добавить только в пользовательский пакет и только после его создания. Для этого необходимо в карточке пакета на детали [Зависит от пакетов] ([Depends on packages]) (Рис. 2) нажать на кнопку [Добавить] ([Add]) (1). В появившемся диалоге справочника пакетов необходимо выбрать нужный пакет (2) и нажать на кнопку [OK] (3).

Рис. 2. — Добавление зависимости в пользовательский пакет

После этого выбранный пакет будет отображен в списке зависимостей текущего пакета, а при добавлении новой зависимости он будет скрыт из справочника пакетов (Рис. 3).

Рис. 3. — Добавленный пакет-зависимость

После создания пакета он автоматически добавляется в зависимости предустановленного пакета [Custom] (рис. 4).

Рис. 4. — Вкладка, отображающая зависящие пакеты

Список зависимостей в метаданных

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

{
  "Descriptor": {
    "UId": "51b3ed42-678c-4da3-bd16-8596b95c0546",
    "PackageVersion": "7.8.0",
    "Name": "UsrDependentPackage",
    "ModifiedOnUtc": "\/Date(1522653150000)\/",
    "Maintainer": "Customer",
    "DependsOn": [
      {
        "UId": "e14dcfb1-e53c-4439-a876-af7f97083ed9",
        "PackageVersion": "7.8.0",
        "Name": "SalesEnterprise"
      }
    ]
  }
}

Иерархия пакетов приложения

Иерархию и зависимости пакетов приложения удобно исследовать, используя диаграмму зависимостей пакетов. Эта диаграмма расположена на вкладке [Зависимости пакетов] ([Package Dependencies]) раздела [Конфигурация] (Рис. 5).

Рис. 5. — Фрагмент диаграммы иерархии зависимостей пакетов

Если кликнуть по узловому элементу диаграммы с именем пакета, то с помощью анимированных стрелок отобразятся связи с пакетами, которые зависят от выбранного, и от которых зависит выбранный пакет. Например, для продукта SalesEnterpise, пакет [UsrDependentPackage] зависит только от пакета [SalesEnterpise] и всех его зависимостей (Рис. 4). Также от него зависит пакеты [Custom].

Основные пакеты приложения

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

Табл. 1. — Основные пакеты приложения

Название пакета Содержимое
Base Базовые схемы основных объектов, разделов системы и связанных с ними схем объектов, страниц, процессов и др.
Platform Модули и страницы мастера разделов, дизайнеров реестра и итогов и т. п.
Managers Клиентские модули менеджеров схем.
NUI Функциональность, связанная с пользовательским интерфейсом системы.
UIv2 Функциональность, связанная с пользовательским интерфейсом системы.
DesignerTools Схемы дизайнеров и их элементов.
ProcessDesigner Схемы дизайнера процессов.

© Terrasoft 2002-2019.

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

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