Skip to content

[FEAT] CasePathResolver: detect start/end event in "lonely edge" branch #13

Description

@tbouffard

DISCLAIMER: this issue describes path computation for a single instance/case only. So the implementation will go to the CasePathResolver class as it differs from PathResolver which is a generic implementation that both deals with single instance or all instances of a process.

Is your feature request related to a problem? Please describe.

Improve #12 and handle special cases

Describe the solution you'd like

Be able to infer the start/end event in the path in "simple" cases i.e. when the list of provided reference elements contains an element right before/after the event.
Such detection should be enabled by passing an option and should be disabled by default.
More complex use cases will be handled through a dedicated issue.

Several start events, some with BPMN elements in the same branch, other in "lonely edge" branch, going to an exclusive merge gateway

  • If task2 is enabled, choose start1
  • Otherwise, choose start2
flowchart LR
    A((start 1))--> gateway{X}
    X((start 2))  --> task2--> gateway
    gateway --> task(task) --> x((end))
Loading

Several start events, some with BPMN elements in the same branch, other in "lonely edge" branch, going to an parallel merge gateway
They should be both detected as part of the path

Several start events, some with BPMN elements in the same branch, other in "lonely edge" branch, going to an inclusive/event-based merge gateway
TODO choose the rule

Several end events, some with BPMN elements in the same branch, other in "lonely edge" branch, coming from an exclusive split gateway

  • If task2 is enabled, choose end1
  • Otherwise, choose end2
flowchart LR
    A((start 1)) --> task --> 
    gateway{X} --> task2(task2) --> end1((end 1))
    gateway  -->  end2((end 2))

Loading

Several end events, some with BPMN elements in the same branch, other in "lonely edge" branch, coming from an parallel split gateway
They should be both detected as part of the path

Several end events, some with BPMN elements in the same branch, other in "lonely edge" branch, coming from an inclusive/event-based split gateway

TODO choose the rule

Several start/end events, only in "lonely edge" branches
This is not possible to detect the effective events. They can only be considered as candidates (#24).

flowchart LR
    A((start 1))--> gateway{X}
    X((start 2))  --> gateway
    gateway --> task(task) --> gatewaySplit
    gatewaySplit{X} -->  end1((end 1))
    gatewaySplit   -->  end2((end 2))
Loading

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions