wildix
June 28, 2019, 9:57am
1
Hi,
I want to add multiple BPMN-Pools with a loop. I tried somthing like this:
var modeling = bpmnModeler.get('modeling');
var customersArray = participants.split(',');
var parent = canvas.getRootElement();
var yValue = 50;
for (let customer of customersArray) {
modeling.createShape({ type: 'bpmn:Participant', name:customer}, { x: 100, y: yValue, width: 500, height: 250}, parent);
yValue += 305;
}
I think the Problem is, that i need to create First a Process for every Pool and then link them. But I dont know how.
And further i want to set the name for the pool. How is that possible? I tested it in the create Shape Option, but this doesnt work.
Hi @wildix !
The ElementFactory#createParticipantShape
offers a helper to create bpmn:Participant
elements which an attached bpmn:Process
element. This returns a participant shape which can be added to the canvas. For setting the name you will have to update the shapes
name` property. So something like this
var elementFactory = modeler.get('elementFactory'),
modeling = modeler.get('modeling'),
canvas = modeler.get('canvas');
var parent = canvas.getRootElement(),
participant1 = elementFactory.createParticipantShape(),
participant2 = elementFactory.createParticipantShape();
participant1.businessObject.name = 'A';
participant2.businessObject.name = 'B';
modeling.createShape(participant1, { x: 350, y: 200 }, parent);
// turned into collaboration
parent = canvas.getRootElement();
modeling.createShape(participant2, { x: 350, y: 500 }, parent);
Will lead to this
Note : Creating the first participant in the process will turn the whole diagram to a collaboration for adding another participants
1 Like