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

Command icon 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

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed f3122b46 on 1.x
    feat: #3613014 Modeler cannot build composed (All/Any) flow conditions...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.