Issue with Parallel multi instance not processing all items

Hi all,

I’m facing an issue when using a parallel multi-instance.

Here is my BPMN:

loop9lignes.bpmn (18.2 KB)

This BPMN should browse all lines, and for each line browse all commands, and for each command check.

The first test case (working fine):
Json Input :

{
	"id": "1",
	"name": "Facture 1",
	"state": "Ok",
	"lignes": [
		{
			"id": "11",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "111",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "112",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "113",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "114",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "115",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "12",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "121",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "122",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "123",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "124",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "125",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "13",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "131",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "132",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "133",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "134",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "135",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "14",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "141",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "142",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "143",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "144",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "145",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "15",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "151",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "152",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "153",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "154",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "155",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "16",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "161",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "162",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "163",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "164",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "165",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "17",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "171",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "172",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "173",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "174",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "175",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "18",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "181",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "182",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "183",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "184",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "185",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "19",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "191",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "192",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "193",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "194",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "195",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		}
	]
}

The second test case (not working):
JSON Input (I just added more items to my JSON; I’m expecting 10 messages, but in operation, it only shows 9 messages):

{
	"id": "1",
	"name": "Facture 1",
	"state": "Ok",
	"lignes": [
		{
			"id": "11",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "111",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "112",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "113",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "114",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "115",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "12",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "121",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "122",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "123",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "124",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "125",
					"state": "E2",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "13",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "131",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "132",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "133",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "134",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "135",
					"state": "E1",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "14",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "141",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "142",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "143",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "144",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "145",
					"state": "18",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "15",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "151",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "152",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "153",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "154",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "155",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "16",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "161",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "162",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "163",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "164",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "165",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "17",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "171",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "172",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "173",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "174",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "175",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "18",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "181",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "182",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "183",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "184",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "185",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "19",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "191",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "192",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "193",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "194",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "195",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		},
		{
			"id": "21",
			"state": "Ok",
			"commandes": [
				{
					"commandeId": "211",
					"state": "Ok",
					"name": "Commande PC1"
				},
				{
					"commandeId": "212",
					"state": "Ok",
					"name": "Commande PC2"
				},
				{
					"commandeId": "213",
					"state": "Ok",
					"name": "Commande PC3"
				},
				{
					"commandeId": "214",
					"state": "Ok",
					"name": "Commande PC4"
				},
				{
					"commandeId": "215",
					"state": "Ko",
					"name": "Commande PC5"
				}
			]
		}
	]
}

Thanks for your help.

Hi @m.issoulghane

The output variable in the attached model includes a JSON that differs from the one in your post. It contains only 9 items where state != "Ok".

Hi @hassang

Thanks for the quick reply.
Indeed, to reproduce the issue, you can replace the output variable in the first BPMN or use this one instead.

loop10lignes.bpmn (19.1 KB)

Hi @m.issoulghane

If I am not mistaken it looks like a bug. I am using the 8.5 self-managed version.
Through my experiments, I’ve discovered that the issue arises when using exclusive or inclusive gateways. However, if no gateways or parallel gateways are used, everything works as expected (all outer and inner items are processed).

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.