Модуль schema

Версия 1.5 от Alexandr Fokin на 2026/06/18 22:11

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