Multiple subprocess - Performers


In my process, I've a multiple subprocess which create a number of instances equal to my collection's rows has.

I use a expression similar like this one bellow, in the performers step to assign a user from WFUSER to the activity.

Although the subprocess creates the right number of instances, It assigns all the subprocesses all to all collaborators. The goal is that the subprocess assign ONE case to ONE collaborator.

How can I solve that?


// Create an array

var Users = new ArrayList();

// Save in a variable the requester

var Requester = <Onboarding.Requester.Id>;

// Get all users whos boss is the requester

var SearchUsers = CEntityManager.GetEntity("WFUser").GetEntityList("","","idBossUser = "+ Requester,"");

// Count how many users comply

var HowManyUsers = SearchUsers.Length;

if(HowManyUsers > 0)


// Add each user to the array

for (var i=0; i < HowManyUsers; i++)


var idUser = SearchUsers[i].SurrogateKeyValue;






Best regards,


Comments (1)


Dear Francisco,

Expressions in allocation rules are usually needed when you need to evaluate complex conditions and select some user that comply conditions given in said expression.

To use expressions select the User property User id and the Expression option.

The expression created should return an array of ids, of the users that comply with the condition needed. Those users ids will be allocated.


Using the same idea, you can add the result to a collection. In order to create items (records) in a collection using a business rule, Bizagi offers a function called newCollectionItem.

Visualize your collection as a table. Creating a new item is comparable to adding a new row to a table. First you need to create the new row and then set the desired values for each column.

The new record (row) is created using the newCollectionItem function. This function is available in the Functions list of theCollections category.


For further information: