Изменения документа Модуль schema

Редактировал(а) Alexandr Fokin 2026/07/08 12:22

От версии 1.5
отредактировано Alexandr Fokin
на 2026/06/18 22:11
Изменить комментарий: К данной версии нет комментариев
К версии 2.21
отредактировано Alexandr Fokin
на 2026/07/08 12:22
Изменить комментарий: Редактировать комментарий

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,21 +1,27 @@
1 1  |(% style="width:98px" %)Ветка|(% style="width:1383px" %)cccc1808/experiment/process_schema
2 2  cccc1808/experiment/process_schema_diagramm
3 3  |(% style="width:98px" %)Описание|(% style="width:1383px" %)Более высокоуровневый модуль, вводящий описание и выполнение процесса на основе схемы.
4 +Модуль управляет статусом асинхронного выполнения процесса на основе состояния действий токена.
4 4  Модуль также позволяет взаимодействовать совместно с системой триггеров.
5 5  Процесс содержит указатель на текущий исполняемый токен (действия этого токена выполняются).
6 6  |(% style="width:98px" %)Элементы|(% style="width:1383px" %)(((
7 7  |(% style="width:131px" %)Схема|(% style="width:1234px" %)Содержит набор токенов.
8 8  Экземпляр схемы привязан к идентификатору типа процесса (ProcessType, ProcessVersion).
9 -|(% style="width:131px" %)Токен|(% style="width:1234px" %)Элемент схемы.
10 -Содержит набор действий.
11 -Содержит состояние.
10 +Модуль валидации содержит ряд проверок корректности схемы и зарегистрированных хендлеров.
11 +|(% style="width:131px" %)Токен|(% style="width:1234px" %)(((
12 +* Содержит набор действий.
13 +* Содержит состояние.
14 +* В момент выполнения токена, последовательно выполняются его активные действия (вызываются хендлеры действий).
15 +)))
12 12  |(% style="width:131px" %)Действие токена|(% style="width:1234px" %)(((
13 13  * Содержит внутреннюю малую статусную модель (в зависимости от типа действия).
18 +* Содержит флаг - должно ли действий запускать сразу при переходе на токен (или оно будет активировано другим действием в процессе выполнения токена).
14 14  * Может содержать переход на другой токен (Срабатывает при завершении действия).
15 15  * Может активировать другие действия (срабатывает после вызова функции хендлера обработчика).
16 16  
17 17  |(% style="width:116px" %)ServiceTask|(% style="width:1067px" %)(((
18 18  * Содержит ключ хендлера обработчик.
24 +* Может использоваться для длительных действий (soft timeout - разбиение выполнения на несколько транзакций).
19 19  )))
20 20  |(% style="width:116px" %)ConditionAction|(% style="width:1067px" %)(((
21 21  * Содержит ключ хендлера проверки условия.
... ... @@ -29,8 +29,12 @@
29 29  )))
30 30  )))
31 31  |(% style="width:98px" %)Пример диаграммы процесса|(% style="width:1383px" %)(((
32 -|Реализована преобразование схемы в mermaid class diagram.
38 +|(((
39 +* Реализована преобразование схемы в mermaid class diagram.
33 33  Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема).
41 +* Позволяет работать с графическим представлением схемы процесса (обсуждать и изменять элементы процесса (алгоритмы хендлеров, переходы между токенами)).
42 +* cccc1808/experiment/process_schema_diagramm
43 +)))
34 34  |На изображении представлен пример тестового процесса, который содержит 1 токен, который содержит 3 блока действий.
35 35  Токен выполняет функцию отправки сообщения с ожиданиям ответа, в случае отсутствия ответа в течении промежутка времени запрос посылается повторно.
36 36  Схема позволяет указывать имена элементов и комментарии к ним (в примере приведен алгоритм в реализации хендлера действия).
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 +* Функционал остановки (или завершения) других действий после хендлера текущего действия (по аналогии с активацией).