Hello All,
How can i achieved this scenario?
Discussion posts and replies are publicly visible
Hi,
Stewart Burchell,
i want to collect the data and store into database.
...and where is the list of Users being derived from? If they're all in a single Group you can look here for how this is achieved:
https://docs.appian.com/suite/help/19.1/Process_Model_Recipes.html
1. Create a Sub Process that will have task UIT and this process will have a process variable pv!assignee of parameter type. We will give the task assignment to this user..
2. We will call this sub process in parent process by looping and will pass the 10000 users one by one in parent process.
This is going to be problematic as there is a 1000-node instance limit that Appian enforces. Even if you chunk up your loop into 10 x 1000 iterations you'll end up with 10000 process instances which is going to impact your server memory.
Ankit Agarwal,
i think its use to me.
thanks
As Stewart mentioned, you should avoid that design pattern as it will lead to issues with balancing the load across engines. While it may not have an immediate impact it could lead to severe problems down the road so it would be best to just avoid it up front.
Take a look at the Start Process Smart Service and the Playbook article on Bulk Task Assignment. The Playbook article outlines how you will want to setup, batch, and execute processes. You can then build your process for the feedback task and database writes specific to your scenario.
https://docs.appian.com/suite/help/19.1/Start_Process_Smart_Service.html
https://community.appian.com/w/the-appian-playbook/755/bulk-task-assignment
If you have a good way to advertize this survey (Via email, News tab, banner placed on their loading page, etc. ), it might be best to create an Action rather than a task, or a Related Action on a particular record if more appropriate, such as that user's record. You won't have process engines being taken up idling 10000 processes or a process waiting for 10000 tasks to complete. You can avoid all process idling this way.
The one trade-off is that you'll need to find a way of determining that the user has already completed the survey; if it's an action you could just show a confirmation screen reminding them they don't need to fill it out again; if it's a related action you might be able to use rules to hide the link to it when that user has filled it out already. You'd do either one of these by doing a query against the form you've stored in the DB and the loggedInUser function.