Any suggestions on how to collect input from multiple individuals at the same ti

Certified Senior Developer
Any suggestions on how to collect input from multiple individuals at the same time? I have a process that includes a 'survey' type step. I'd like to send a task to a group (at the same time) and have them provide input individually (same input form but each person in the group would be tasked to complete it - and membership could vary). When all (or a set number) have submitted their input (i.e., tasks have been completed) - the process would continue. I'm using the getdistinctusers(topeople(pv!group)) function to assign the task to everyone in a specific group. That seems to work but I get 2 tasks for every person in the group (not sure why). In the 'Other' tab, I selected 'Run one instance for each assignee' at the same time. Each form collects the 'vote' (Y or N) and any feedback (text) in a CDT that is set up as a 'multiple'. When I test it - I get the multiple tasks/assignee but the data saved is just the last data entered. How do I get all re...

OriginalPostID-194377

OriginalPostID-194377

  Discussion posts and replies are publicly visible

Parents
  • Some good suggestions here, I only have a few things to add:

    We accomplish this by using the multiple-valued CDT, each user input task appends to the CDT and sets a 'recordData' variable to true which spawns a separate loop in the model, updating the DS, resetting to false after the loop (old setup). The single value shielded method mentioned above is less of a potential for race conditions however.

    If you are executing the outgoing path (for writes) each time the node is completed, you can run these through a decision node that checks to see if the count or time has elapsed (whenever you want to move along) and end at a non-terminating end event if not. Additionally, place similar logic in a rule exception on your user input tasks, which will bypass any remaining open items once your limits have been reached.

    Note here, if you go the sub process route - place the exception on the user input task within the sub process, there is a product defect that I don't believe is resolved yet where MNI sub processes configured with exception paths will only cancel the first instance instead of all active instances (AN-41986).

    Also to note, regarding the "pass CDT by reference" suggestion above, I would stay away from passing CDTs by reference as it is not best practice - this will cause you issues when the CDT is updated in the future.

Reply
  • Some good suggestions here, I only have a few things to add:

    We accomplish this by using the multiple-valued CDT, each user input task appends to the CDT and sets a 'recordData' variable to true which spawns a separate loop in the model, updating the DS, resetting to false after the loop (old setup). The single value shielded method mentioned above is less of a potential for race conditions however.

    If you are executing the outgoing path (for writes) each time the node is completed, you can run these through a decision node that checks to see if the count or time has elapsed (whenever you want to move along) and end at a non-terminating end event if not. Additionally, place similar logic in a rule exception on your user input tasks, which will bypass any remaining open items once your limits have been reached.

    Note here, if you go the sub process route - place the exception on the user input task within the sub process, there is a product defect that I don't believe is resolved yet where MNI sub processes configured with exception paths will only cancel the first instance instead of all active instances (AN-41986).

    Also to note, regarding the "pass CDT by reference" suggestion above, I would stay away from passing CDTs by reference as it is not best practice - this will cause you issues when the CDT is updated in the future.

Children
No Data