Multiple Human tasks that maybe combined or not.

I’m struggling to come up with a way to design where there are multiple human tasks but they could be done all or a portion of them at the same time. For instance if we were making a pizza and broke out the “get ingredients” task into “get pizza crust”, “get sauce” and “get cheese” tasks. Maybe these are going to be picked up by different family members at different stores, and it makes sense to have them all separated. Maybe they have no sense of taste and one person will just grab all of them from WalMart. Maybe someone grabs the crust and sauce but someone else grabs the cheese.
What is the best way to implement this so it frustrates the users the least especially when one person completes all tasks in one step and ideally doesn’t have to open each task up individually?

Hi @scrumi,

Here is how I would approach it:

  • Model each task individually and assign them according to the business requirements, allowing multiple tasks to be assigned to the same assignee if needed.
  • On the UI side, when multiple tasks are assigned to a single assignee, group them as one consolidated task using a specific grouping mechanism. When the group is opened, display the tasks as separate items within the form. The assignee can mark each item as completed and submit once all are done, or even choose to complete some tasks now and leave the rest for later.

Ok this makes sense. I guess where I’m not seeing clearly is on the form side. Say I create a form that displays three check boxes to mark each of the 3 subtasks as complete. I link that same form to each of the tasks. I can’t require the fields to be completed before submitting. Also how do I mark a task as complete from a form instantiated from a different task?

Seems like there are a few ways to go about this:

1.). REST API call on form submission
2.) javascript calls when boxes are checked (not sure how to make this responsive, so it becomes checked if someone else completes the task while current user has this form open)
3.) Task listeners to trigger eval and closing tasks.

Do you have a suggestion on best practices on this one for Camunda, preventing race conditions etc.