When multiple tokens (2 or more) arrive at a parallel gateway from a single flow, two of them merge and one token will continue (e.g., if there were 3 tokens, 2 will merge, and only 1 will be stuck there).
It is wrong, and all three tokens should get stuck there, since it waits for the merge on ALL the incoming flows.
How it should be:
How it is:
Parallel gateway waits for as many tokens as there are incoming flows, not necessarily for all the tokens from all sides to be merged.
Steps to Reproduce
Have a model (e.g., like one I showed), and then have a situation, when 0 tokens come from one path to a parallel gateway, and all the tokens come from a single path, and then see how each 2 tokens would merge.
6_V_powerpoint.mp4V6_camunda_modeler.mp4
Expected Behavior
Parallel gateway MUST wait for tokens from ALL incoming paths (i.e., a token coming from two paths can be merged, and two tokens from one path - cant).
I believe it is because a gateway merges the tokens automatically, depending on the number of incoming flows
P.S.
We are the researchers trying to use CAMUNDA token modeler for better teaching of the students, we were thinking if we can contact somehow the person, who could help with fixing the bug? Thanks!
When modeling a collapsed subprocess and the subprocess is not modeled, the simulation will pause. Boundary Events can be triggered, but the subprocess cannot be "completed".
Starting the token simulator while working with camunda modeler 4.11.1 causes this exception:
A DOM element reference is required
at new (webpack:///node_modules/min-dom/dist/index.esm.js:75:0)
at classes (webpack:///node_modules/min-dom/dist/index.esm.js:63:0)
at file:///C:/Users/LENOVO/Desktop/camunda-modeler-4.11.1-win-x64/resources/plugins/bpmn-js-token-simulation-plugin/client/client.bundle.js:123:7
at file:///C:/Users/LENOVO/Desktop/camunda-modeler-4.11.1-win-x64/resources/app.asar/public/2.2.js:1:50766
at listener (webpack:///node_modules/diagram-js/lib/core/EventBus.js:371:33)
at _invokeListener (webpack:///node_modules/diagram-js/lib/core/EventBus.js:352:23)
at _invokeListeners (webpack:///node_modules/diagram-js/lib/core/EventBus.js:313:23)
at ToggleMode../node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js.ToggleMode.toggleMode (webpack:///node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:63:0) [ error ]
This error may be the result of a plug-in compatibility issue. [ info ]
The plugin doesn't support the latest version of the Camunda Modeller. When the Token Simulation is toggled in the Modeller 4.7.0 the following error message is logged:
[/Users/christian/Downloads/diagram_1.bpmn] A DOM element reference is required
at new (webpack:///node_modules/min-dom/dist/index.esm.js:75:0)
at classes (webpack:///node_modules/min-dom/dist/index.esm.js:63:0)
at file:///Users/christian/Library/Application%20Support/camunda-modeler/resources/plugins/bpmn-js-token-simulation-plugin-master/client/client.bundle.js:123:7
at file:///Applications/Camunda%20Modeler.app/Contents/Resources/app.asar/public/2.2.js:1:49241
at listener (webpack:///node_modules/diagram-js/lib/core/EventBus.js:371:33)
at _invokeListener (webpack:///node_modules/diagram-js/lib/core/EventBus.js:352:23)
at _invokeListeners (webpack:///node_modules/diagram-js/lib/core/EventBus.js:313:23)
at ToggleMode../node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js.ToggleMode.toggleMode (webpack:///node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:63:0)
at apply (webpack:///node_modules/@sentry/browser/esm/helpers.js:71:22) [ error ]
This error may be the result of a plug-in compatibility issue. [ info ]
Disable plug-ins (restarts the app) [ info ]
Disabling the token simulation mode in the current version of the Camunda Desktop Modeler doesn't work properly, producing the following error:
[diagram_1.bpmn] A DOM element reference is required
at new (webpack://camunda-modeler-token-simulation-plugin/node_modules/min-dom/dist/index.esm.js:75:0)
at classes (webpack://camunda-modeler-token-simulation-plugin/node_modules/min-dom/dist/index.esm.js:63:0)
at file:///D:/Camunda%20Modeler/camunda-modeler-5.12.0/plugins/camunda-modeler-token-simulation-plugin-master/client/client.bundle.js:46:55
at file:///D:/Camunda%20Modeler/camunda-modeler-5.12.0/resources/app.asar/public/656.js:2:27386
at listener (webpack://camundanode_modules/diagram-js/lib/core/EventBus.js:423:33)
at _invokeListener (webpack://camundanode_modules/diagram-js/lib/core/EventBus.js:397:23)
at _invokeListeners (webpack://camundanode_modules/diagram-js/lib/core/EventBus.js:345:23)
at ToggleMode.toggleMode (webpack://camunda-modeler-token-simulation-plugin/node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:84:0)
at HTMLDivElement.<anonymous> (webpack://camunda-modeler-token-simulation-plugin/node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:55:0) [ error ]
The token simulation mode subsequently remains enabled and functional but can only be exited by closing the BPMN diagram.
Steps to Reproduce
Install a vanilla copy of the Camunda Desktop Modeler v5.12.0
Install the Token Simulation Plugin
Create a new BPMN diagram
Click on the "Token Simulation" toggle button or press T to enable the token simulation mode
Click on the "Token Simulation" toggle button or press T to disable the token simulation mode
Expected Behavior
Toggling the token simulation mode should work without any issue.
@philippfromme, I added your BPMN simulation plugin as a folder "bpmn-js-token-simulation-plugin" into "plugins" directory in Camunda Modeler (on Mac), but "Token Simulation" button doesn't seem to appear on the board as illustrated in your gif animation tutorial. I tried to restart modeller, but nothing seems to help. Do you have any hints?
Even though Camunda Cloud BPMN plugins aren't supported the menu and style plugins are included regardless. When using the menu plugin there is an error since the bpmn-js plugin wasn't included.
This isn't necessarily a bug but could also require a fix in the Camunda Modeler.
Steps to Reproduce
Install plugin
Create Camunda Cloud BPMN tab
Use menu plugin
Error in log
Expected Behavior
Menu plugin not included if Camunda Cloud BPMN tab.
Rename this library to make clear it is a Camunda Modeler plug-in. I could imagine something simple like camunda-modeler-token-simulation-plugin or short token-simulation-plugin.
Hi, great plugin, thanks,
but it's seems to be not very usable on realworld schemas, because a lack of support of some elements. It's fails on documentation elements like message flows either.
I have intermediate events for status tracking on scheme which is very basic one and get error messages about unsupported elements.
It contains message flow elements which is no supported ether, but flow elements uses only for documentation purposes
and could be omitted by token emulation.
The current Token Simulation Plugin does not support Inclusive Gateways.
There is a branch of bpmn-js-token-simulation that supports Inclusive Gateways.
It could be very nice to have that support, either as the master or as a branch :-)
I have a process that consists of a user task and a service task. The service task should read data from a separate system. Based on that data, the human task needs to be repeated or the process ends. I modeled that with two exclusive gateways, one before the user task (joining the branches together) and one after the service task, routing the flow back to the first gateway, if the condition is met.
I would have expected, that the token simulation either neglects the optional back loop, or goes once through the loop and then continues towards the process end. But even if I make the flow towards the end event the default flow, it does not change anything. That's really a pity. Otherwise it's a nice tool.
Pressing "R" on the keyboard when the "Token simulation" mode is disabled turns on simulation capabilities without hiding the palette or disabling the modeling mode.
Clicking the simulation mode toggle button twice resets the erroneous state back to default.
This only seems to be a bug with the Desktop Modeler plugin. Testing with bpmn-js-token-simulation itself or the C8 Web Modeler doesn't show this issue.
Steps to Reproduce
Draw a basic process model with at least one element.
Make sure that "Token simulation" is turned off.
Press "R" on your keyboard.
Manipulate the process model while simulation capabilities are enabled.
Expected Behavior
Pressing "R" on the keyboard should do nothing when the simulation mode is disabled.
When I toggle token simulation on, I get this output.
[diagram_1.bpmn] A DOM element reference is required
at new (webpack://camunda-modeler-token-simulation-plugin/node_modules/min-dom/dist/index.esm.js:75:0)
at classes (webpack://camunda-modeler-token-simulation-plugin/node_modules/min-dom/dist/index.esm.js:63:0)
at file:///Users/hannes/Library/Application%20Support/camunda-modeler/resources/plugins/camunda-modeler-token-simulation-plugin/client/client.bundle.js:46:55
at file:///Applications/Camunda%20Modeler.app/Contents/Resources/app.asar/public/656.js:2:27386
at listener (webpack://camundanode_modules/diagram-js/lib/core/EventBus.js:423:33)
at _invokeListener (webpack://camundanode_modules/diagram-js/lib/core/EventBus.js:397:23)
at _invokeListeners (webpack://camundanode_modules/diagram-js/lib/core/EventBus.js:345:23)
at ToggleMode.toggleMode (webpack://camunda-modeler-token-simulation-plugin/node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:84:0)
at HTMLDivElement.<anonymous> (webpack://camunda-modeler-token-simulation-plugin/node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:55:0)
at apply (webpack://camunda-modeler-client/node_modules/@sentry/browser/esm/helpers.js:72:22) [ error ]
This error may be the result of a plug-in compatibility issue.
Steps to Reproduce
Install Camunda Modeller 5.12
Toggle the Token Simulation
Environment
OS: macOs Ventura 13.4
Latest version of the plug in
In today's nightly build of Camunda Modeler 3.0.0 the Token Simulation does not turn off using its button keyboard shortcut. That leaves the current models tab unusable and unsaved changes are lost.
In previous versions (and in https://bpmn-io.github.io/bpmn-js-token-simulation/modeler.html?e=1) the choosen outgoing sequence flow after an XOR is highlighted (or to be more precise: the inactive ones are rendered as disabled). This does not work in Camunda Modeler anymore.
All sequence flows look alike, that makes it difficult to control the flow during the simulation.
Expected Behavior
The activated outgoing sequence flows should be visibly highlighted.
When there are two boundary events, one interrupting and one non-interrupting on a receive task manually triggering the non-interrupting event appears to trigger the other one instead.
Steps to Reproduce
Build a model with a receive task
add two timer boundary events (one interrupting one not)
start simulation
when the token is waiting on the task trigger the non-interrupting event
Expected Behavior
A new token is created leaving the non-interrupting event
Describe the Bug
When a BPMN contains not only multiple lanes in a single pool, even if there are multiple pools with 1 or more lanes, each process start event has a "play button". When I choose one of the events to run the simulation, it all runs fine (in the newest version with a lot more supported elements (y) ). After the simulation run is over, in nearly all scenarios of model designs all start events get back their play button. But if you have 2 or more pools in a model, only the play button of the started pool reapears. I need to shut down token simulation an start it again, then all start events are runnable again. This is what I expect after finishing too.
Steps to Reproduce
1.) create a new pool
2.) add a simple process to simulate in pool 1
3.) create another new pool
4.) add a simple process to simulate again in pool 2
5.) run simulation in any pool
6.) after finishing of simulation 1 try to start to simulate the other one ;)
Expected Behavior
I expect the same behavior like at the beginning, when i activate the plugin and set Token Simulation to green. Then all pools can be simulated.
If a subprocess contains a Terminate End Event (filled circle), the token simulator terminates the entire outer process. This is incorrect: the outer process should continue beyond the subprocess.
Using the above workflow simulate the token and click on msg1 to simulate the msg1 message event. The token will proceed to the Terminate End Event and then display Finished, and will not continue to Final Task.
Expected Behavior
If this same diagram is run in Camunda then the process will continue to Final Task.
I follow the README to put the project in plugins, but it can't be toggled.
toggleTokenSimulation is not a registered action
at o (webpack:///node_modules/diagram-js/lib/features/editor-actions/EditorActions.js:257:9)
at error (webpack:///node_modules/diagram-js/lib/features/editor-actions/EditorActions.js:167:10)
at trigger (webpack:///src/app/tabs/cloud-bpmn/BpmnEditor.js:529:40)
at triggerAction (webpack:///src/app/tabs/MultiSheetTab.js:269:18)
at triggerAction (webpack:///src/app/tabs/EditorTab.js:36:33)
at triggerAction (webpack:///src/app/App.js:1782:15)
at fn (webpack:///src/app/App.js:2250:19)
at file:///D:/%E8%AF%BE%E4%BB%B6/%E6%AF%95%E8%AE%BE/camunda/camunda-modeler-4.11.1-win-x64/resources/app.asar/public/bundle.js:73:148465
at exec (webpack:///src/app/AppParent.js:76:11) [ error ]
This error may be the result of a plug-in compatibility issue. [ info ]
The toggle button "Set Sequence Flow" at gateways used to indicate the selected sequence flow by showing the disabled flow as light gray. This is no longer the case wit Modeler v. 4.8.1 (while the actual functionality works).
The plugin seemingly changes the modeling behavior regarding the event-based gateway. As per the BPMN 2.0 specification targets of an event-based gateway must not have any other incoming sequence flows.
With a clean Modeler install, when connecting a second sequence flow to such an event, the already connected incoming sequence flow per default is deleted automatically:
When the plugin is installed this doesn't happen, allowing two incoming sequence flows to be connected to the event:
Connect the event-based gateway to the intermediate message catch event again.
See that the now illegal other flow to the catch event remains in place.
Expected Behavior
The incoming sequence flow that is already connected to the event following the event-based gateway should be removed when connecting a second element.
When modelling synchronous communication, the behaviour is not as expected. On arriving at the task, the token will wait. On continuing, the message is sent and the token continues, ignoring the returning message flow.
Draw one step that communicates synchronous with the other process
The token will be stuck at this point, see video
Expected Behavior
I would assume that on arriving at the synchronous communication task, the send message will be done. After this, the token will wait for the returning message and continue on arrival of this message.
Generally speaking (cf. #42 (comment), #42 (comment)) message flows shall execute in diagram direction (left-to-right).
Environment
Host (Browser/Node version), if applicable: Camunda Modeler, version 4.11.1
Given the attached process model the first token that reaches the end event termintes the whole instance. This is actually not correct, the second token should continue.
After updating to the latest version (0.10.0) of this plugin, I can't see which outgoing sequence flow of an exclusive gateway is selected. All sequence flows are painted black.
In the former version, only the selected flow was black and the other ones were painted grey.
Steps to Reproduce
Install version 0.10.0 of the token simulation plugin in Camunda Modeler 4.3.0
Model a process with an exclusive gateway and at least two outgiong sequence flows.
enable the simulation. All sequence flows keep black. The token simulation works.
Expected Behavior
Only the selected flow is painted black, the other flows appear lighter grey.
After installing 3.0.1. I always get the following exception:
[diagram_1.bpmn] A DOM element reference is required
at new (webpack:///node_modules/min-dom/dist/index.esm.js:75:0)
at classes (webpack:///node_modules/min-dom/dist/index.esm.js:63:0)
at file:///Users/swiese/Library/Application%20Support/camunda-modeler/plugins/bpmn-js-token-simulation-plugin-0.8.0/client/client.bundle.js:123:7
at file:///Applications/Camunda%20Modeler.app/Contents/Resources/app.asar/public/0.0.js:1:214623
at listener (webpack:///node_modules/diagram-js/lib/core/EventBus.js:362:0)
at _invokeListener (webpack:///node_modules/diagram-js/lib/core/EventBus.js:348:0)
at _invokeListeners (webpack:///node_modules/diagram-js/lib/core/EventBus.js:310:0)
at ToggleMode../node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js.ToggleMode.toggleMode (webpack:///node_modules/bpmn-js-token-simulation/lib/features/toggle-mode/modeler/ToggleMode.js:63:0) [ error ]
This error may be the result of a plug-in compatibility issue. [ info ]
Disable plug-ins (restarts the app) [ info ]