-
Notifications
You must be signed in to change notification settings - Fork 0
BPMN Element Support Inventory
Flowable 8.0.0. Every verdict below was produced by generating a minimal BPMN process containing the element, deploying it to a running engine, and starting an instance — not by reading documentation. The fixtures are kept in the M4 branch as the tests the implementation stories are written against.
Written for #103. The scope is the 68 entries users are shown in
SUPPORTED_BPMN_TYPES (14) and COMING_SOON_BPMN_TYPES (54) in
WorkflowStudio.tsx. That list is Auton8's own inventory of what it offers, not a
BPMN 2.0 conformance claim — see the M4 milestone description for what the
specification defines and what is deliberately not claimed.
- executes — deployed, an instance started, and the token behaved as the element requires.
- deploys but does nothing — deploys cleanly, an instance starts, and the element has no effect. This is the dangerous category and the reason the epic exists.
- fails at deployment — the engine refuses it, with a message.
A probe that deploys and starts an instance proves deployment and instantiation.
It does not, on its own, prove the element's semantics. Complex Gateway is the
proof: it deploys, an instance starts, and the token passes straight through to the
next activity — no activation condition evaluated, no join. Flowable has no
ComplexGatewayActivityBehavior and falls back to a default that simply proceeds.
Every element marked executes below was deployed and instantiated. Where an element's semantics were separately verified, the evidence column says so. The implementation stories are where per-element semantics get asserted; this page tells them which elements need that most.
| Element | Missing at which layer |
|---|---|
bpmn:ComplexGateway |
no activity behaviour (deploys, behaves as pass-through) |
| Intermediate Throw (Message) | no activity behaviour; validator rejects the definition |
| Compensation Start Event | no EventSubProcessCompensationStartEventActivityBehavior
|
| Intermediate Throw (Link) | no link type in the BPMN model — deeper than a missing behaviour |
| Intermediate Catch (Link) | no link type in the BPMN model |
The planning documents said three. Link events were found by this survey; spike #217 established that Flowable's BPMN model jar contains no link class at all, so the XML converter cannot represent one.
| Element | Verdict | Evidence |
|---|---|---|
| Start Event (None) | executes | deployed and started |
| Signal Start Event | executes | deployed and started |
| Timer Start Event | executes | deployed and started |
| Intermediate Catch (Timer) | executes | deployed and started |
| End Event (None) | executes | deployed and started |
| End Event (Terminate) | executes | deployed and started |
| Task (Generic) | executes | deployed and started |
| User Task | executes | deployed and started |
| Script Task | executes | deployed and started |
| Service Task (Behavior) | executes | deployed and started |
| Exclusive Gateway (XOR) | executes | deployed and started |
| Inclusive Gateway (OR) | executes | deployed and started |
| Parallel Gateway (AND) | executes | deployed and started |
| Sequence Flow | executes | deployed and started |
| Element | Verdict | Evidence |
|---|---|---|
| Message Start Event | executes | deployed and started |
| Conditional Start Event | fails at deployment | legal only inside an event subprocess, not at process level |
| Error Start Event | executes | deployed and started |
| Escalation Start Event | executes | deployed and started |
| Compensation Start Event | fails at deployment | no EventSubProcessCompensationStartEventActivityBehavior; descoped |
| Intermediate Throw (None) | executes | deployed and started |
| Intermediate Throw (Message) | fails at deployment | no behaviour class; validator rejects the definition |
| Intermediate Throw (Signal) | executes | deployed and started |
| Intermediate Throw (Escalation) | executes | deployed and started |
| Intermediate Throw (Link) | fails at deployment | no link type in the BPMN model at all (spike #217) |
| Intermediate Throw (Compensation) | executes | deployed and started |
| Intermediate Catch (Message) | executes | deployed and started |
| Intermediate Catch (Signal) | executes | deployed and started |
| Intermediate Catch (Conditional) | executes | deployed and started |
| Intermediate Catch (Link) | fails at deployment | no link type in the BPMN model at all (spike #217) |
| Message Boundary | executes | deployed and started |
| Timer Boundary | executes | deployed and started |
| Signal Boundary | executes | deployed and started |
| Conditional Boundary | executes | deployed and started |
| Error Boundary | executes | deployed and started |
| Escalation Boundary | executes | deployed and started |
| Cancel Boundary | executes | BoundaryCancelEventActivityBehavior ships; minimal transaction completed before the cancel applied |
| Compensation Boundary | executes | deployed and started |
| Message End | executes | deployed and started |
| Signal End | executes | deployed and started |
| Error End | executes | raw probe had no catching boundary; a modelling requirement, not an engine gap |
| Escalation End | executes | deployed and started |
| Cancel End | executes | CancelEndEventActivityBehavior ships; same fixture limitation |
| Compensation End | executes | deployed and started |
| Send Task | needs configuration | flowable-sendtask-invalid-implementation — needs a type/implementation attribute |
| Receive Task | executes | deployed and started |
| Manual Task | executes | deployed and started |
| Business Rule Task | needs configuration | NoClassDefFoundError org/kie/api — rules engine absent from the image (#105) |
| Call Activity | executes | first probe named a callee that did not exist; with a real callee, executes |
| Sub-Process (Embedded) | executes | deployed and started |
| Event Sub-Process | executes | deployed and started |
| Transaction | executes | deployed and started |
| Ad-Hoc Sub-Process | executes | deployed and started |
| Event-Based Gateway | executes | deployed and started |
| Complex Gateway | deploys but does nothing | no behaviour class; verified at runtime — token passes straight through, no activation condition, no join |
| Loop Marker | executes | deployed and started |
| Multi-Instance (Parallel) | executes | deployed and started |
| Multi-Instance (Sequential) | executes | deployed and started |
| Compensation Marker | executes | deployed and started |
| Pool / Participant | executes | deployed and started |
| Lane | executes | deployed and started |
| Message Flow | executes | deployed and started |
| Data Object Reference | executes | deployed and started |
| Data Store Reference | executes | deployed and started |
| Data Input | executes | deployed and started |
| Data Output | executes | deployed and started |
| Text Annotation | executes | deployed and started |
| Group | executes | deployed and started |
| Association | executes | deployed and started |
Auton8 keeps three lists and they do not agree. Reconciling them is #107's job; this is the input.
1. Shown as "coming soon" but not in the runtime deny-lists — 22 items. These deploy today. Nothing stops them, and nothing promises they work: Message/Error/Escalation/Compensation/Conditional start events, Message/Signal/ Error/Escalation/Cancel/Compensation end events, all three activity markers plus the compensation marker, all four data elements, and all three artifacts.
2. In the runtime deny-lists but the engine runs them — 25 items.
The deny-lists work at BPMN localName granularity — boundaryEvent,
intermediateThrowEvent, subProcess — while the palette distinguishes variants.
So denying boundaryEvent blocks all eight boundary variants even though Flowable
runs seven of them, and denying intermediateCatchEvent blocks message, signal and
conditional catches that all work.
This granularity mismatch is the substance of #107. One source of truth is not enough on its own: the source has to be keyed the way the palette is keyed, or the same coarse denial reappears.
3. collaboration is denied but maps to no palette entry — the palette offers
Pool, Lane and Message Flow, not the collaboration container itself.
bpmn:Group, bpmn:TextAnnotation and bpmn:Association are annotations in the
specification. They deploy and are ignored by the engine, which is correct — they
are not gaps. DataObjectReference and DataStoreReference are not in this
category: they become typed process-variable declarations (#166).
-
Business Rule Task —
NoClassDefFoundError: org/kie/api/runtime/rule/AgendaFilter. The rules engine is not in the image (#105). -
Send Task —
flowable-sendtask-invalid-implementation; needs atypeor implementation attribute.
Conditional Start Event fails at process level with "Unsupported event
definition on start event", but the engine ships
EventSubProcessConditionalStartEventActivityBehavior — it is legal only inside
an event subprocess. The palette offers it as though it were a process start.
Relevant to #158 and #162.
Getting started
Using Auton8
- Records
- Workflows
- Documents-and-Notes
- Queries-and-Dashboards
- Data-Stores-and-Pipelines
- The-Assistant
- Administration
Building Auton8
Repository