I would like to know if it is possible to capture approvals from an action item on a per approval basis in a process. We are sending action items to mutliple users from a process step and have the need to execute another step for each approval that has been received.
Thanks in advance for your assistance.
We have a mutlivalued attribute on the project object that stores resource ids for approvers of the project based on a sub-object to the project of the approvers. The approvers differ on a per project basis.
It is possible to capture this info within a process. This is particularly useful within Time sheet Approval process to collect data for the auditors..
Join the following tables..
To try to further describe the original scenario:
Sure you can capture the data from the process records themselves (the tables mentioned) but can you DO anything with that data inside a process workflow? For instance, if there are 3 approvals needed, the process would see that Person A approved, and then complete a step (such as a notification or a system action), and then wait for Person B or C. If Person C approves, then it performs an action, and waits again. Once Person B approves the aciton item, then the process performs an action and then, only then, since all 3 approvers have finally approved, can the process continue on to other steps (or finish, if the case may be). Right now, Clarity only allows you to put in step post-conditions based on either a # of approver values (# Approved > 1, for example), or, ALL approvers (All Approvers with Status = Approved = Yes, for example), but not anything to the tune of what I previously described.
The only way that I can think of to accomplish this would be to use a multi-threaded process.
You would have to use a Parallel AND with its JOIN type or a Multiple Choice OR with a Wait and Merge JOIN type to send each action item in a separate branch. That way you could send a separate action item for each assignee and send separte notifications etc. before merging back to one thread. This will only work for some situations.
Senior Support Engineer
That's true, unless the number of approvers varied from object to object. For instance, 3 approvers on one project would mean 3 paths, but 4 approvers on another project would mean 4 paths. To my knowledge, you can't write a process to have a dynamic number of paths, so, that's why it is probably better to do in some kind of loop, which leads back to the original question... but yes, your suggestion would definitely work for a static number of approvers in a given process.
I agree. That is one of the reasons I said that solution would not work in all scenarios.