Бизнес-процессы
в системе Эталон

Что такое бизнес-процессы ?

Бизнес-процесс – это последовательность действий, которые должны быть выполнены для достижения заданной цели. Такой как обработка заявления на ипотеку или осмотр пациента в больнице. Или вот такой пример:
BPMN
Язык описания Бизнес-процессов
Это один из наиболее распространенных методов описания бизнес-процессов, которые сегодня уже «понимают» как бизнес-пользователи, так и программные продукты.
Т.е. этот язык описания является стандартным также и для создания исполняемых алгоритмов в сфере управления бизнесом.
История BPMN
BPMN 1.0 была выпущена в мае 2004 года компанией Business Process Management Initiative ( Позднее Object Management Group )
2004
2008
BPMN 1.1 ( разработчик уже OMG )
2009
BPMN 1.2
2011
BPMN 2.0
2014 - н.в.
BPMN 2.0.2
Из истории можно сделать вывод что период изменений в этом языке миновал, и можно спокойно изучать и использовать его на практике.
Особенности написания схем
Представим простой пример организации процесса службы доставки пиццы:

Действия ( Activity )

Activity – это те действия (задачи), которые должны быть выполнены на определенном этапе бизнес-процесса. Их при моделировании обычно обозначают в виде прямоугольников, в которые вписывают суть действия.
Пул ( Pool )
Пул (Pool) - основная деталь оркестровки наших процессов.
Пул описывает какой-то один процесс на диаграмме. Он может быть не изображен на диаграмме, но он всегда есть. На одной диаграмме может быть несколько Пулов.

Обернем нашу схему в Пул

Мы в схеме описываем процесс доставки пиццы - теперь очевидно.
А сколько людей задействовано в процессе? И кто чем занимается?
Ведь не один же человек и печет пиццу, и доставляет, ведь так ?
Добавим Дорожки

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

Стало совсем не понятно как все связано между собой.
Событие ( Event )

Событие – это сигнал о каком-либо совершенном действии внутри или даже снаружи процесса.
Добавим события

И еще немного >>

А что, если нас интересует именно процесс со стороны клиента ?
Можно представить в сокращенном виде

Если мы не контролируем процессы внутри
пиццерии или курьерской службы
Шлюзы ( Gateway )

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

В зависимости от полученных результатов или произошедших событий
Но что, если условие для развилки видится слишком сложным и условие выходит за рамки простой проверки значений "ДА" - "НЕТ" ?
Добавим бизнес-правило

Бизнес правила представляют собой свод правил для одной или более входных переменных.
Возвращающий одно или более значений в результате вычисления данных правил.
Добавим вызов бизнес-правила на схеме

Схема была переформирована и добавлен вызов бизнес-правила
"Рассчитать чаевые"
Особенности написание бизнес-процессов в системе Эталон

1. Вся схема, по сути, состоит из Создания задач ОУ, Ожидания отчетов по этим задачам и выполнение других действий в связи, с полученным результатом отчета

Задача2 будет создана после создания и исполнения Задачи1
В Задаче2 можно воспользоваться данными, созданной Задачи1. Например, получить название задачи:
Или использовать результат отчета из Задачи1.
Указав другое выражение:
${Задача1.labor.name}
${Задача1.laborReport.resultTypeCode}
2. При добавлении задач, для указания автора/исполнителя/контролера/наблюдателей, используются функциональные роли.
Или точно известные идентификаторы пользователей системы.
- Роли создаются и добавляются пользователям в портале Администрирования системы Эталон
- Точные идентификаторы пользователей можно получить из предыдущих созданных задач ( через выражение )
- Выполнив специальную задачу в процессе "Получить список пользователей по роли" или "Получить пользователя по роли"
- Указав в параметре запуска процесса поле с пользователем
3. Параметры запуска процессов указываются при написании схем бизнес-процессов.
Нужно понимать, какие параметры будут необходимы процессу для работы.
Ввести эти параметры можно из формы запуска из виджета Запуска БП на "Рабочем столе" модуля СЦ.

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

5. Бизнес-процесс может работать сразу с несколькими сервисами Эталона
- Необходимо следить за конфигурацией списка серверов на сервере Бизнес-процессов
- Конфигурация содержит http-url площадки, логин и пароль для учетной записи для доступа. И код, по которому можно идентифицировать сервис в схеме процесса
- Необходимо указывать код площадки для задач, связанных с выполнением действий в системе Эталон, в схеме процесса. Т.е. нужно понимать какие действия на каких площадках должны выполняться
service:
etalon-01:
host: 192.168.5.4
port: 57772
user: eta_user
password: its_a_secret
Полезные ссылки:
BPMN 2.0.2 ( ссылка на специцикацию: https://www.omg.org/spec/BPMN/About-BPMN/ )
Описание блоков в нотации BPMN для проекта Camunda ( https://camunda.com/bpmn/reference/ )
EL ( https://docs.oracle.com/cd/E19226-01/820-7627/gjddd/ )
JUEL ( http://juel.sourceforge.net/ )
Бизнес процессы в проекте Эталон
By nikitamugen
Бизнес процессы в проекте Эталон
- 630