Изменения документа Модуль schema
Редактировал(а) Alexandr Fokin 2026/07/08 12:22
От версии 1.1
отредактировано Alexandr Fokin
на 2026/06/18 21:46
на 2026/06/18 21:46
Изменить комментарий:
К данной версии нет комментариев
К версии 2.21
отредактировано Alexandr Fokin
на 2026/07/08 12:22
на 2026/07/08 12:22
Изменить комментарий:
Редактировать комментарий
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Объекты (0 изменено, 2 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,13 +1,48 @@ 1 -|(% style="width:121px" %)Ветка|(% style="width:1312px" %) 2 -|(% style="width:121px" %)Описание|(% style="width:1312px" %)Более высокоуровневый модуль, вводящий описание и выполнение процесса на основе схемы. 3 -|(% style="width:121px" %)Элементы|(% style="width:1312px" %)((( 4 -|(% style="width:178px" %)Схема|(% style="width:1102px" %)Содержит набор токенов. 5 -|(% style="width:178px" %)Токен|(% style="width:1102px" %) 6 -|(% style="width:178px" %)Действие токена|(% style="width:1102px" %) 1 +|(% style="width:98px" %)Ветка|(% style="width:1383px" %)cccc1808/experiment/process_schema 2 +cccc1808/experiment/process_schema_diagramm 3 +|(% style="width:98px" %)Описание|(% style="width:1383px" %)Более высокоуровневый модуль, вводящий описание и выполнение процесса на основе схемы. 4 +Модуль управляет статусом асинхронного выполнения процесса на основе состояния действий токена. 5 +Модуль также позволяет взаимодействовать совместно с системой триггеров. 6 +Процесс содержит указатель на текущий исполняемый токен (действия этого токена выполняются). 7 +|(% style="width:98px" %)Элементы|(% style="width:1383px" %)((( 8 +|(% style="width:131px" %)Схема|(% style="width:1234px" %)Содержит набор токенов. 9 +Экземпляр схемы привязан к идентификатору типа процесса (ProcessType, ProcessVersion). 10 +Модуль валидации содержит ряд проверок корректности схемы и зарегистрированных хендлеров. 11 +|(% style="width:131px" %)Токен|(% style="width:1234px" %)((( 12 +* Содержит набор действий. 13 +* Содержит состояние. 14 +* В момент выполнения токена, последовательно выполняются его активные действия (вызываются хендлеры действий). 7 7 ))) 8 -|(% style="width:121px" %)Пример диаграммы процесса|(% style="width:1312px" %)((( 9 -|Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема). 10 -|[[image:Тестовый процесс.1.png]] 16 +|(% style="width:131px" %)Действие токена|(% style="width:1234px" %)((( 17 +* Содержит внутреннюю малую статусную модель (в зависимости от типа действия). 18 +* Содержит флаг - должно ли действий запускать сразу при переходе на токен (или оно будет активировано другим действием в процессе выполнения токена). 19 +* Может содержать переход на другой токен (Срабатывает при завершении действия). 20 +* Может активировать другие действия (срабатывает после вызова функции хендлера обработчика). 11 11 12 - 22 +|(% style="width:116px" %)ServiceTask|(% style="width:1067px" %)((( 23 +* Содержит ключ хендлера обработчик. 24 +* Может использоваться для длительных действий (soft timeout - разбиение выполнения на несколько транзакций). 13 13 ))) 26 +|(% style="width:116px" %)ConditionAction|(% style="width:1067px" %)((( 27 +* Содержит ключ хендлера проверки условия. 28 +* Содержит необязательный ключ хендлера обработчик (выполняется при выполнении условия). 29 +))) 30 +|(% style="width:116px" %)TimerAction|(% style="width:1067px" %)((( 31 +* В начале выполнения создает TimerTrigger (для поступления сигнала на процесс) и сохраняет временную отметку. 32 +* Проверяет временную отметку для обнаружения срабатывания таймера. 33 +* Содержит необязательный ключ хендлера обработчик (выполняется при срабатывании таймера). 34 +))) 35 +))) 36 +))) 37 +|(% style="width:98px" %)Пример диаграммы процесса|(% style="width:1383px" %)((( 38 +|((( 39 +* Реализована преобразование схемы в mermaid class diagram. 40 +Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема). 41 +* Позволяет работать с графическим представлением схемы процесса (обсуждать и изменять элементы процесса (алгоритмы хендлеров, переходы между токенами)). 42 +* cccc1808/experiment/process_schema_diagramm 43 +))) 44 +|На изображении представлен пример тестового процесса, который содержит 1 токен, который содержит 3 блока действий. 45 +Токен выполняет функцию отправки сообщения с ожиданиям ответа, в случае отсутствия ответа в течении промежутка времени запрос посылается повторно. 46 +Схема позволяет указывать имена элементов и комментарии к ним (в примере приведен алгоритм в реализации хендлера действия). 47 +|[[image:Тестовый процесс.1.png]] 48 +)))
- XWiki.XWikiComments[0]
-
- Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2026-06-22 15:40:24.981 - Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,12 @@ 1 +Идея: 2 + 3 +1. Триггер передает сигнал и ключ (например битовые флаги). 4 +1. ConditonAction связывается с конкретным триггером. 5 +1. В момент выполнения процесс знает на какие конкретно действия пришел сигнал. Действие активируется, только если соответствующий триггер передал сигнал. 6 + 7 +Заготовка в ветке: 8 + 9 +* cccc1808/experiment/process_schema_signal_code [[https:~~/~~/github.com/cccc1808/cccc1808.ProcessEngine/pull/14>>https://github.com/cccc1808/cccc1808.ProcessEngine/pull/14]] 10 +* cccc1808/experiment/process_schema_signal_code_filter [[https:~~/~~/github.com/cccc1808/cccc1808.ProcessEngine/pull/16>>https://github.com/cccc1808/cccc1808.ProcessEngine/pull/16]] 11 + 12 +
- XWiki.XWikiComments[1]
-
- Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2026-06-24 11:06:13.774 - Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,13 @@ 1 +Можно реализовать (но пока скорее всего не буду): 2 + 3 +* UserInputTokenAction - более частный случай ConditionAction. 4 +** Декларирует: 5 +*** Какие параметры вводятся (наименование и тип) 6 +*** Какой заголовок отображается на UI. 7 +** Является флагом для UI, что процессу требуется ввод пользователя (флаг можно сделать и без этого, но так его можно вычислять автоматически). 8 +** Реализуется общее API для получения значений для UI по действию и сохранения пользовательского ввода по действию. 9 +** Может содержать пользователя или роль, ввод от которых требуется. 10 +Может запускать таймер, по истечению которого для пользователю будет формироваться оповещение. 11 +* RuleConditionAction - более частный случай ConditionAction. 12 +** Декларирует таблицу правил (Условие (на основании состояния)) -> Активируемое действие. Позволяет на уровне схемы отобразить логику выбора. 13 +* Функционал остановки (или завершения) других действий после хендлера текущего действия (по аналогии с активацией).