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

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

Open
tbouffard opened this issue Jul 18, 2023 · 0 comments
Open
Labels
enhancement New feature or request

Comments

@tbouffard
Copy link
Member

tbouffard commented Jul 18, 2023

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
@tbouffard tbouffard added the enhancement New feature or request label Jul 18, 2023
@tbouffard tbouffard changed the title [FEAT] PathResolver: detect start/end event in "lonely edge" branch [FEAT] CasePathResolver: detect start/end event in "lonely edge" branch Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant