На следующем снимке экрана показаны различные компоненты рабочего процесса, доступные в jBPM 5. Используя эти компоненты, вы можете создать рабочий процесс для управления процессом.
Вы также можете создавать свои собственные задачи, но об этом будет рассказано позже. Кроме того, доступны сервисные задачи, которые можно использовать для организации процесса.
Start Event — это первый узел, выполняемый в каждом процессе. В вашем процессе может быть только один начальный узел.
Конечное событие — этот узел сигнализирует об окончании процесса. В процессе может быть более одного экземпляра этого типа узла.
Задача правила — это узел, который оценивает группу RuleFlow, то есть группу правил Drools в одноименной области.
Gateway (дивергенция) aka Split — этот конкретный узел создает новые пути / пути в процессе. У него два или более исходящих соединения. Вы можете выбрать один из трех типов Сплитов / Ворот.
И ВОРОТА — где поток процесса продолжается для всех исходящих соединений одновременно.
XOR GATE — который идет по одному только исходящему пути в соответствии с некоторыми предопределенными ограничениями, определенными в рабочем процессе.
ИЛИ ВОРОТА — где поток продолжается на основе оценки всех исходящих ограничений, и этот путь активируется, когда ограничение оценивается как истинное.
Шлюз (сходится), также известный как Соединение — это объединение является противоположностью разделения. Он объединяет несколько путей в один. Может быть четыре различных типа соединений / ворот —
И — Поток продолжается, когда все ветви завершены.
XOR — поток продолжается, когда хотя бы одна ветвь завершена.
Дискриминатор — Как и XOR, он продолжается, если одна из его ветвей была завершена. Но в отличие от XOR, он регистрирует завершения других ветвей, пока все соединения не будут завершены. Когда это происходит, узел сбрасывается, и его можно ввести снова, когда активируется входящая ветвь, и цикл начинается заново.
N-of-M — поток продолжается, когда n число m ветвей завершается. Вам нужно указать n (число) при настройке шлюза, сколько веток должно завершиться до выхода из потока.
Повторно используемый подпроцесс — вызывает другой процесс. Это очень полезно для объединения нескольких меньших процессов в более крупные. Этот больший может быть координационным процессом. Вы можете настроить вызывающий процесс так, чтобы он ожидал завершения вызываемого абонента, а также имел независимый жизненный цикл своего родителя.
Задача сценария — узел, который может выполнять простой фрагмент кода.
Событие таймера — этот тип узла запускает таймер и запускается по истечении таймера. Включает связанные со временем процессы и повторяющиеся задачи.
Событие ошибки — этот тип узла сигнализирует об ошибке в процессе. У него нет исходящих соединений. Указывает FaultName и FaultVariable. Движок будет искать обработчик исключений, который соответствует FaultName и сохраняет информацию о сбое в переменной, определенной в FaultVariable.
Событие сообщения — оно срабатывает, когда генерируется событие заранее определенного типа. Это может быть как внутреннее событие (сигнализируемое внутри процесса), так и внешнее (сигнализируемое внешним объектом, отличным от механизма процесса).
Пользовательская задача — узел, который создает человеческую задачу. Эта человеческая задача — это действие, которое должен выполнить актер-человек.
Встроенный подпроцесс — Помогает создать подпроцесс внутри родительского процесса. У него может быть своя сфера применения. Это полезно для более крупного процесса, где вы хотите сохранить некоторые сложные ветви изолированными. Может иметь свои собственные переменные и обработчики исключений
Несколько экземпляров, иначе говоря, для каждого — это позволяет собирать элементы в подпроцесс. Очень полезно в сочетании с повторно используемым подпроцессом для создания и координации небольших процессов.