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: distinguish completed and pending elements passed as input parameters to infer more flows/edges in the path #16

Open
1 of 4 tasks
tbouffard opened this issue Jul 18, 2023 · 0 comments
Labels
enhancement New feature or request
Milestone

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.

In https://github.com/process-analytics/bonita-day-demo-2023/ but also in the prediction demo of the bpmn-visualization-examples repository, elements provided to compute the path are either completed or pending.

The completed state is intended for:

  • executed
  • definitively cancelled (for BPM engines that support this and allow cancelled elements to be continued
  • i.e. no further user action or automation will update the element.

The pending state is intended for:

  • executing
  • activated
  • in progress
  • waiting (for user actions, external system, ...)
  • no status
  • in error and waiting for a resolution

IMPORTANT: the pending state is only for flownode/shape. The flow/edge is considered transient and quick to execute, so it is not supposed to be pending.

Describe the solution you'd like

Enrich the existing method to support this use case:

  • Pass a dedicated object to categorize the input ids: completed and pending
  • In the "provided" elements returned by the implementation, also returns the related "pending" elements retrieved from the model
  • Compute the flow/edge related to the pending elements: there will be considered as "completed computed" elements

IMPORTANT: this is the first implementation, there won't be any specific processing for elements with special behavior due to the BPMN Semantic (for instance, parallel gateway). This will be described in dedicated issues.

Questions to answer prior starting the implementation

Do we de-duplicate completed and pending elements in the provided property of the object returned by the method?
i.e. if the same ids is passed in both the completed and pending elements,

  • do we return the related elements in both pending and completed of the "provided" object?
  • Should the two lists be duplicated? Which should be preferred?

Use case validity: loop. A task is first completed, go to a gateway and go to a path that triggers the task again.
The diagram would contain: completed --> pending --> completed
The flow/edge between the "pending" and its following "completed" element should not be inferred.

Which would mean:

Tasks

@tbouffard tbouffard added the enhancement New feature or request label Jul 18, 2023
@tbouffard tbouffard added this to the 0.6.0 milestone Oct 6, 2023
@tbouffard tbouffard self-assigned this Oct 6, 2023
@tbouffard tbouffard moved this to In Progress in Roadmap 2023 Oct 6, 2023
@tbouffard tbouffard changed the title [FEAT] PathResolver: categorize elements passed as input parameters and infer more flows in the path [FEAT] CasePathResolver: distinguish executed and pending elements passed as input parameters Oct 6, 2023
@tbouffard tbouffard moved this from In Progress to Todo in Roadmap 2023 Oct 6, 2023
@tbouffard tbouffard changed the title [FEAT] CasePathResolver: distinguish executed and pending elements passed as input parameters [FEAT] CasePathResolver: distinguish executed and pending elements passed as input parameters to infer more flows in the path Oct 6, 2023
@tbouffard tbouffard changed the title [FEAT] CasePathResolver: distinguish executed and pending elements passed as input parameters to infer more flows in the path [FEAT] CasePathResolver: distinguish executed and pending elements passed as input parameters to infer more elements in the path Oct 6, 2023
@tbouffard tbouffard changed the title [FEAT] CasePathResolver: distinguish executed and pending elements passed as input parameters to infer more elements in the path [FEAT] CasePathResolver: distinguish completed and pending elements passed as input parameters to infer more elements in the path Oct 8, 2023
@tbouffard tbouffard changed the title [FEAT] CasePathResolver: distinguish completed and pending elements passed as input parameters to infer more elements in the path [FEAT] CasePathResolver: distinguish completed and pending elements passed as input parameters to infer more flows/edges in the path Oct 10, 2023
@tbouffard tbouffard modified the milestones: 0.6.0, 0.7.0 Oct 27, 2023
@tbouffard tbouffard removed this from Roadmap 2023 Jan 9, 2024
@tbouffard tbouffard removed their assignment Aug 30, 2024
@tbouffard tbouffard modified the milestones: 0.7.0, 0.8.0 Sep 3, 2024
@tbouffard tbouffard modified the milestones: 0.8.0, 0.9.0 Oct 4, 2024
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