doc/BPM/workflow/pattern/ai_blocking_operation.md
2025-09-12 20:41:13 +03:00

124 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### 1 Задача
**По кнопке включается станок, который работает по таймеру 20 минут (это первый процесс). И есть внешний сигнал на выходе второго процесса, по внешнему сигналу станок прекращает работу. Покажи схему в нотации markdown для размещения на github.**
#### **Описание задачи**
- **Процесс 1:** По нажатию кнопки включается станок, который работает по таймеру 20 минут.
- **Процесс 2:** Есть внешний сигнал, который может остановить станок до истечения таймера.
#### **BPMN-диаграмма в Markdown (для GitHub)**
Для размещения на GitHub удобно использовать [Mermaid](https://mermaid-js.github.io/mermaid/#/) — популярный синтаксис для визуализации диаграмм в Markdown.
```mermaid
flowchart TD
Start([Старт])
ButtonPress{{Нажата кнопка?}}
MachineOn[Включить станок]
TimerEvent([Таймер: 20 минут])
ExternalSignal([Внешний сигнал: Остановить станок])
StopMachine[Остановить станок]
End([Конец])
Start --> ButtonPress
ButtonPress -- Да --> MachineOn
MachineOn --> ParallelSplit
ParallelSplit{{Параллельный шлюз}}
ParallelSplit --> TimerEvent
ParallelSplit --> ExternalSignal
TimerEvent -- По истечении 20 мин --> StopMachine
ExternalSignal -- По сигналу --> StopMachine
StopMachine --> End
```
#### **Пояснения к схеме**
- **Параллельный шлюз** (`ParallelSplit`) используется для одновременного ожидания двух событий: истечения таймера и внешнего сигнала.
- **Станок останавливается** при наступлении любого из событий (таймер или внешний сигнал).
- **Диаграмма** легко вставляется в README.md на GitHub с помощью блока ```mermaid.
#### **Кратко о BPMN-элементах**
- **Стартовое событие** — начало процесса.
- **Задача** — действие (включить станок).
- **Параллельный шлюз** — позволяет слушать несколько событий одновременно.
- **Промежуточное событие** — таймер или внешний сигнал.
- **Конечное событие** — завершение процесса [[5]].
### 2 BPMN-схема
#### **Почему не отображается BPMN-схема в Mermaid на GitHub**
Вы столкнулись с ошибкой, потому что GitHub (и большинство Markdown-редакторов) **не поддерживает BPMN-диаграммы в Mermaid**. На данный момент поддерживаются только такие типы диаграмм, как `flowchart`, `sequenceDiagram`, `classDiagram`, `stateDiagram`, и некоторые другие, но не `bpmn`.
---
#### **Что делать?**
**1. Используйте flowchart для иллюстрации процесса в Markdown:**
Если вам нужно показать процесс в Markdown (например, на GitHub), используйте flowchart-нотацию Mermaid, которая поддерживается:
```mermaid
flowchart TD
A[Старт] --> B[Включить станок]
B --> C{Ожидание}
C -->|20 мин| D[Остановить станок]
C -->|Внешний сигнал| D
D --> E[Конец]
```
---
**2. Для настоящей BPMN-схемы:**
- Используйте специализированные BPMN-редакторы: Camunda Modeler, Bizagi Modeler, Signavio и др. Там можно создать схему с нужными событиями, шлюзами и экспортировать её в PNG, SVG или BPMN XML.
- Вставьте изображение схемы в Markdown с помощью тега `![alt](url)`.
---
#### **Вывод**
- **В Markdown на GitHub BPMN-схемы через Mermaid не поддерживаются.**
- Для иллюстрации используйте flowchart или приложите картинку, созданную в BPMN-редакторе.
Если нужна помощь с BPMN XML или экспортом схемы — дайте знать!
### 3 попытка 2
#### **Почему не отображается BPMN-схема в Mermaid на GitHub**
Вы столкнулись с ошибкой, потому что GitHub (и большинство Markdown-редакторов) **не поддерживает BPMN-диаграммы в Mermaid**. На данный момент поддерживаются только такие типы диаграмм, как `flowchart`, `sequenceDiagram`, `classDiagram`, `stateDiagram`, и некоторые другие, но не `bpmn`.
---
#### **Что делать?**
**1. Используйте flowchart для иллюстрации процесса в Markdown:**
Если вам нужно показать процесс в Markdown (например, на GitHub), используйте flowchart-нотацию Mermaid, которая поддерживается:
```mermaid
flowchart TD
A[Старт] --> B[Включить станок]
B --> C{Ожидание}
C -->|20 мин| D[Остановить станок]
C -->|Внешний сигнал| D
D --> E[Конец]
```
---
**2. Для настоящей BPMN-схемы:**
- Используйте специализированные BPMN-редакторы: Camunda Modeler, Bizagi Modeler, Signavio и др. Там можно создать схему с нужными событиями, шлюзами и экспортировать её в PNG, SVG или BPMN XML.
- Вставьте изображение схемы в Markdown с помощью тега `![alt](url)`.
---
#### **Вывод**
- **В Markdown на GitHub BPMN-схемы через Mermaid не поддерживаются.**
- Для иллюстрации используйте flowchart или приложите картинку, созданную в BPMN-редакторе.
Если нужна помощь с BPMN XML или экспортом схемы — дайте знать!