| Ветка | cccc1808/experiment/process_schema cccc1808/experiment/process_schema_diagramm |
| Описание | Более высокоуровневый модуль, вводящий описание и выполнение процесса на основе схемы. Модуль также позволяет взаимодействовать совместно с системой триггеров. Процесс содержит указатель на текущий исполняемый токен (действия этого токена выполняются). |
| Элементы | | Схема | Содержит набор токенов. Экземпляр схемы привязан к идентификатору типа процесса (ProcessType, ProcessVersion). | | Токен | - Содержит набор действий.
- Содержит состояние.
- В момент выполнения токена, последовательно выполняются его активные действия (вызываются хендлеры действий).
| | Действие токена | - Содержит внутреннюю малую статусную модель (в зависимости от типа действия).
- Содержит флаг - должно ли действий запускать сразу при переходе на токен (или оно будет активировано другим действием в процессе выполнения токена).
- Может содержать переход на другой токен (Срабатывает при завершении действия).
- Может активировать другие действия (срабатывает после вызова функции хендлера обработчика).
| ServiceTask | - Содержит ключ хендлера обработчик.
| | ConditionAction | - Содержит ключ хендлера проверки условия.
- Содержит необязательный ключ хендлера обработчик (выполняется при выполнении условия).
| | TimerAction | - В начале выполнения создает TimerTrigger (для поступления сигнала на процесс) и сохраняет временную отметку.
- Проверяет временную отметку для обнаружения срабатывания таймера.
- Содержит необязательный ключ хендлера обработчик (выполняется при срабатывании таймера).
|
|
|
| Пример диаграммы процесса | - Реализована преобразование схемы в mermaid class diagram.
Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема). - Позволяет работать с графическим представлением схемы процесса (обсуждать и изменять элементы процесса (алгоритмы хендлеров, переходы между токенами)).
| На изображении представлен пример тестового процесса, который содержит 1 токен, который содержит 3 блока действий. Токен выполняет функцию отправки сообщения с ожиданиям ответа, в случае отсутствия ответа в течении промежутка времени запрос посылается повторно. Схема позволяет указывать имена элементов и комментарии к ним (в примере приведен алгоритм в реализации хендлера действия). |  |
|