Настройка приложения "Схема BPM"

Приложение "Схема BPM" предназначено для визуализации реализованных бизнес-процессов — последовательности действий, выполняемых с объектами для получения заданного результата.

В разделе описывается настройка схемы BPM на основе объектной модели Конструктора бизнес-процессов, см. Объектная модель приложения "Конструктор бизнес-процессов".

Дистрибутив приложения

Дистрибутив приложения "Схема BPM" включает в себя файлы:

  • встроенное приложение для визуализации схемы BPM;
  • скриптовый модуль для передачи данных между встроенным приложением и SMP;
  • скриптовый модуль для определения параметров построения схемы BPM.

Информация об условиях получения дистрибутива BPM предоставляется по запросу в клиентский сервис ITSM 365.

Добавление встроенного приложения

Встроенное приложение добавляется в систему по общим правилам, см. Установка встроенного приложения.

Место настройки

Меню навигации "Настройка системы" → настройка "Приложения".

Выполнение настройки

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

Ключевые параметры приложения:

  • Тип приложения: "Приложение, исполняемое на стороне клиента".

Размещение схемы BPM на карточке объекта

Контент со схемой BPM размещается на карточке объектов класс "Бизнес-процесс" - тип "Маршрут".

Место настройки

Меню навигации "Классы" → "Основной класс" → название класса/типа целевого объекта.

Выполнение настройки

Чтобы разместить контент со схемой BPM на карточке объекта, нажмите Добавить контент, заполните параметры контента и нажмите кнопку Сохранить.

Ключевые параметры контента:

  • Тип контента: "Встроенное приложение".
  • Приложение: "Схема BPM" (для выбора доступны приложения уже добавленные в систему).

Добавление скриптовых модулей

Место настройки

Меню навигации "Настройка системы" → настройка "Каталог скриптов и модулей" → вкладка "Каталог модулей".

Выполнение настройки

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

В параметр "Текст" скопируйте текст скрипта из соответствующего файла дистрибутива:

  • bpmScheme — скриптовый модуль для передачи данных между встроенным приложением и SMP;
  • bpmSchemeParams — скриптовый модуль для определения параметров построения схемы BPM.

Подробное описание выполнения действия приведено в разделе Добавление модуля в каталоге модулей.

Настройки объектов, для отображения на схеме BPM

Объекты на схеме BPM могут отображаться:

  • в виде карточки — объекты с информацией о шаге маршрута бизнес-процесса (класс "Бизнес-процесс", тип "Шаблон шага");
  • в виде стрелки — объекты с информацией о типизированных действиях (класс "Действие").

Стрелка соединяет между собой две карточки в виде "исходный шаг, из которого инициируется действие ← действие → целевой шаг, в рамках которого выполняется действие".

Атрибуты объекта отображаются на схеме BPM в карточке. Также, атрибуты, объединенные в группы, отображаются на формах с дополнительной информацией об объекте.

Атрибуты объекта и группы атрибутов передаются в качестве параметров скриптового модуля. Для корректного отображения схемы BPM типы атрибутов должны точно соответствовать требованиям, см. Параметры построения схемы BPM.

Недостающие атрибуты и группы атрибутов можно добавить при настройке класса/типа. Код является ключевым параметром атрибута и группы атрибутов.

Параметры построения схемы BPM

Все параметры построения схемы BPM определяются в модуле bpmSchemeParams, см. Добавление и редактирование скрипта в месте настройки скрипта. Компонент работы со скриптом.

Параметры для корректного отображения схемы BPM:

  • набор объектов, которые будут отображаться на схеме;
  • информация об объекте (список кодов атрибутов и групп атрибутов, которые должны быть выведены на схему);
  • расположение карточек и связей на схеме;
  • параметры кнопки для автоматической расстановки элементов на схеме (отображение и название кнопки);
  • параметры кнопки для управления блоком "Параметры" на карточке (отображение и название кнопки для двух состояний);
  • параметры кнопки для управления блоком "Параметры действия" под карточкой исходного шага (отображение и название кнопки для двух состояний);
  • возможность изменять положение объектов на схеме перетаскиванием.

Параметры карточки объекта

static TEMPLATE_PARAMS — карта параметров карточки объекта на схеме BPM.

В модуле можно определить несколько карт для карточек объектов разных типов.

Copy
static TEMPLATE_PARAMS = 
[
    icon : 'system_icon', // Иконка карточки
    cardTitle : 'title', // Название карточки
    params : 'Parametry(Shema)', // Параметры на карточке
    extraParams : ['Общие' : 'main', 'Параметры шаблона' : 'additional'], // Параметры на форме, вызванной из карточки
    //extraParams : ['main', 'additional'], // Параметры на форме, вызванной из карточки
    execActions : 'execActions', // Исходящие действия
    coordinatePoint : 'coordPoint' // Координаты карточки на схеме
]

Параметры карточки объекта:

  • icon — иконка карточки. Код атрибута типа "Элемент справочника", значение которого содержит иконку.

    По умолчанию используется атрибут с кодом system_icon.

  • cardTitle — название карточки и формы с дополнительными параметрами, вызванной из карточки. Код атрибута типа "Строка" или "Текст", значение которого содержит название.

    По умолчанию используется атрибут с кодом title.

  • params — параметры на карточке. Код группы атрибутов, предназначенной для отображения в блоке "Параметры".

  • extraParams — параметры на форме, вызванной из карточки:

    • Название и код группы атрибутов, предназначенной для отображения на форме. Может быть указано несколько групп через запятую.

      extraParams : ['Общие' : 'attrGroupCode1', 'Параметры шаблона' : 'attrGroupCode2']

    • Код группы атрибутов, предназначенной для отображения на форме. Может быть указано несколько групп через запятую.

      extraParams : ['attrGroupCode1', 'attrGroupCode2']

  • execActions — исходящие действия. Код ссылочного атрибута, значение которого содержит ссылки на исходящие действия.

    По умолчанию используется атрибут с кодом execActions.

  • coordinatePoin — координаты карточки на схеме. Код атрибута типа "Текст", из которого берутся и в который сохраняются координаты карточки на схеме.

    По умолчанию используется атрибут с кодом coordPoint.

В качестве параметров карточки объекта на схеме используются атрибуты и группы атрибутов, определенные в классе/типе, объекты которого отображаются в виде карточки, например, в классе "Бизнес-процесс" / типе "Шаблон шага".

Параметры объекта в виде стрелки

static ACTION_PARAMS — карта параметров объекта в виде стрелки на схеме BPM.

В модуле можно определить несколько карт для объектов разных типов.

Copy
static ACTION_PARAMS = 
[
    linkTitle : 'title', // Название формы с дополнительными параметрами, вызванной по иконке на стрелке
    closeCodeIcon: 'system_icon', // Иконка кода закрытия
    stateIcon: 'system_icon', // Иконка статуса
    extraParams : ['Исходные параметры' : 'addObjectAttrs', 'Действие' : 'action', 'Целевые параметры' : 'editObjectAttrs', 
'Копирование атрибутов из ГО' : new ListParams('slaveActions', 'KopirovanieAtributov', ['action$headToTemp']), 
'Копирование атрибутов между процедурами' : new ListParams('slaveActions', 'KopirovanieAtributov', ['action$tempToTemp']), 
'Копирование атрибутов из процедуры в ГО' : new ListParams('slaveActions', 'KopirovanieAtributov', ['action$tempToHead'])],
    linkType : 'action', // Тип действия
    sourceObject : 'sourceTemplate', // Исходный объект, от которого идет стрелка
    sourceState : 'sourceState', // Исходный статус 
    sourceResult : 'sourceResult', // Исходный код решения
    targetObject : 'targetTemplate', // Целевой объект, к карточке которого идет стрелка
    targetState : 'targetState', // Целевой статус
    targetResult : 'targetResult', // Целевой код решения
    event : 'sourceEvent', // Исходное событие
    state : ['state', [sync : 'syncUsed', async : 'asyncUsed', customize : 'registered', disabled : 'closed']], // Вид стрелки
    arrowCoordinates: 'arrCoordPoint' //Координаты стрелки
]

Параметры объекта связи:

  • linkTitle — название формы с дополнительными параметрами, вызванной по иконке на стрелке. Код атрибута типа "Строка" или "Текст", значение которого содержит название.

    По умолчанию используется атрибут с кодом title.

  • closeCodeIcon — иконка кода закрытия. Код атрибута типа "Элемент справочника", значение которого содержит иконку. Берется атрибут, определенный в классе, на который указывает параметр sourceResult (исходный код решения) или targetResult (целевой код решения).
  • stateIcon — иконка статуса. Код атрибута типа "Элемент справочника", значение которого содержит иконку для статуса. Берется атрибут, определенный в классе, на который указывает параметр sourceState (исходный статус) или targetState (целевой статус).
  • extraParams — параметры на форме, вызванной по иконке на стрелке:

    • Название и код группы атрибутов. Каждая группа атрибутов отображается в отдельном блоке. Может быть указано несколько групп через запятую.

      extraParams : ['Исходные параметры' : 'attrGroupCode1', 'Действие' : 'attrGroupCode2', 'Целевые параметры' : 'attrGroupCode3']

    • Название списка на форме : экземпляр класса ListParams, в котором указывается код ссылочного атрибута, по которому строится список, код группы атрибутов и набор fqn типов объектов для списка. Если набор fqn пустой, то в списке выводятся все объекты без ограничения по типам. Может быть указано несколько списков.

      extraParams : ['Копирование атрибутов из ГО' : new ListParams('attrCode', 'attrGroupCode', ['class$tip'])

    • Код группы атрибутов. Каждая группа атрибутов отображается в отдельном блоке. В качестве названия блока используется название группы атрибутов. Может быть указано несколько групп через запятую.

      extraParams : ['attrGroupCode1', 'attrGroupCode2']

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

  • linkType — тип действия. Код атрибута типа "Элемент справочника", значение которого содержит тип действия "добавление" или "изменение" и определяет иконку вызова формы с дополнительными параметрами.

    Элементы справочника: "добавление" (код create), "изменение" (код edit).

    По умолчанию используется атрибут с кодом action.

  • sourceObject — исходный объект. Код атрибута типа "Ссылка на бизнес-объект", значение которого содержит ссылку на исходный объект, от которого идет стрелка.

    По умолчанию используется атрибут с кодом sourceTemplate.

  • sourceState — исходный статус. Код атрибута типа "Ссылка на бизнес-объект", значение которого отображается как статус в блоке с параметрами действия под карточкой исходного объекта.

    По умолчанию используется атрибут с кодом sourceState.

  • sourceResult — исходный код решения. Код атрибута типа "Ссылка на бизнес-объект", значение которого отображается как код решения в блоке с параметрами действия под карточкой исходного объекта.

    По умолчанию используется атрибут с кодом sourceResult.

  • targetObject — целевой объект. Код атрибута типа "Ссылка на бизнес-объект", значение которого содержит ссылку на целевой объект, к карточке которого идет стрелка.

    По умолчанию используется атрибут с кодом targetTemplate.

  • targetState — целевой статус. Код атрибута типа "Ссылка на бизнес-объект", значение которого отображается как статус в карточке действия, если карточка целевого объекта не выведена на схему.

    По умолчанию используется атрибут с кодом targetState.

  • targetResult — целевой код решения. Код атрибута типа "Ссылка на бизнес-объект", значение которого отображается как код решения в карточке действия, если карточка целевого объекта не выведена на схему.

    По умолчанию используется атрибут с кодом targetResult.

  • event — исходное событие. Код атрибута типа "Ссылка на бизнес-объект" (класс "Справочник", тип "Событие"). Значение атрибута отображается как название события, если карточка исходного объекта не выведена на схему.

    По умолчанию используется атрибут с кодом sourceEvent.

  • state — статус действия, определяющий вид стрелки на схеме. Карта, в которой указывается вид стрелки и соответствующий ему код статуса.

    Виды отображения стрелки на схеме:

    • sync (включено, синхронно)

    • async (включено, асинхронно)

    • customize (настраивается)

    • disabled (выключено)

  • coordinatePoin — координаты карточки действия на схеме. Код атрибута типа "Текст", из которого берутся и в который сохраняются координаты карточки действия на схеме.

    По умолчанию используется атрибут с кодом coordPoint.

  • arrowCoordinates — координаты стрелки. Код атрибута типа "Текст", значение которого хранит координаты изломов стрелки.

    По умолчанию используется атрибут с кодом arrCoordPoint.

В качестве параметров стрелки на схеме используются атрибуты и группы атрибутов, определенные в классе/типе, объекты которого отображаются в виде стрелки, например, классе "Действие", если в описании параметра явно не указан другой класс или тип объектов.

Параметры списков на формах с дополнительной информацией

static class ListParams — параметры списков, которые отображаются на формах с дополнительной информацией:

  • String attrCode — код ссылочного атрибута, указывающего на объекты, отображаемые в списке.
  • String attrGroupCode — код группы атрибутов для отображения в списке.
  • def fqnList — набор fqn объектов для отображения в списке (ограничение по типам).
Copy
static class ListParams {
    String attrCode 
    String attrGroupCode 
    def fqnList 

Параметры схемы

static STRUCT_PARAMS — карта параметров отображения схемы.

В модуле можно определить несколько карт для разных случаев расположения контента.

Copy
static STRUCT_PARAMS = 
[
/**
* Возможность перетаскивать элементы
*/
    draggable : false,
 
/**
* Кнопка автоматической расстановки объектов: отображение и название
*/      
    layoutButton:   [ 
        shouldRender : false, 
        text: 'Автоматическая расстановка объектов' 
    ],
/**
* Кнопка сворачивания блоков "Параметры": отображение и название для двух видов
*/       
    paramsButton :  [ 
        shouldRender : false, 
        shownText : 'Скрыть все параметры', 
        hiddenText : 'Показать все параметры' 
    ],
 
/**
* Кнопка сворачивания блоков "Статусы": отображение и название для двух видов
*/       
    statesButton :  [ 
        shouldRender : false, 
        shownText : 'Скрыть все статусы', 
        hiddenText : 'Показать все статусы' 
    ]
]

Параметры отображения схемы:

  • draggable — возможность перетаскивать элементы:

    • false — элементы на схеме не перетаскиваются;
    • true — элементы перетаскиваются на схеме.
  • layoutButton — кнопка автоматической расстановки объектов.

    Параметры кнопки:

    • shouldRender — отображение кнопки:

      • false — кнопка не отображается;
      • true — кнопка отображается.
    • text (название кнопки).
  • paramsButton — кнопка сворачивания блоков "Параметры".

    Параметры кнопки:

    • shouldRender — отображение кнопки:

      • false — кнопка не отображается;
      • true — кнопка отображается.
    • shownText — название кнопки для состояния "Развернуть все блоки";
    • hiddenText — название кнопки для состояния "Свернуть все блоки".
  • statesButton — кнопка для сворачивания блоков "Статусы".

    Параметры кнопки:

    • shouldRender — отображение кнопки:

      • false — кнопка не отображается;
      • true — кнопка отображается.
    • shownText — название кнопки для состояния "Развернуть все статусы")
    • hiddenText — название кнопки для состояния "Свернуть все статусы")

Параметры отбора объектов

Объекты, которые будут выводится на схему, должны быть явно отобраны в скриптовом модуле.

Copy
static BPMParse(def route) { // Получение маршрута
      
  def templates = route.templates // Получение всех шаблонов шага из маршрута 
  def actions = []
  templates.each { template -> 
    actions += template.initActions // Получение исходящих действий из каждого шаблона шага
    actions += template.execActions // Получение входящих действий из каждого шаблона шага
  }
  actions = actions.unique() // Получение всех уникальных действий
      
  return [templates, actions] // Объекты для отображения на схеме
      
}

Метод построения схемы

static BPMScheme(def subject, String contentCode, def api, def utils) — метод возвращает объекты, которые должны быть отображены на схеме, параметры для их отображения и параметры схемы.

Переменные передаваемые в метод:

  • subject — объект, на карточке которого размещен контент со встроенным приложением;
  • user — текущий пользователь;
  • contentCode — код контента встроенного приложения.
Copy
/**
* Получение объекта и кода контента, а так же api и utils
*/
static BPMScheme(def subject, String contentCode, def api, def utils) { 
        
    def route = null // Маршрут
    def templates = null // Шаблоны шага
    def actions = null // Действия
    def STRUCT_PARAMS = null // Параметры построения схемы
/**
* Проверка месторасположения контента
*/
    if (api.metainfo.getMetaClass(subject) as String == 'bpm$route') // 
    {
        route = subject // Контент располагается в карточке маршрута
        STRUCT_PARAMS = STRUCT_PARAMS_FOR_ROUTE
    }
    else 
    {
        route = subject.bpmRoute // Контент располагается в карточке заявки
        STRUCT_PARAMS = STRUCT_PARAMS_FOR_SERVICECALL
    }
/**
* Получаем все объекты, которые отображаются на схеме
*/
    (templates, actions) = BPMParse(route) 
    return [
        templates: templates, // Набор объектов в виде карточки
        actions: actions, // Набор объектов-действия в виде стрелки
        params: [
            struct: STRUCT_PARAMS, // Параметры построения схемы
            templates: TEMPLATE_PARAMS, // Параметры отображения карточек
            actions: ACTION_PARAMS // Параметры отображения стрелок
        ]
    ]
}