Управление выполнением, включая такие операции, как запуск, продвижение и удаление экземпляров процесса.
TaskService
управление задачами
HistoryService
Управление историей (управление выполненными данными)
IdentityService
Организационное управление
FormService
Дополнительный сервис, управление формами задач
ManagerService
1.3 Таблицы базы данных
префикс таблицы
тип
значение
ACT_RE_*
repository
Содержит определения процессов и статические ресурсы процесса (изображения, правила и т. д.).
ACT_RU_*
runtime
Таблица времени выполнения содержит текущие данные, такие как экземпляры процессов, задачи, переменные и асинхронные задачи. Она сохраняет данные только во время выполнения экземпляра процесса и удаляет записи в конце процесса, поэтому таблица времени выполнения всегда может быть небольшой. и быстро.
ACT_ID_*
identity
Содержит идентификационную информацию, такую как пользователи, группы и т. д.
ACT_HI_*
history
Содержит исторические данные, такие как исторические экземпляры процессов, переменные, задачи и т. д.
ACT_GE_*
general
Используется в различных сценариях, например, для хранения файлов ресурсов.
1.4 Список спецификаций Activiti
классификация таблиц
Имя таблицы
объяснять
Общие данные
ACT_GE_BYTEARRAY
Общие определения процессов и ресурсы процессов
Общие данные
ACT_GE_PROPERTY
Системные свойства
История процесса
ACT_HI_ACTINST
Исторические экземпляры процесса
История процесса
ACT_HI_ATTACHMENT
Исторические вложения процесса
История процесса
ACT_HI_COMMENT
историческая описательная информация
История процесса
ACT_HI_DETAIL
Детали исторических запусков процессов
История процесса
ACT_HI_IDENTITYLINK
Взаимоотношения пользователей во время выполнения исторического процесса
История процесса
ACT_HI_PROCINST
Исторические экземпляры процесса
История процесса
ACT_HI_TASKINST
Исторические экземпляры задач
История процесса
ACT_HI_VARINST
Переменная информация в исторических запусках процесса
таблица групп пользователей
ACT_ID_GROUP
Идентификационная информация — информация о группе
таблица групп пользователей
ACT_ID_INFO
Идентификационная информация — информация о группе
таблица групп пользователей
ACT_ID_MEMBERSHIP
Идентификационная информация - промежуточная таблица для отношений пользователей и групп
таблица групп пользователей
ACT_ID_USER
Идентификационная информация — информация о пользователе
Таблица определения процесса
ACT_RE_DEPLOYMENT
Информация о единице развертывания
Таблица определения процесса
ACT_RE_MODEL
Информация о модели
Таблица определения процесса
ACT_RE_PROCDEF
Развернутое определение процесса
запустить таблицу экземпляров
ACT_RU_EVENT_SUBSCR
события времени выполнения
запустить таблицу экземпляров
ACT_RU_EXECUTION
Экземпляр выполнения процесса во время выполнения
запустить таблицу экземпляров
ACT_RU_IDENTITYLINK
Информация о взаимоотношениях пользователей во время выполнения
запустить таблицу экземпляров
ACT_RU_JOB
работа во время выполнения
запустить таблицу экземпляров
ACT_RU_TASK
задачи выполнения
запустить таблицу экземпляров
ACT_RU_VARIABLE
таблица переменных времени выполнения
1.5 Основной API
1.5.1 ProcessInstance
Представляет экземпляр выполнения определения процесса. Экземпляр процесса представляет собой самую большую ветвь процесса от начала до конца, то есть в процессе существует только один экземпляр процесса.
1.5.2 Execution
Объект выполнения Выполнение, процесс следует правилам, определенным процессомвыполнить один разпроцесс;
Процесс параллельного выполнения, основная строка представляет собой ProcessInstance, а каждое действие в строке ответвления представляет Execution.
В процессе - процесс одновременного выполнения объектов, основная строка представляет ProcessInstance, а каждое действие в ответвляемой строке представляет Execution.
Их может быть несколько, но может быть только один экземпляр процесса ProcessInstance.
Этот шаг будет работать с тремя таблицами в базе данных:
act_re_deployment (таблица объектов развертывания) Сохраните отображаемое имя и время развертывания определения процесса и добавьте запись для каждого развертывания.
act_re_procdef (таблица определения процесса) Информация об атрибутах определения процесса сохраняется, и запись добавляется в эту таблицу для каждого нового развернутого определения процесса.
Примечание. Если ключ, определенный процессом, один и тот же, используется обновление версии.
act_ge_bytearray (таблица файлов ресурсов) Хранит информацию о развертывании, связанную с определениями процессов. То есть там, где хранится документ определения процесса. Каждое развертывание добавляет две записи: одну для файла правил bpmn и одну для изображения (если во время развертывания указан только один файл bpmn, activiti проанализирует содержимое файла bpmn и автоматически сгенерирует блок-схему во время развертывания). Оба файла не очень большие и хранятся в базе данных в бинарном виде.
ACT_RE_PROCDEF Обработать таблицу синтаксического анализа, синтаксический анализ выполнен успешно, сохранить запись в этой таблице. Лист данных определения бизнес-процессаACT_RE_PROCDEF(act_re_procdef)
Пространство имен, определенное процессом, является категорией
NAME_
Имя процесса
Число является значением атрибута имени элемента процесса файла процесса.
KEY_
Идентификатор определения процесса
Число является значением атрибута id элемента процесса файла процесса.
VERSION_
Номер версии процесса
Управляемое программой новое добавление равно 1, и оно завершается добавлением 1 по очереди после модификации.
DEPLOYMENT_ID_
Номер развертывания
Идентификатор таблицы развертывания
RESOURCE_NAME_
Обработать имя файла bpmn
DGRM_RESOURCE_NAME_
имя изображения процесса png
DESCRIPTION_
Описание
описывать
HAS_START_FORM_KEY_
Имеет ли начальный узел formKey
0 нет 1 да
SUSPENSION_STATE_
повесить ли
1 активен 2 приостановлен
эта таблица иACT_RE_DEPLOYMENT — отношение «многие к одному»., то есть развернутый пакет bar может содержать несколько файлов определения процесса, и каждый файл определения процесса будет иметь запись в таблице ACT_RE_PROCDEF.Данные, определенные каждым процессом, будут соответствовать файлу ресурсов и файлу изображения PNG в таблице ACT_GE_BYTEARRAY.. Связь с ACT_GE_BYTEARRAY выполняется программно с помощью ACT_GE_BYTEARRAY.NAME и ACT_RE_PROCDEF.NAME_ в структуре таблицы базы данных.нетотражать
ACT_RE_DEPLOYMENT Используется для хранения информации, которая должна сохраняться во время развертывания.
первичный ключ
имя поля
описание поля
ID_
Номер развертывания, самоувеличивающийся
NAME_
Имя пакета развертывания
CATEGORY_
тип
VARCHAR(255)
DEPLOY_TIME_
Время развертывания
TIMESTAMP
ACT_GE_BYTEARRAY сохранить все бинарные данные
И LeaveBill.bpmn, и LeaveBill.png являются ResourceEntity и добавляются в таблицу. ACT_GE_BYTEARRAY(act_ge_bytearray)
Name
имя поля
описание поля
ID_
Я БЫ_
Идентификатор первичного ключа, номер файла ресурсов, автоинкремент
REV_
номер версии
INT(11)
NAME_
Имя развернутого файла,
DEPLOYMENT_ID_
Первичный ключ из родительской таблицы ACT_RE_DEPLOYMENT
BYTES_
Большой текстовый тип, который хранит поток текстовых байтов
Когда процесс достигает узла, в таблице ACT_RU_EXECUTION будет сгенерирован 1 элемент данных, если текущий узел является узлом пользовательской задачи, запись будет добавлена в таблицу ACT_RU_TASK
ACT_RU_TASK (таблица данных выполнения задачи) (Выполняется задача в реальном времени) Форма запроса задачи агента ACT_RU_TASK(act_ru_task)
Идентификатор экземпляра процесса (внешний ключ PROC_INST_ID_)
VARCHAR(64)
PROC_DEF_ID_
Идентификатор определения процесса
VARCHAR(64)
NAME_
название миссии
Имя определения узла
PARENT_TASK_ID_
Идентификатор задачи родительского раздела
ID экземпляра родительского узла
DESCRIPTION_
детали миссии
Описание определения узла
TASK_DEF_KEY_
ключ определения задачи
ID определения задачи
OWNER_
Владелец (старая версия)
Владелец (обычно пустой, имеет значение только при делегировании)
ASSIGNEE_
Агент (правопреемник)
подписант или грузоотправитель
DELEGATION_
агентство
Тип делегирования DelegationState делится на два типа: PENDING, RESOLVED. Пустой VARCHAR(64), если нет делегата
PRIORITY_
приоритет
INT(11)
CREATE_TIME_
время создания
TIMESTAMP
DUE_DATE_
время исполнения
кропотливый
SUSPENSION_STATE_
приостановленное состояние
1 для активного 2 для приостановленного
ACT_RU_EXECUTION (экземпляр выполнения исполняемого процесса) Core, Моя форма запроса на выполнение ACT_RU_EXECUTION(act_ru_execution)
первичный ключ
имя поля
описание поля
ID_
ID_
REV_
номер версии
INT(11)
PROC_INST_ID_
Номер экземпляра процесса
VARCHAR(64)
BUSINESS_KEY_
Идентификатор первичного ключа компании
VARCHAR(255)
PARENT_ID_
родительский процесс выполнения
ID экземпляра родительского узла
PROC_DEF_ID_
Идентификатор определения процесса
VARCHAR(64)
SUPER_EXEC_
VARCHAR(64)
64
ACT_ID_
идентификатор экземпляра
Идентификатор экземпляра узла — это идентификатор в ACT_HI_ACTINST.
IS_ACTIVE_
активное состояние
Это живо
IS_CONCURRENT_
Параллельное состояние
Параллельно (верно/неверно)
IS_SCOPE_
TINYINT(4)
IS_EVENT_SCOPE_
TINYINT(4)
SUSPENSION_STATE_
Пауза_
Приостановленное состояние 1 Активно 2 Приостановлено
CACHED_ENT_STATE_
Конечное состояние кэша_
INT(11)
ACT_RU_IDENTITYLINK (Контактное лицо) В основном он хранит информацию об участниках текущего узла и таблицу данных участников задачи. ACT_RU_IDENTITYLINK(act_ru_identitylink)
первичный ключ
имя поля
описание поля
ID_
ID_
REV_
номер версии
INT(11)
GROUP_ID_
Идентификатор группы пользователей
VARCHAR(255)
TYPE_
Тип группы пользователей
В основном делятся на следующие категории: правопреемник, кандидат, владелец, стартер, участник. то есть: правопреемник, кандидат, владелец, инициатор, участник
USER_ID_
Идентификатор пользователя
VARCHAR(255)
TASK_ID_
идентификатор задачи
VARCHAR(64)
PROC_INST_ID_
Идентификатор экземпляра процесса
VARCHAR(64)
PROC_DEF_ID_
Идентификатор определения процесса
VARCHAR(64)
ACT_HI_ACTINST (историческая таблица узлов) Историческая информация о деятельности. Здесь записываются все узлы, через которые прошел процесс.В отличие от HI_TASKINST, taskinst записывает только содержимое usertask.
ACT_HI_ACTINST(act_hi_actinst)
первичный ключ
имя поля
описание поля
ID_
ID_
PROC_DEF_ID_
Идентификатор определения процесса
VARCHAR(64)
PROC_INST_ID_
Идентификатор экземпляра процесса
VARCHAR(64)
EXECUTION_ID_
Идентификатор выполнения процесса
VARCHAR(64)
ACT_ID_
Идентификатор события
Идентификатор определения узла
TASK_ID_
идентификатор задачи
Идентификатор экземпляра задачи Идентификатор экземпляра другого типа узла здесь пуст.
CALL_PROC_INST_ID_
Идентификатор экземпляра процесса запроса
Идентификатор экземпляра процесса вызова внешнего процесса
ACT_NAME_
Название события
Имя определения узла
ACT_TYPE_
тип активности
Такие как startEvent, userTask
ASSIGNEE_
агент
выход узла
START_TIME_
Время начала
DATETIME
END_TIME_
Время окончания
DATETIME
DURATION_
время, время
миллисекундное значение
3. Учебник
3.1 Разница между setVariable и setVariableLocal
setVariable При установке переменной процесса, когда имя переменной процесса совпадает, следующее значение заменяет предыдущее значение, а поле TASK_ID не сохраняет значение идентификатора задачи.
setVariableLocal При установке переменной процесса установите переменную процесса для текущего активного узла.Если в процессе 2 активных узла (ветви), установите переменную процесса для каждого активного узла, даже если имя переменной процесса одинаково, более поздняя версия Значение не заменит значение предыдущей версии, оно будет использовать другой идентификатор задачи в качестве идентификатора для хранения 2 значений переменных процесса, и вы можете видеть, что поле TASK_ID будет хранить значение идентификатора задачи
3.2 Эксклюзивный шлюз
Будет возвращен только один результат. Когда процесс выполняется на эксклюзивном шлюзе, механизм процесса автоматически извлекает выход шлюза, и если первый результат решения оказывается истинным или условие не задано (по умолчанию истинно), выход будет получен сверху вниз. Нижний. Используйте переменные процесса, задайте условия соединения и выполните рабочий процесс в соответствии с условиями соединения. Если нет условий, соответствующих условиям, он оставит соединение по умолчанию. Вам необходимо установить переменную процесса. Если он не установлен, будет выброшено исключение, и он не пойдет.шлюз по умолчанию
3.3 Параллельный шлюз
Если один и тот же параллельный шлюз имеет несколько входящих и несколько исходящих потоков последовательностей, он имеет возможности как ветвления, так и агрегации. В это время шлюз сначала агрегирует все входящие потоки последовательностей, а затем разделяет их на несколько параллельных ветвей. Условие не разрешается параллельным шлюзом, даже если условие определено в потоке последовательности, оно будет проигнорировано.
3.4 Получение активности
После того, как задача создана, это означает, что процесс переходит в состояние ожидания, пока механизм не получит определенное сообщение, которое запускает процесс для продолжения выполнения через принимающую задачу. Задача ReceiceTask, задача, автоматически выполняемая машиной, будет выполняться толькоact_ru_executionСгенерировать данные в таблице
3.5 Личные задания
Настроить диспетчер задач
3.5.1 Использование переменных процесса
3.5.2 Использование классов
пройти черезprocessEngine.getTaskService().setAssignee(taskId, userId);Назначение личных задач от одного человека другому переопределяет делегата, установленного слушателем.
3.6 Групповые задания
Непосредственно назначить менеджераСписок участников задачи группы запросов
List<IdentityLink> list = processEngine.getTaskService().getIdentityLinksForTask(taskId)
act_ru_identitylink: человек, который хранит задачу, включая индивидуальные задачи и групповые задачи, с указанием выполняемых задач. act_hi_identitylink: Сохраняет менеджер задачи, включая индивидуальные задачи и групповые задачи, с указанием исторических задач Разница в том, что: Если это личное задание, то в типе ТИП указывается участник (участник) Если это групповое задание, то в типе ТИП указывается кандидат (кандидат) и участник (участник)
Используйте переменные процесса
своего рода
пройти черезprocessEngine.getTaskService().claim (taskId, userId);Назначьте групповую задачу индивидуальной задаче, также называемой претензионной задачей, то есть назначьте кого-то для выполнения этой задачи.В это время он не будет проверять, есть ли userId в кандидате, если нет, добавить userId в кандидата список, соответствующий таблице IdentityLink При получении задания он может быть участником группового задания или не участником группового задания, в этом случае лицо, выполняющее задание, может быть обозначено Типом как участник.
3.7 Ролевые группы
act_id_group: Таблица групп ролей act_id_user:пользовательская таблица act_id_membership: Таблица ролей пользователей В середине развертывания определения процесса и запуска экземпляра процесса установите диспетчер групповой задачи и сохраните информацию о группе и пользователе в таблице Activiti.
В-четвертых, Activiti Combat
4.1 Задачи
4.1.1 Задачи пользователя
мониторинг задач Create создает задачи, назначение назначает задачи и завершает задачи
Expression,delegateExpression,Alfresco script activity:initiator=”xxx”: Оператор, запустивший экземпляр процесса, может быть сохранен в базе данных с именем переменной «xxx», что требует сотрудничества.identityService.setAuthenticatedUserId(authenticatedUserId)использовать
4.1.2 Задачи сценария
可以运行脚本语言
4.1.3 Сервисная задача
4.1.4 Задачи бизнес-правил
Может быть интегрирован с drools
4.1.5 Почтовая задача
На основе serviceTask он расширен от activiti и может отправлять электронные письма.
4.1.6 Camel
Расширен от activiti на основе serviceTask и представляет собой фреймворк для решения маршрутизации сообщений.
4.1.7 Manual task
Не выполнять никакой обработки, обработчику процессов не нужно заботиться о том, как его обрабатывать, activiti рассматривает ручную задачу как пустую задачу, и когда эта задача достигается, обработчик автоматически завершает ее и переходит к следующей задаче.
4.1.8 Receive task
После того, как задача создана, она начинает ждать прихода сообщения, и задача не будет завершена, пока она не будет запущена.Вы можете отправить сигнал на запуск принимающей задачи через метод signal() интерфейса RuntimeService.
4.1.9 Несколько экземпляров
Позволяет многократно повторять задачу или даже подпроцесс. Например, приложение одобрено несколькими людьми. Оно может выполняться последовательно или параллельно.
Вы можете установить повторное выполнение и установить условия завершения
4.2 Шлюз шлюза
4.2.1 Эксклюзивный шлюз
Если результат вычисления нескольких строк верен, будет выполнен первый шлюз, значение которого истинно, если ни одна из строк не верна, будет выдано исключение
4.2.2 Параллельный шлюз
При наборе параллельных шлюзов, только когда все входящие процессы зашли, процесс может выйти из строя
4.2.3 Инклюзивный шлюз
Он сочетает в себе характеристики эксклюзивного шлюза и параллельного шлюза, которые могут выполнять несколько линий одновременно и позволяют устанавливать условия на шлюзе.
4.2.4 Шлюз событий
Шлюз событий специально настроен для промежуточных событий захвата, что позволяет настроить несколько выходных потоков так, чтобы они указывали на несколько различных промежуточных событий захвата (не менее двух).После выполнения процесса в шлюзе событий процесс находится в состоянии «ожидания». , а промежуточные события захвата должны полагаться на Промежуточное событие броска запускается, чтобы изменить состояние ожидания на активное состояние.
4.3 Подпроцессы и вызывающие действия
4.3.1 Подпроцесс
Подпроцессы могут содержать большинство моделей спецификации процесса. Чаще всего используется разделение наиболее общего процесса на подпроцессы и встраивание их в каждый процесс.
ограничение
Может содержать только одно и только одно пустое стартовое событие
Хотя бы одно конечное событие
В подпроцессе поток последовательности не может напрямую установить выходной поток для действий вне подпроцесса, его можно заменить граничным событием.
4.3.2 активность вызова активность вызова
Функция такая же, как у подпроцесса, но выражение другое.Вы можете использовать вызывающую активность для замены активности, встроенной в подпроцесс.Создав модель вызывающей активности и указав метод id внешнего процесс, его можно использовать как подвид деятельности основного процесса.
4.3.3 Подпроцесс события
Подобно подпроцессу, разница в том, что подпроцесс события не может быть запущен напрямую, а пассивно инициируется другими событиями.
Может запускаться исключительными событиями, сигнальными событиями, сообщениями, событиями таймера, компенсационными событиями и т. д.
4.3.4 Подпроцесс транзакции
Подпроцесс имеет транзакционный, ACID, откат
4.4 Границы и промежуточные события
Граничное событие — это «захваченное» событие, связанное с действием. После срабатывания граничного события текущее действие будет прервано и выполнено в соответствии с выходным потоком после граничного события. Действие может быть привязано только к одному граничному событию Значение атрибута cancelActivity может быть установлено в некоторых граничных событиях, чтобы контролировать, следует ли отменить выполнение действия, указанного выходным потоком.
4.4.1 Граничные события таймера
Событие запуска по времени: используется для запуска нового процесса в указанное время.
Граничное событие таймера: прикреплено к неавтоматической задаче, вызову активности, подпроцессу, запуск обратного отсчета после завершения выполнения вышестоящей задачи и подготовка к запуску события
4.4.2 Аномальные граничные события
Используется для перехвата исключений, создаваемых встроенными подпроцессами или вызывающими действиями.
После создания исключения оно перехватывается граничным событием исключения основного процесса, а действия, встроенные в подпроцесс или вызывающее действие, также прерываются и выполняются.
Граничные события исключений могут быть определены непосредственно на диаграмме процесса.
События границы сигнала могут захватывать сигналы, выдаваемые во время выполнения процесса, и могут быть привязаны к различным действиям и подпроцессам. Событие броска сигналаГлобальный: Событие границы сигнала может захватывать не только сигнал этого процесса, но и события сигнала других процессов.Если определено несколько событий границы сигнала и отслеживается один и тот же сигнал, несколько событий границы будут инициированы одновременно.
4.4.4 Отмена граничных событий
Специально разработанный для подпроцессов транзакций, он используется для захвата события отмены, возникшего в подпроцессе, и не может быть привязан к другим действиям.
Основной процесс транзакции может присоединять только одно граничное событие отмены.
Если подпроцессы вложены в подпроцессы транзакции, будут ли инициированы только завершенные компенсационные события подпроцесса?
Для подпроцесса транзакции с несколькими экземплярами, если один экземпляр инициирует событие отмены, все экземпляры будут инициированы граничным событием отмены.
4.4.5 Компенсация граничных событий
Он используется в подпроцессе транзакции для компенсации бизнес-логики после сбоя транзакции.
Если в комнате занятий, связанной с событием границы компенсации, есть несколько экземпляров, при возникновении события компенсации каждый экземпляр будет запускать событие границы компенсации.
4.4.6 Промежуточные события захвата
В соответствии с различными типами событий необходимо использовать разные методы для продолжения выполнения действий последующего выходного потока.
Промежуточные события захвата должны соединять входной поток и выходной поток.
Событие среднего захвата таймера
Захват событий в середине сигнала
Используется для захвата события брошенного сигнала, идентификатор сигнала может быть захвачен, если идентификатор сигнала непротиворечив. транслировать
событие захвата среднего сообщения Направленное распространение один к одному, только одно сообщение может быть отправлено указанному экземпляру процесса за раз
4.4.7 Промежуточные броски
Промежуточное событие броска имеет смысл только в том случае, если есть соответствующее событие захвата, которое нужно получить. Промежуточные генерируемые события обычно используются в сценариях, когда необходимо отправить уведомления или выполнить другие системные задачи после завершения задачи, а механизм рабочего процесса будет распространять генерируемые события.
Бросание событий в пустоту
Без выполнения функции процесса ее можно сделать более значимой с помощью расширенных функций activiti, добавленных к большинству действий/событий, и можно использовать в качестве процессора для промежуточных состояний/результатов.
Событие выброшено в середине сигнала
Может быть синхронным или асинхронным Когда сигнал отправляется во время синхронизации, дождитесь захвата и обработки сигнала, прежде чем продолжить выполнение процесса.Если в середине будет ошибка, будет выполнен откат.
Выполнять следующий процесс сразу после отправки сигнала асинхронно, без отката
4.5 Слушатели
4.5.1 Слушатель выполнения
Разрешить выполнение кода Java во время выполнения Тип прослушивания: начало, конец, дубль События, которые можно зафиксировать:
DelegateExpression: класс интерфейса, который может быть реализован в виде параметров.
4.5.2 Слушатель задач
Может применяться только к пользовательским задачам тип монитора
Назначение: срабатывает после того, как задача назначена руководителю, перед созданием
Создать: Атрибуты менеджеров, кандидатов и групп кандидатов, которым необходимо обрабатывать задачи одну за другой.
завершено: задача завершена, прежде чем данные среды выполнения будут удалены
Порядок: задание->создать->выполнить
4.6 Форма задания
свойства формы
Переменные процесса являются общими для всего экземпляра процесса, даже если атрибуты требуются в форме, их можно оставить пустыми, если в процессе есть значение.
Пять, работа на время
После развертывания процесса ядро выполняет некоторую работу по инициализации определения развернутого процесса, включая регистрацию запланированных заданий и регистрацию событий сообщений. Описание основных полей таблицы ACT_RU_JOB
Событие запуска по времени может быть запущено в соответствии с заданным временем, поскольку механизм непрерывно обновляет записи таблицы базы данных ACT_RU_JOB, сопоставляет задание в соответствии со временем и выполняет задание после его достижения.
6. Начальное событие сообщения
существуетразвертыватьПосле процесса движок обработает событие сообщения при инициализации и зарегистрирует тип сообщения в данных act_ru_event_subscr Во время выполнения процесса встречается событие типа сообщения или событие сообщения инициируется через API, чтобы запустить таблицу для чтения данных, и вызывается обработчик сообщения в соответствии со свойствами сообщения.
в вызывающем кодеprocessInstance = runtimeService.startProcessInstanceByMessage("启动XXX流程");Процесс найдет EVENT_NAME в таблице act_ru_event_subscr, соответствующее имени сообщения, и запустится, когда оно будет найдено.
7. Заключительное событие
Завершить конечное событие: завершить весь процесс Пустое конечное событие: завершить выполнение только одного выходного потока В экземпляре исторической задачи HistoricalActivityInstance имеетсяHistoricActivityInstance.getDeleteReason(), соответствующий полю DELETE_REASON_ таблицы act_hi_taskinst Если задача завершилась нормально (методом complete), значение DELETE_REASON_ завершается, а если задача была удалена, то причина удаления удаляется Например, если пустое конечное событие не завершено, но основной процесс завершен, запись о подпроцессе удаляется.
8. Граничные события сообщения
События границы сообщения, события границы сигнала и события границы исключения будут иметь дополнительный атрибут cancelActivity, который может быть следующим: True: отменить зарегистрированное событие сообщения после запуска граничного события. False: зарегистрированное событие все еще сохраняется после запуска граничного события и может быть запущено снова.
Точно так же инициируйте сигнальное событиеruntimeService.signalEventReceived(signalName, executionId); Если к задаче прикреплено граничное событие сообщения, когда выполнение задачи завершается, а граничное событие не запускается, зарегистрированное событие будет удалено после завершения задачи.
Окончательный правопреемник: user1,owen:user1 Владелец - это владелец задачи, может быть только один, уполномоченный - это определенный получатель задачи, и он может быть только один, а кандидат - это человек, который может получить задачу, поэтому их будет много, поэтому кандидат помещается в таблицу идентификаторов только для связи с задачей, и первые два могут быть отмечены непосредственно в таблице задач. при звонкеtaskService.getIdentityLinksForTask("task102");При следует учитывать эти три случая (две таблицы).
9.2 Подписание и обратное подписание
Знак для:taskService.claim(taskId, userId); Обратная квитанция:taskService.claim(taskId, null); // 把已签收的任务办理人置空
9.3 Кандидаты и группы кандидатов
taskService.addUserIdentityLink(taskId, userId, identityLinkType) identityLinkType имеет несколько категорий людей
Какая польза от установки аутентифицированного пользователя?
9.4 Подзадачи
Задача может быть разделена на несколько задач, которые будут выполняться разными людьми. При выполнении основной задачи подзадача также будет выполнена по умолчанию, удалить из таблицы ru и войти в таблицу hi