Closed theaubmov closed 1 week ago
The recent update involves restructuring import paths and enhancing functionality within BPMN workflow components. Changes optimize the organization of key providers like StandardLoopPropertiesProvider
and MultiInstancePropertiesProvider
, introduce new modules for managing loop properties and synchronization, and refine features for input-output management in the properties panel.
File Path | Change Summary |
---|---|
.../loops/StandardLoopPropertiesProvider.js | - Updated import path for LoopProperty helpers |
.../loops/helpers.js | - Introduced functions for managing loop properties and IO values |
.../loops/propertiesPanel/CompletionCondition... | - Added CompletionCondition function for managing completion conditions |
.../propertiesPanel/InputCollectionEntry.js | - Exported InputCollection function with enhanced functionality |
.../propertiesPanel/OutputCollectionEntry.js | - Introduced OutputCollection function for managing output collections |
.../propertiesPanel/LoopCardinalityEntry.js | - Added LoopCardinality function for setting loop cardinality properties |
.../propertiesPanel/OutputItemEntry.js | - Provided functionality for handling output data items in BPMN workflow properties panel |
.../propertiesPanel/IsIOSyncEntry.js | - Introduced IsOutputElSync function for synchronization of output elements |
.../propertiesPanel/CompletionConditionEntry.js | - Added CompletionCondition function for handling completion conditions in BPMN elements |
.../propertiesPanel/InputItemEntry.js | - Implemented InputItem function for managing input data items in a BPMN workflow |
.../propertiesPanel/MultiInstancePropertiesProvider.js | - Enhanced MultiInstancePropertiesProvider for multi-instance elements in BPMN diagrams |
🐰✨
In a land of code and wire,
Changes bloom like spring's first fire.
Syncing outputs, far and wide,
With checkboxes by our side.
Through loops and logs, we hop and twirl,
Crafting worlds in every swirl.
🌟🐾
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
what happens when "Output Element is Synchronized with Input Element" is checked? do we definitely want to give users control over this? is this a BPMN spec thing?
When the Output Element and Input Element have the same value (variableName), BPMN-JS is unable to parse the Output Element value. The issue arises only if the user wants to use the same value for both the Input and Output Elements. That's why the new checkbox "Output Element is Synchronized with Input Element" has been added to allow users to achieve these use cases. This is not a BPMN spec, it's just a UI enhancement to address these issues.
@essweine , did you discuss this one with ayoub? it is a valid use case to have a matching Output Element and Input Element in your opinion? you think we should get this change merged?
Yes, we discussed this. It is definitely a valid use case.. However, I ran into a problem doing some testing. I created a simple diagram (had to change the extension to upload) multiinstance.txt that uses two different collections, but when I reloaded it, the output item was lost and the "synchronize" box was checked..
Also, when I remove an output collection, the loopOutputDataRef
gets set to undefined
, which is going to cause runtime errors (this might be an existing bug, but we should go ahead and fix it).
The third problem I had was that there's an attribute isOutputSynched
which doesn't have a namespace. I wonder if we should add a namespace and not try to add the outputDataItem
if it is checked (this would require a slight change to the library parser but it would be fairly trivial)? It would also be better to put the attribute on multiInstanceLoopCharacteristics
instead of the task.
Fixed the issue of getting an 'undefined' value when removing the output collection.
For isOutputSynched I added Spiffworkflow namespace,
When the user check the box of isOutputSync, the current behaviour is adding dataOutput item with same value of input item, so nothing in the backend will change. and for the point of adding isOutputSync attribute to multiInstance LoopCharacterisitcis and not element, it makes sense, but to do so we need to override the default bpmn moddle. so that's why it's still implemented at task level.
For the first issue of losing output element value with that example, I'm not able to regenerate it again by running only bpmn editor, @essweine could you please verify if the issue still exists after last changes.
To optimise the multi instance panel and make it more readable and easier to understand, Should we create a new ticket for it, where we define how the optimised version will look like?
For the first issue of losing output element value with that example, I'm not able to regenerate it again by running only bpmn editor, @essweine could you please verify if the issue still exists after last changes.
I was unable to replicate this time either, so I think this is good to go.
To optimise the multi instance panel and make it more readable and easier to understand, Should we create a new ticket for it, where we define how the optimised version will look like?
I'm in favor of a separate ticket for that so we can finally get this merged.
Summary by CodeRabbit