Problem/Motivation
The engine already supports composed flow conditions: All (logical AND) and Any (logical OR) extend CompositeConditionBase and evaluate nested sub-conditions of any depth. But the modeler has no way to build them: only the leaf conditions have modeler templates (org.drupal.condition.comparison and org.drupal.condition.count), so a sequence flow drawn in the modeler carries a single leaf condition and nothing composed.
As a result a branch that needs "A and B" cannot be expressed as one condition; it has to be emulated by ordering several flows under a first split, which is implicit and fragile.
Proposed resolution
Add modeler support for the all and any conditions: a template (or condition picker) that lets an editor nest sub-conditions, and a BPMN-to-definition roundtrip that encodes and decodes the nested settings CompositeConditionBase expects. Leaf conditions stay as they are; all and any wrap them.
Remaining tasks
- Modeler template or UI for all and any with nested sub-conditions.
- Encode and decode the nested condition settings across the BPMN roundtrip.
- Tests covering a composed condition built through the modeler.
Issue fork orchestra-3613014
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #5
mably commented