Файл Bpmn, чем открыть

Обновлено: 16.05.2024

Примеры BPMN 2.0 из реальной жизни и ответы на распространенные вопросы.

Стили моделирования BPMN

Бесплатный инструмент BPMN

Cawemo – это бесплатный онлайн-инструмент для разработки, обсуждения и обмена диаграммами BPMN с вашей командой.

Обзор

Мы обучили BPMN тысячи людей и применяем нотацию в нашей повседневной работе над проектами с 2007 года. Ниже вы можете найти множество примеров BPMN для распространенных задач моделирования. Независимо от вашего конкретного проекта или вашей отрасли, есть много общих вопросов об использовании BPMN. По нашему опыту, большинство приведенных ниже примеров BPMN будут полезны любому пользователю BPMN.

Мы присоединились к OMG в 2009 году как влиятельный член. С тех пор мы участвуем в разработке BPMN 2.0.

Примеры BPMN

Бизнес-правила и BPMN

Сценарий моделирования

Допустим, мы хотим смоделировать процесс в BPMN, и этот процесс определяет некоторые бизнес-правила. Мы будем использовать пример создания счета. Для создания счета необходимо рассчитать скидку. Сумма заказа и тип клиента являются важными критериями для расчета скидки.

Это очень простой пример, который покажет нам, где можно применять BPMN, а где нет.

Решение в виде диаграммы BPMN 2.0

Пояснение

Во время моделирования мы фокусируемся на потоке процесса. В этом примере процесс состоит из двух шагов. Скидка рассчитывается до создания счета. В результате получается очень простой процесс.

Сам расчет скидки моделировать в модели BPMN не имеет смысла (см. пример ниже). Для дерева решений правил для каждого дополнительного критерия кардинальность будет расти экспоненциально. Это не то, чего мы хотим от модели BPMN.

Поэтому имеет смысл разделить процессы и бизнес-правила.

Неправильный способ моделирования

Зависимые экземпляры

Сценарий моделирования

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

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

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

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

Решение с сигнальным событием

того же клиента?

Пояснение

Событие signal — это самый простой и компактный способ моделирования взаимодействия между различными экземплярами. Проблема сигнала в том, что он функционирует как широковещательный и не адресует какой-либо конкретный экземпляр. Так что, строго говоря, клиент игнорируется, и все ожидающие экземпляры его ловят.

Решение с событием сообщения

того же клиента?

того же клиента?

проверить ожидание

Пояснение

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

Решение с таймером и циклом

того же клиента?

Пояснение

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

Принцип четырех глаз

Сценарий моделирования

Мы хотим смоделировать следующую ситуацию, используя BPMN 2.0. Для запроса (например, платежа) необходимо два утверждения двух разных людей. Process Engine должен обеспечить выполнение обоих утверждений до утверждения запроса. Шаги, выполняемые двумя утверждающими вручную, также должны быть смоделированы на диаграмме BPMN. Решение об утверждении принимается с помощью портала со списком задач.

Случаи использования

Случаи использования этого шаблона многочисленны. Вот несколько примеров:

  • Подтверждение платежа
  • Утверждение счета
  • Утверждение контракта

Решение в виде диаграммы BPMN 2.0

Пояснение

Мы используем отдельные пулы для Process Engine, для 1-го утверждающего и для 2-го утверждающего. Таким образом, мы можем четко определить, кто контролирует какой процесс.

В движке используются пользовательские задачи. Эти пользовательские задачи соответствуют задачам, которые показаны в Списке задач 1-го и 2-го утверждающего.

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

Сам список задач не моделируется, чтобы уменьшить сложность.

Варианты

Утверждающий как свернутый пул
Определение утверждающего с помощью LDAP

Ежемесячное выставление счетов

Сценарий моделирования

Этот пример объясняет очень распространенную проблему со структурированием диаграмм BPMN 2.0. Допустим, есть юрист, который предлагает юридические консультации своим клиентам. Сервис работает следующим образом: клиенты могут обратиться за юридической консультацией в любое время, когда они в ней нуждаются. Юрист дает запрошенную консультацию и вносит оплачиваемые часы в табель учета рабочего времени клиента. По истечении месяца бухгалтер юриста определяет оплачиваемые часы на основе табеля учета рабочего времени и выставляет счет.

Этот пример иллюстрирует очень распространенный сценарий моделирования. Сложные не этапы процессов, а структура диаграммы.

Решение в виде диаграммы BPMN 2.0

Предоставить юридическую консультацию

создать и отправить

Пояснение

Самым важным аспектом диаграммы является ее структура.

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

Конечно, эти два пула не полностью независимы друг от друга. Почему? Они работают с одними и теми же данными — табелем учета рабочего времени заказчика. Наша способность моделировать такую ​​связь, связанную с данными, в BPMN очень ограничена. Это связано с тем, что BPMN ориентирована на поток управления, а не на поток данных.

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

Неправильный способ моделирования

Предоставить юридическую консультацию

создать и отправить

Объяснение, почему это неправильно

В этом примере оба процесса объединены в один. Это — в лучшем случае — очень неявный способ моделирования. Это будет означать, что за каждую предоставленную юридическую консультацию по истечении месяца высылается счет. Такой способ моделирования в большинстве случаев неверен.

Дополнительная информация, необходимая после задачи пользователя

Сценарий моделирования

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

Решение 1. Запросить информацию у другого пользователя

Решение 2. Запросить информацию у технической службы

Некоторые технические услуги

Обработка пакета заказов с торговой площадки

Ситуация

Мы хотим смоделировать следующий сценарий с помощью BPMN 2.0. Предположим, компания получает заказы из разных каналов сбыта. Одним из таких каналов является маркетплейс. Через определенные промежутки времени заказы с торговой площадки извлекаются пакетом. Каждый заказ в этой партии должен быть подтвержден перед импортом в систему ERP.

Решение в виде диаграммы BPMN 2.0

Импорт заказов из Marketplace в ERP

Импортировать заказ в

для каждого сингла

Объяснение

В этом примере показан очень распространенный сценарий моделирования. Иногда мы называем это проблемой 1-к-n. Один экземпляр процесса (импорт заказов) приводит к множеству отдельных экземпляров процесса другого процесса (система ERP). Типичными конструкциями являются мультиэкземпляры или циклы, запускающие другие процессы с использованием сообщений (потоки сообщений).

Переназначение пользовательских задач

Сценарий моделирования

Допустим, нам нужно убедиться, что определенная пользовательская задача точно выполняется. Поэтому пользовательские задачи необходимо переназначать, как только текущий исполнитель становится недоступным, например, из-за отпуска или болезни.

Решение 1. Событие границы сообщения и служба переназначения

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

Решение 2. Событие границы сообщения и правила переназначения

Это имеет смысл, если обработчик вызывает обработчик правил для определения нового правопреемника.

Решение 3. Событие границы сообщения и неявное переназначение

Это имеет смысл, если движок сам определяет нового правопреемника, например, с помощью выражения.

Эскалация в два этапа

Сценарий моделирования

Мы будем использовать следующий пример, чтобы проиллюстрировать, как смоделировать двухэтапную эскалацию с использованием BPMN 2.0. Когда мы хотим пиццу, мы заказываем ее. Иногда доставка пиццы лажает, и доставка занимает больше 30 минут. Потом жалуемся в службу доставки. После этого даем им еще 20 минут на доставку пиццы. Если они не успеют, мы сдаемся и отменяем наш заказ.

Решение 1. Два шлюза на основе событий

Преимущества этого решения

Это решение очень подробно показывает, как выполняется двухэтапная эскалация. Таймеры моделируются отдельно, за которыми следуют соответствующие действия по эскалации.

Недостатки этого решения

Шлюз на основе событий не является интуитивно понятным символом BPMN стандарта BPMN, требуется опыт.

Использование двух шлюзов на основе событий увеличивает модель и приводит к дублированию события сообщения "Пицца получена".

Решение 2. Получение задачи с прикрепленными таймерами

Преимущества этого решения

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

Недостатки этого решения

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

То, как взаимодействуют прерывающий и непрерывающий таймеры, требует глубокого понимания вложенных событий.

Решение 3. Один шлюз на основе событий с универсальным таймером

«общий» в этом

Преимущества этого решения

Эта модель представляет собой компактное и универсальное решение проблемы. Если дело доходит до эскалации в n шагов, вам понадобится этот общий подход, чтобы избежать огромных диаграмм.

Недостатки этого решения

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

Для быстрого понимания двухступенчатой ​​эскалации этот метод моделирования не подходит.

Стили моделирования BPMN

Избегайте пересечения потоков

Рекомендация

Этот пример BPMN посвящен созданию хорошей схемы моделей процессов. Чем лучше макет, тем выше степень понимания. Именно этого мы хотим добиться, создавая модели процессов.

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

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

Не удается открыть файл BPMN? Ты не единственный. С подобными проблемами ежедневно сталкиваются тысячи пользователей. Ниже вы найдете советы о том, как открыть файлы BPMN, а также список программ, поддерживающих файлы BPMN.

Расширение файла BPMN

Имя файла Шаблон Avantage
Разработчик файлов KAISHA-Tec Co. . Ltd
Категория файлов Файлы 3D-изображений

Файл BPMN поддерживается в 1 операционной системе. В зависимости от вашей операционной системы вам может потребоваться различное программное обеспечение для обработки файлов BPMN. Ниже приводится сводка количества программ, которые поддерживают и открывают файл BPMN на каждой системной платформе.

Операционные системы

Что такое файл BPMN?

Файл BPMN относится к категории файлов 3D-изображений. Создателем этого файла является KAISHA-Tec Co. Ltd. 3D Image Files состоит из 622 подобных файлов. Шаблон Avantage появляется в операционных системах 1 как функциональный файл. Эти системы состоят из Windows, хотя иногда ее можно найти в другой системе, она будет нефункциональна.

Как открыть файл BPMN?

Самая распространенная проблема при использовании шаблона Avantage заключается в том, что конкретная BPMN не связана с программой. Это проявляется в том, что файлы BPMN открываются в необычных приложениях или не имеют назначенной программы. Эту проблему можно легко решить.

Первое, что вам нужно сделать, это просто дважды щелкнуть значок файла BPMN, который вы хотите открыть. Если в операционной системе есть соответствующее приложение для его поддержки, а также существует связь между файлом и программой, файл следует открыть.

Шаг 1. Установите Avantage

В этом случае необходимо сначала убедиться, что приложение Avantage установлено на компьютере. Для этого введите в поисковик системы название Avantage. Если это не так, установка может решить проблему, так как большинство приложений создают ассоциации файлов во время установки. Далее в этой статье вы найдете список программ, которые могут открывать файлы BPMN.

Программы для открытия файла BPMN

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

Avantage

Авантаж
Шаг 2. Создайте ассоциацию Avantage с файлами BPMN

Если приложение установлено или было недавно установлено, но файл BPMN по-прежнему не использует программу Avantage, это означает отсутствие ассоциации. Эта опция доступна на уровне свойств конкретного файла, доступного в контекстном меню. Информация о файле и программе, с которой он связан, доступна здесь. С помощью кнопки «Изменить» мы можем выбрать нужную программу. Может случиться так, что в следующем окне не будет подходящей программы - впрочем, это можно исправить опцией "Обзор", где следует вручную указать местонахождение программы. Установка флажка «Всегда использовать выбранную программу .» навсегда свяжет файл BPMN с программой Avantage.

Шаг 3. Обновите Avantage до последней версии

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

Шаг 4. Проверьте наличие следующих проблем с файлом BPMN
Файл BPMN пуст или неполный.

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

Файл BPMN был заражен

Наиболее распространенной причиной здесь являются компьютерные вирусы. Быстрая проверка на вирусы с помощью современной антивирусной программы должна развеять любые сомнения. Некоторые поставщики антивирусов также предоставляют бесплатные онлайн-сканеры. Для достижения наилучших результатов мы будем сканировать всю операционную систему, а не только наш файл BPMN. В результате проверки иногда не удается восстановить BPMN-файлы, которые удаляются, если есть резервная копия этого файла, то после восстановления его также необходимо сканировать.

Файл находится в другой версии

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

Файл поврежден

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

Файл BPMN зашифрован

Также программа может сигнализировать о факте шифрования. Зашифрованные файлы BPMN нельзя воспроизводить на других компьютерах, кроме того, на котором они были зашифрованы, их необходимо расшифровать перед использованием на другом устройстве.

Файл находится в защищенном месте

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

Файл BPMN используется

Эта проблема обычно затрагивает более сложные файлы. Вы можете обнаружить, что другая программа, которую вы используете, мешает вам работать с файлом. Просто закройте ненужные программы. Если ошибка сохраняется после закрытия других программ, подождите некоторое время. Антивирусные программы или резервная копия могут заблокировать файл на некоторое время без ведома пользователя. Если и это не помогло, перезагрузите устройство.

BPMN – это общепринятая и поддерживаемая стандартная нотация для представления процессов. Стандарт OMG BPMN.

Определение процесса

Примечание

Это введение написано с предположением, что вы используете Eclipse IDE для создания и редактирования файлов. Для Eclipse мало что из этого относится, однако вы можете использовать любой другой инструмент для создания XML-файлов, содержащих BPMN 2.0.

Создайте новый XML-файл (щелкните правой кнопкой мыши любой проект и выберите «Создать» → «Другое» → «XML-XML-файл») и дайте ему имя. Убедитесь, что файл заканчивается на .bpmn20.xml или .bpmn, иначе модуль не подберет его для развертывания.

 новый.bpmn.procdef

Корневым элементом схемы BPMN 2.0 является элемент определений. В этом элементе может быть задано несколько определений процессов (хотя мы советуем иметь только одно определение процесса в каждом файле, так как это упрощает обслуживание на более поздних этапах процесса разработки). Пустое определение процесса выглядит так, как показано ниже. Обратите внимание, что элементу минимального определения требуется только объявление xmlns и targetNamespace. Пространство targetNamespace может быть любым и полезно для категоризации определений процессов.

При желании вы также можете добавить онлайн-расположение схемы XML BPMN 2.0 в качестве альтернативы конфигурации каталога XML в Eclipse.

Важно отметить, что это не то же самое, что вызов метода startProcessInstanceById, который ожидает идентификатор строки, сгенерированный во время развертывания механизмом Flowable (идентификатор можно получить, вызвав метод processDefinition.getId()). ). Формат сгенерированного идентификатора — «ключ: версия», а длина ограничена 64 символами. Если вы получаете исключение FlowableException, указывающее, что сгенерированный идентификатор слишком длинный, ограничьте текст в поле key процесса.

name: этот атрибут является необязательным и сопоставляется со свойством name ProcessDefinition. Сам движок не использует это свойство, поэтому его можно использовать, например, для отображения более понятного имени в пользовательском интерфейсе.

Начало работы: 10-минутное руководство

В этом разделе мы рассмотрим очень простой бизнес-процесс, который мы будем использовать, чтобы представить некоторые основные концепции Flowable и Flowable API.

В этом руководстве предполагается, что у вас запущена демонстрационная установка Flowable и вы используете автономный сервер H2. Отредактируйте db.properties и установите jdbc.url=jdbc:h2:tcp://localhost/flowable, а затем запустите автономный сервер в соответствии с документацией H2.

Целью этого руководства является изучение Flowable и некоторых основных концепций BPMN 2.0. Конечным результатом будет простая программа Java SE, которая развертывает определение процесса, а затем взаимодействует с этим процессом через API движка Flowable. Мы также коснемся некоторых инструментов Flowable. Конечно, то, что вы узнаете из этого руководства, также можно использовать при создании собственных веб-приложений на основе ваших бизнес-процессов.

Сценарий использования прост: у нас есть компания, назовем ее BPMCorp. В BPMCorp каждый месяц нужно писать финансовый отчет для акционеров компании. За это отвечает бухгалтерия. Когда отчет готов, один из членов высшего руководства должен одобрить документ, прежде чем он будет отправлен всем акционерам.

Описанный выше бизнес-процесс можно определить графически с помощью Flowable Designer. Тем не менее, для этого руководства мы будем сами вводить XML, так как на этом этапе мы узнаем больше всего таким образом. Графическая нотация BPMN 2.0 нашего процесса выглядит следующим образом:

financial.report.example.diagram

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

Версия XML этого бизнес-процесса (FinancialReportProcess.bpmn20.xml) выглядит так, как показано ниже. Основные элементы нашего процесса легко распознать (нажмите на ссылку, чтобы перейти к подробному разделу этой конструкции BPMN 2.0):

Стартовое событие (none) говорит нам, что является точкой входа в процесс.

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

Процесс завершается, когда достигается событие отсутствия завершения.

Элементы связаны друг с другом потоками последовательностей. Эти потоки управления имеют источник и цель, определяющие направление потока управления.

Запуск экземпляра процесса

Теперь мы создали определение процесса для нашего бизнес-процесса. Из такого определения процесса мы можем создавать экземпляры процесса. В этом сценарии один экземпляр процесса соответствует созданию и проверке одного финансового отчета за конкретный месяц. Все экземпляры процесса за любой месяц имеют одно и то же определение процесса.

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

Определение процесса будет храниться в постоянном хранилище данных, настроенном для вашего механизма Flowable. Таким образом, развертывая наш бизнес-процесс, мы гарантируем, что ядро ​​найдет определение процесса после перезапуска ядра.

XML процесса BPMN 2.0 будет преобразовываться в объектную модель в памяти, которой можно управлять с помощью Flowable API.

Дополнительную информацию о развертывании можно найти в специальном разделе, посвященном развертыванию.

Как описано в этом разделе, развертывание может происходить несколькими способами. Один из способов — через API следующим образом. Обратите внимание, что все взаимодействие с движком Flowable происходит через его сервисы.

Теперь мы можем запустить новый экземпляр процесса, используя идентификатор, который мы определили в определении процесса (см. элемент процесса в XML). Обратите внимание, что этот идентификатор в терминологии Flowable называется ключом.

Это создаст экземпляр процесса, который сначала пройдет через начальное событие. После начального события следуют все исходящие потоки последовательности (в данном случае только один) и достигается первая задача («написать ежемесячный финансовый отчет»). Движок Flowable теперь будет хранить задачу в постоянной базе данных. На этом этапе пользовательские или групповые назначения, связанные с задачей, разрешаются и также сохраняются в базе данных. Важно отметить, что движок Flowable продолжит выполнять этапы выполнения до тех пор, пока не достигнет состояния ожидания, например пользовательской задачи. В таком состоянии ожидания текущее состояние экземпляра процесса сохраняется в базе данных. Он остается в этом состоянии до тех пор, пока пользователь не решит выполнить свою задачу. В этот момент механизм продолжит работу, пока не достигнет нового состояния ожидания или конца процесса. Если в это время ядро ​​перезагружается или происходит сбой, состояние процесса безопасно и безопасно в базе данных.

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

Теперь мы можем объединить все это и создать простую программу на Java. Создайте новый проект Eclipse и добавьте файлы JAR и зависимости Flowable в его путь к классам (их можно найти в папке libs дистрибутива Flowable). Прежде чем мы сможем вызывать сервисы Flowable, мы должны сначала создать ProcessEngine, который предоставит нам доступ к сервисам. Здесь мы используем конфигурацию 'standalone', которая создает ProcessEngine, использующий базу данных, также используемую в демонстрационной установке.

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

Теперь мы можем получить эту задачу через TaskService, добавив следующую логику:

Обратите внимание, что пользователь, которого мы передаем этой операции, должен быть членом группы accountancy, как это было объявлено в определении процесса:

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

Поскольку мы настроили наш ProcessEngine на использование той же базы данных, что и демонстрационная установка, теперь мы можем войти в Flowable IDM. Войдите в систему как admin/test и создайте двух новых пользователей kermit и fozzie и предоставьте им обоим право доступа Доступ к приложению рабочего процесса. Затем создайте 2 новые организационные группы с именами бухгалтерия и управление, добавьте fozzie в новую группу бухгалтерии и добавьте kermit в группу управления. Теперь войдите с помощью fozzie в приложение задач Flowable, и мы обнаружим, что можем начать наш бизнес-процесс, выбрав приложение задач, затем его страницу Процессы и выбрав 'Ежемесячный финансовый отчет'< /em> процесс.

bpmn.financial.report.example.start.process

Как объяснялось, процесс будет выполняться до тех пор, пока не будет достигнута первая пользовательская задача. Поскольку мы вошли в систему как fozzie, мы видим, что для него доступна новая задача-кандидат после того, как мы запустили экземпляр процесса. Выберите страницу Задачи, чтобы просмотреть эту новую задачу. Обратите внимание, что даже если процесс был запущен кем-то другим, задача все равно будет видна всем в группе бухгалтеров как задача-кандидат.

bpmn.financial.report.example.task.assigned

Заявка на задание

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

Теперь задача находится в личном списке задач пользователя, запросившего задачу.

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

bpmn.financial.report.example.claim.task

Выполнение задачи

Теперь бухгалтер может начать работу над финансовым отчетом. После завершения отчета он может завершить задачу, что означает, что вся работа по этой задаче выполнена.

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

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

Завершение процесса

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

Программно вы также можете проверить завершение процесса, используя historyService

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

Нетрудно заметить, что этот бизнес-процесс слишком прост, чтобы его можно было использовать в реальности. Однако, изучая конструкции BPMN 2.0, доступные в Flowable, вы сможете усовершенствовать бизнес-процесс за счет:

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

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

определение сервисной задачи в конце процесса для отправки отчета каждому акционеру.

Читайте также: