9.6 KiB
Mapping BPMN to EPC
info
- https://www.businessstudio.ru/help/docs/current/doku.php/ru/csdesign/bpmodeling/bpmn_notation
- https://www.businessstudio.ru/help/docs/current/doku.php/ru/csdesign/bpmodeling/epc_notation
Ответ 1
Маппинг шлюзов BPMN в нотацию EPC
1. Exclusive Gateway (XOR) → Оператор XOR в EPC
Разделяющий XOR (Exclusive Decision)
BPMN:
[ ]→〈X〉→{A}
→{B}
EPC:
(Event1)→[Function]→(Event2)─XOR─→[Function A]→...
└─→[Function B]→...
Комментарий: В EPC оператор XOR после события указывает на исключающее ИЛИ - будет выполнена только одна из последующих функций. Условия выбора пути указываются в виде событий или текстовых аннотаций.
Сходящийся XOR (Exclusive Merge)
BPMN:
{A}→〈X〉→[ ]
{B}→ ↗
EPC:
...→[Function A]→(Event1)─XOR─→[Next Function]→...
...→[Function B]→(Event2)─┘
Комментарий: Сходящийся XOR объединяет альтернативные пути. В EPC это реализуется через оператор XOR, который ожидает одно из возможных предыдущих событий.
2. Parallel Gateway (AND) → Оператор AND в EPC
Разделяющий AND (Parallel Fork)
BPMN:
[ ]→〈+〉→{A}
→{B}
EPC:
(Event)→[Function]→(Event2)─AND─→[Function A]→...
└─→[Function B]→...
Комментарий: Оператор AND в EPC активирует все исходящие пути одновременно, что соответствует параллельному выполнению в BPMN.
Сходящийся AND (Parallel Join)
BPMN:
{A}→〈+〉→[ ]
{B}→ ↗
EPC:
...→[Function A]→(Event1)─AND─→[Next Function]→...
...→[Function B]→(Event2)─┘
Комментарий: Сходящийся AND требует завершения всех входящих потоков перед продолжением процесса.
3. Inclusive Gateway (OR) → Комбинация операторов в EPC
Разделяющий OR (Inclusive Decision)
BPMN:
[ ]→〈O〉→{A}
→{B}
→{C}
EPC:
(Event)→[Function]→(Gateway Event)─OR─→[Function A]→...
├─→[Function B]→...
└─→[Function C]→...
Комментарий: В EPC нет нативного оператора OR, поэтому используются комбинации XOR и AND, либо расширенные нотации с явным указанием условий.
Сходящийся OR (Inclusive Merge)
BPMN:
{A}→〈O〉→[ ]
{B}→ ↗
{C}→ ↗
EPC:
...→[Function A]→(Event1)─\
...→[Function B]→(Event2)─OR─→[Next Function]→...
...→[Function C]→(Event3)─/
Комментарий: Сложность маппинга заключается в том, что EPC не имеет прямого аналога сходящегося OR. Часто используется комбинация событий и условий.
4. Event-Based Gateway → Комбинация событий в EPC
BPMN:
[ ]→〈◇〉→⚡Timer→{A}
→✉Message→{B}
EPC:
(Start Event)→(Wait State)─XOR─→(Timer Event)→[Function A]→...
└─→(Message Event)→[Function B]→...
Комментарий: Event-Based Gateway отображается через ожидающее событие с последующим оператором XOR, где каждое исходящее событие представляет триггер.
5. Complex Gateway → Пользовательские правила в EPC
BPMN:
{A}→〈*〉→[ ]
{B}→ ↗
{C}→ ↗
EPC:
...→[Function A]→(Event1)─\
...→[Function B]→(Event2)─[Complex Rule Function]→[Next Function]→...
...→[Function C]→(Event3)─/
Комментарий: Для Complex Gateway в EPC создается специальная функция, которая инкапсулирует сложную логику объединения потоков.
Ключевые ограничения маппинга:
- Семантические различия: EPC ориентирована на события, а BPMN - на потоки управления
- Отсутствие прямых аналогов: Не все шлюзы BPMN имеют точные соответствия в EPC
- Визуальное представление: EPC использует операторы как отдельные элементы, а не узлы соединения
- Условные переходы: В EPC условия часто привязаны к событиям, а не к операторам
Маппинг требует адаптации модели с учетом бизнес-логики и конкретных требований процесса.
Mermaid
Маппинг шлюзов BPMN в EPC (Mermaid.js)
1. Exclusive Gateway (XOR)
Разделяющий XOR
flowchart TD
A[Функция] --> B{ }
B --> C[Функция A]
B --> D[Функция B]
style B fill:#000000
style B color:#ffffff
Комментарий: В EPC черный крест (XOR) указывает на исключающий выбор - выполняется только одна ветвь.
Сходящийся XOR
flowchart TD
A[Функция A] --> C{ }
B[Функция B] --> C
C --> D[Следующая функция]
style C fill:#000000
style C color:#ffffff
2. Parallel Gateway (AND)
Разделяющий AND
flowchart TD
A[Функция] --> B{ }
B --> C[Функция A]
B --> D[Функция B]
style B fill:#000000
style B color:#ffffff
Комментарий: В EPC для AND используется тот же символ, но логика определяется контекстом - все пути выполняются параллельно.
Сходящийся AND
flowchart TD
A[Функция A] --> C{ }
B[Функция B] --> C
C --> D[Следующая функция]
style C fill:#000000
style C color:#ffffff
3. Inclusive Gateway (OR)
Разделяющий OR
flowchart TD
A[Функция] --> B(( ))
B --> C[Функция A]
B --> D[Функция B]
B --> E[Функция C]
style B fill:#000000
style B color:#ffffff
style B stroke:#000000
style B stroke-width:2px
Комментарий: В EPC OR часто представляется как пустой круг или комбинация операторов, активирующая одну или несколько ветвей.
4. Event-Based Gateway
flowchart TD
A[Функция] --> B{◇}
B --> C[⚡ Таймер]
B --> D[✉️ Сообщение]
B --> E[🔄 Ошибка]
C --> F[Обработка таймера]
D --> G[Обработка сообщения]
E --> H[Обработка ошибки]
style B fill:#ffffff
style B color:#000000
style B stroke:#000000
style B stroke-width:2px
Комментарий: Event-Based Gateway отображается через ожидание различных событий-триггеров.
5. Комбинированные операторы EPC
Комплексная логика
flowchart TD
A[Начальная функция] --> B{XOR}
B --> C[Функция A]
B --> D[Функция B]
C --> E{AND}
D --> E
E --> F[Функция C]
E --> G[Функция D]
F --> H((Конечное событие))
G --> H
style B fill:#000000
style E fill:#000000
style B color:#ffffff
style E color:#ffffff
6. Полный пример процесса
flowchart TD
Start((Старт)) --> A[Проверить заявку]
A --> B{XOR}
B --> C[Одобрить заявку]
B --> D[Отклонить заявку]
C --> E{AND}
E --> F[Уведомить клиента]
E --> G[Обновить БД]
F --> H((Заявка одобрена))
G --> H
D --> I((Заявка отклонена))
style B fill:#000000
style E fill:#000000
style B color:#ffffff
style E color:#ffffff
Особенности маппинга в Mermaid:
- XOR оператор - черный ромб/прямоугольник
- AND оператор - черный ромб (контекст определяет логику)
- События - круги
- Функции - прямоугольники
- Поток управления - стрелки
Mermaid не имеет нативной поддержки EPC, но может эмулировать основные конструкции через стандартные элементы flowcharts.