Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
till-stadtler opened this issue Dec 11, 2023 · 3 comments
Labels
rules Concerning existing or missing rules wontfix This will not be worked on

Comments

@till-stadtler
Copy link

till-stadtler commented Dec 11, 2023

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:

  • in XOR gateways: this sequence flow will always be taken, and an incident might be thrown if another outgoing sequence flow evaluates to true as well
  • in OR gateways: in this case, the OR gateway should be replaced with the combination of a parallel gateway and another XOR/OR gateway to improve readability

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

  • Name: no-dummy-conditions / static-expression
  • Default notification level: warn

What alternatives did you consider?

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

@till-stadtler till-stadtler added the rules Concerning existing or missing rules label Dec 11, 2023
@nikku
Copy link
Member

nikku commented Dec 11, 2023

Name could be static-expression, too.

@nikku nikku added the backlog Queued in backlog label Dec 12, 2023 — with bpmn-io-tasks
@nikku
Copy link
Member

nikku commented Jan 25, 2024

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
Copy link
Member

nikku commented Jan 25, 2024

Superceeded by camunda/bpmnlint-plugin-camunda-compat#152.

@nikku nikku added the wontfix This will not be worked on label Jan 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rules Concerning existing or missing rules wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants