bpmn-io / bpmnlint

Validate BPMN diagrams based on configurable lint rules.
MIT License
125 stars 37 forks source link

Disallow dummy conditions on outgoing sequence flows from OR/XOR gateways #120

Closed till-stadtler closed 9 months ago

till-stadtler commented 11 months ago

The rule should detect the following modeling patterns

Conditions on outgoing sequence flows should always contain at least one process variable. If these conditions do not contain any process variable (dummy condition), they always evaluate to the same value.

If this value is false, the outgoing sequence flow will never be taken. This should be highlighted.

If this value is true:

How does the rule improve the BPMN diagram?

If the dummy condition evaluates to false, this rule highlights that a certain path can never be taken. If the dummy condition evaluates to true, this rule helps to avoid an incident arising or suggests a helpful refactoring.

Rule Details

What alternatives did you consider?

Without the rule, BPMN models will continue to include dummy conditions on sequence flows behind OR/XOR gateways.

nikku commented 11 months ago

Name could be static-expression, too.

nikku commented 9 months ago

Further investigating this it may not be solved on the level of bpmnlint. We don't have full context here regarding the used expression language, and hence cannot derive any insights.

We can (and should) check this when validating for implementation. I hence move this to the Camunda compat rules.

nikku commented 9 months ago

Superceeded by https://github.com/camunda/bpmnlint-plugin-camunda-compat/issues/152.