bpmn-io / bpmn-js

A BPMN 2.0 rendering toolkit and web modeler.
https://bpmn.io/toolkit/bpmn-js/
Other
8.54k stars 1.32k forks source link

Message flow line from or to events impossible #1180

Closed sunsided closed 5 years ago

sunsided commented 5 years ago

Describe the Bug

When trying to connect an action to a message receive event, or connect a message throw to a message catch intermediate event, the line is currently either incorrectly disallowed (first scenario) or solid (second scenario).

However both actions that send a message as a byproduct or send intermediate events yield a message that's passed to the according message receive start event, catch intermediate event, or message receiving action. As a result, the line between those should be dashed with a closed arrow head.

Right now a workaround is to introduce a dummy artifact, however this draws a data association rather than a message flow line, which makes it technically incorrect.

Steps to Reproduce

  1. Create action
  2. Create message receive start event
  3. Try to connect action and start event - this fails

send-action-to-start

or

  1. Create action
  2. Create message catch intermediate
  3. Connect action to intermediate event - this creates the wrong link

send-action-to-intermediate

or

  1. Create message throw intermediate event
  2. Create message catch intermediate event or an message receive start event
  3. Connect both events - this creates the wrong link

message-send-to-receive

Expected Behavior

In the first scenario, the line between the action and the event should be dashed with a closed arrow (message flow).

In the second scenario, the line should optionally be a message flow line for the intermediate events, and always be message flow for the start event.

Here's an internet example screenshot showcasing an intermediate-to-start message flow:

other

Here's an internet example for an action-to-start and an end-to-action message flow:

camunda

Environment

nikku commented 5 years ago

Thanks for reporting this issue. Could you back up your steps to reproduce with actual images? You can screenshot what you got and paste it into the issue description or use a screen recorder to create an animated gif. This helps us what you're trying to do.

sunsided commented 5 years ago

Absolutely! Updated with gifs and two examples quasi-randomly sampled from the internet.

pinussilvestrus commented 5 years ago

There exists a difference between your gifs and the examples you attached. In your scenarios you modeled one pool with two lanes. Inside a pool it is permitted to have message flows (dashed connections). On top, there can't be an incoming connection to a start event, that's why it is not allowed to create the connection in the first scenario.

The examples include two pools. Connections between different pools are handled via message flows.

Reference: BPMN 2.0 Specification

nikku commented 5 years ago

As mentioned by @pinussilvestrus this is a misunderstanding on your side.

As mandated by the BPMN specification message flows can only be drawn across pool / participant boundaries. This is, of course, supported by our tools:

capture 2uo82x_optimized

sunsided commented 5 years ago

Ah, right! It was this one that was confusing me, but I just realized that this is actually by design.

Screenshot from 2019-09-03 09-47-20

Thanks for clarifying and sorry for the interruption!