Настройка приложения "Схема BPM"
Приложение "Схема BPM" предназначено для визуализации реализованных бизнес-процессов — последовательности действий, выполняемых с объектами для получения заданного результата.
В разделе описывается настройка схемы BPM на основе объектной модели Конструктора бизнес-процессов, см. Объектная модель приложения "Конструктор бизнес-процессов".
- Дистрибутив приложения
- Добавление встроенного приложения
- Размещение схемы 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.
В модуле можно определить несколько карт для карточек объектов разных типов.
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.
В модуле можно определить несколько карт для объектов разных типов.
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 объектов для отображения в списке (ограничение по типам).
static class ListParams {
String attrCode
String attrGroupCode
def fqnList
static STRUCT_PARAMS — карта параметров отображения схемы.
В модуле можно определить несколько карт для разных случаев расположения контента.
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 — название кнопки для состояния "Свернуть все статусы")
-
Объекты, которые будут выводится на схему, должны быть явно отобраны в скриптовом модуле.
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 — код контента встроенного приложения.
/**
* Получение объекта и кода контента, а так же 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 // Параметры отображения стрелок
]
]
}