Appian Community
Site
Search
Sign In/Register
Site
Search
User
DISCUSS
LEARN
SUCCESS
SUPPORT
Documentation
AppMarket
More
Cancel
I'm looking for ...
State
Not Answered
Replies
23 replies
Subscribers
6 subscribers
Views
7171 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
Process
Any suggestions on how to collect input from multiple individuals at the same ti
judym598
Certified Senior Developer
over 9 years ago
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
0
Chris
over 9 years ago
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.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
Reply
0
Chris
over 9 years ago
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.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
Children
No Data