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

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

От версии 2.19
отредактировано Alexandr Fokin
на 2026/07/07 15:46
Изменить комментарий: Редактировать комментарий
К версии 1.1
отредактировано Alexandr Fokin
на 2026/06/18 21:46
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,47 +1,13 @@
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 -* В момент выполнения токена, последовательно выполняются его активные действия (вызываются хендлеры действий).
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" %)
15 15  )))
16 -|(% style="width:131px" %)Действие токена|(% style="width:1234px" %)(((
17 -* Содержит внутреннюю малую статусную модель (в зависимости от типа действия).
18 -* Содержит флаг - должно ли действий запускать сразу при переходе на токен (или оно будет активировано другим действием в процессе выполнения токена).
19 -* Может содержать переход на другой токен (Срабатывает при завершении действия).
20 -* Может активировать другие действия (срабатывает после вызова функции хендлера обработчика).
8 +|(% style="width:121px" %)Пример диаграммы процесса|(% style="width:1312px" %)(((
9 +|Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема).
10 +|[[image:Тестовый процесс.1.png]]
21 21  
22 -|(% style="width:116px" %)ServiceTask|(% style="width:1067px" %)(((
23 -* Содержит ключ хендлера обработчик.
24 -* Может использоваться для длительных действий (soft timeout - разбиение выполнения на несколько транзакций).
12 +
25 25  )))
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 -)))
43 -|На изображении представлен пример тестового процесса, который содержит 1 токен, который содержит 3 блока действий.
44 -Токен выполняет функцию отправки сообщения с ожиданиям ответа, в случае отсутствия ответа в течении промежутка времени запрос посылается повторно.
45 -Схема позволяет указывать имена элементов и комментарии к ним (в примере приведен алгоритм в реализации хендлера действия).
46 -|[[image:Тестовый процесс.1.png]]
47 -)))
XWiki.XWikiComments[0]
Автор
... ... @@ -1,1 +1,0 @@
1 -XWiki.cccc1808
Комментарий
... ... @@ -1,12 +1,0 @@
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 -
Дата
... ... @@ -1,1 +1,0 @@
1 -2026-06-22 15:40:24.981
XWiki.XWikiComments[1]
Автор
... ... @@ -1,1 +1,0 @@
1 -XWiki.cccc1808
Комментарий
... ... @@ -1,13 +1,0 @@
1 -Можно реализовать (но пока скорее всего не буду):
2 -
3 -* UserInputTokenAction - более частный случай ConditionAction.
4 -** Декларирует:
5 -*** Какие параметры вводятся (наименование и тип)
6 -*** Какой заголовок отображается на UI.
7 -** Является флагом для UI, что процессу требуется ввод пользователя (можно сделать и сам по себе).
8 -** Реализуется общее API для получения значений для UI по действию и сохранения пользовательского ввода по действию.
9 -** Может содержать пользователя или роль, ввод от которых требуется.
10 -Может запускать таймер, по истечению которого для пользователю будет формироваться оповещение.
11 -* RuleConditionAction - более частный случай ConditionAction.
12 -** Декларирует таблицу правил (Условие (на основании состояния)) -> Активируемое действие. Позволяет на уровне схемы отобразить логику выбора.
13 -* Функционал остановки (или завершения) других действий после хендлера текущего действия (по аналогии с активацией).
Дата
... ... @@ -1,1 +1,0 @@
1 -2026-06-24 11:06:13.774