Дерево страниц
Skip to end of metadata
Go to start of metadata

BPMN (Business Process Model and Notation) - описывает условные обозначения и их описание в XML для отображения бизнес-процессов в виде диаграмм бизнес-процессов.

BPMN ориентирована как на технических специалистов, так и на бизнес-пользователей.

Краткая информация

  • Описывает условные обозначения и их описание в XML
  • Интуитивно понятен
  • Переносим
  • Популярен
Статус

ГОТОВО

Комментарий

properties

Свойства бизнес-процесса

ПараметрыОписание

id

Идентификатор модели процесса

name

Описание модели

namespace

Пространство имен. По умолчанию: http://inttrust.ru/cmj

data objects

Объекты данных BPMN используются для указания информации, не связанной с потоком процесса. Эти элементы не являются исполняемыми, но могут использоваться для удобства чтения, анализа или выполнения бизнес-процессов.

Используется для версионирования процесса

idnametypevalue
versionversionstring<#1>.<#2>.<#3>.<#4>

, где

<#1> - увеличивается на единицу, если полностью переписана модель. Начинается с 1.

<#2> - увеличивается на единицу, если исключаются блоки процесса из модели. Начинается с 0.

<#3> - увеличивается на единицу, если не существенно меняется модель процесса, к примеру, добавляется новая задача, шлюз и т.д. Начинается с 1.

<#4> - увеличивается на единицу, если не меняется модель процесса. Начинается с 1.

messages

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

idname
END_PROCESSEND_PROCESS

element

start event

Стартовое событие

ЭлементОписание

start event

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

timer start event

Экземпляр процесса запускается по событиям циклического таймера (например, по выражению cron), в определенные моменты времени, после промежутков времени или после тайм-аутов.

message start event

Экземпляр процесса запускается при получении сообщения. Прием сообщений должен происходить в серверной части.

signal start event

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

error start event

Перехватывает именованные ошибки. Это событие используется только внутри подпроцесса события.

end event

Событие завершения

ЭлементОписание

end event

Конечное событие обычно отмечает завершение процесса.

error end event

Процесс завершается в состоянии ошибки. В результате выдается именованная ошибка.

terminate end event

Запускает немедленное завершение экземпляра процесса. Все шаги, которые все еще выполняются в параллельных ветвях, завершаются.

cancel end event

Запускает отмену транзакции.

tasks

Задачи

ЭлементОписание

user task

Пользовательская задача — задача «рабочего процесса», в которой исполнитель выполняет задачу с помощью программного приложения.

Параметры задачи:

idуникальный идентификатор задачи
nameназвание задачи
assignee

исполнитель, который может быть вычислен разными способами:

  • из поля текущего объекта @DocumentField(@Variable(contextId); servWho)
  • с помощью реляции @Relation(Руководитель; @DocumentField(@Variable(contextId); servInitBranch))
  • из временной переменной @Variable(whoHeadBeard)
  • подробнее здесь CmjEL
due date (variable)

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

  • PT8H - 8 часов
  • P1D - 1 день
  • P2M - 2 месяца
  • ${dueDate} - переменной

script task

Задача сценария выполняется механизмом бизнес-процессов.

idуникальный идентификатор задачи
nameназвание задачи
script languagejavascript
script

Для отладки скрипта используется сервис test-script-task

load("nashorn:mozilla_compat.js");
importClass(Packages.ru.intertrust.cmj.af.core.AFSession);
importClass(Packages.ru.intertrust.cmj.dp.DPApplication);
importClass(Packages.ru.intertrust.cmj.rest.tuning.TuningHelper);
importClass(Packages.ru.intertrust.cmj.af.utils.Utils);

var appDp = AFSession.get().getApplication(DPApplication.class);

//Получение документа
var document = appDp.getEntityByUNID(contextId);

var wf = document.tuning().getValues().get('wf');

//Изменение стадии
var propertyStage = wf.getSchema().getProperty("stage");
var stageValue = TuningHelper.createPropertyValue("На размещение",propertyStage);
wf.getValues().put("stage", stageValue);

//Сохранение документа
document.save();

//Отправка задачи
execution.setVariable("mainTaskEventId", "DFLT1_11");

service task

Задача службы — это задача, которая использует какой-либо сервис. Сервис может быть веб-сервисом или автоматизированным приложением.

manual task

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

receive task

Задача получения — это простая задача, предназначенная для ожидания прибытия сообщения от внешнего участника (относительно процесса). Как только Сообщение будет получено, Задача будет завершена.

call activity

Действие вызова определяет точку в процессе, где используется глобальный процесс или глобальная задача. Действие вызова действует как «обертка» для вызова глобального процесса или глобальной задачи в рамках выполнения. Активация вызова Activity приводит к передаче управления вызываемому глобальному Процессу или Глобальной Задаче.

connection

Стартовое событие

ЭлементОписание

sequence flow

Поток операций используется для отображения порядка элементов потока в процессе

idуникальный идентификатор потока
nameназвание потока
condition

результат условия

${<Название задачи>Result.equals("1")}

subprocess

Подпроцессы

ЭлементОписание

subprocess

Подпроцесс — это действие, внутренние детали которого были смоделированы с использованием действий, шлюзов, событий и потоков операций. 

event subprocess

Подпроцесс события — это специализированный подпроцесс, который используется в рамках процесса (или подпроцесса).

Событийный подпроцесс МОЖЕТ или НЕ МОЖЕТ произойти, пока родительский процесс активен, но возможно, что он произойдет много раз. В отличие от стандартного Subprocess, который использует поток родительского Процесса в качестве триггера, Event Subprocess имеет Start Event с триггером. Каждый раз, когда Start Event запускается, когда родительский Процесс активен, запускается Event Subprocess.

pool & lane

ЭлементОписание

pool

Пул — это графическое представление участника совместной работы. 

lane

Дорожка представляет собой подраздел внутри процесса (часто внутри пула) и простирается на всю длину уровня процесса как по вертикали, так и по горизонтали.

gateway

Шлюз используется для управления потоком выполнения

ЭлементОписание

parallel gateway

Параллельный шлюз используется для синхронизации (объединения) параллельных потоков и создания параллельных потоков

idидентификатор шлюза
nameназвание шлюза

exclusive gateway

Расходящийся эксклюзивный шлюз (решение) используется для создания альтернативных путей внутри потока процесса. 

idидентификатор шлюза
nameназвание шлюза

inclusive gateway

Расходящийся инклюзивный шлюз (инклюзивное решение) может использоваться для создания альтернативных, но также параллельных путей внутри потока процесса. В отличие от эксклюзивного шлюза, оцениваются все выражения условий.

event gateway

Шлюз на основе событий представляет собой точку ветвления в процессе, где альтернативные пути, следующие за шлюзом, основаны на происходящих событиях, а не на оценке выражений с использованием данных процесса (как в случае с эксклюзивным или инклюзивным шлюзом)

intermediate event

Промежуточное событие ожидает, пока событие произойдет.

ЭлементОписание

signal catching event

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

timer cathing event

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

message catching event

Выполнение процесса откладывается до тех пор, пока не поступит сообщение.

idидентификатор события
nameназвание события
message refссылка на сообщение

boundary event

Граничные события — это улавливающие события, прикрепленные к действию (граничное событие никогда не может быть выбрасываемым). Это означает, что во время выполнения действия событие прослушивает триггер определенного типа. Когда событие перехвачено, действие прерывается и выполняется поток последовательности, выходящий из события

ЭлементОписание

message boundary event

Выполнение процесса откладывается до тех пор, пока не поступит сообщение.

timer boundary event

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

signal boundary event

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

Элементы и параметры: