Flow Designer: Custom Escalate Approval when the pending approver can't
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-17-2023 09:02 AM
I'm looking for a way to replace a pending approval for someone that temporarily can't. And just to limit the distractions, Delegate is time based and is for all approvals unless you have a trick. In my case, it's more like Escalate Approval for a single RITM. Currently, we have a UI Action on the approval that pops a UI Page, and that sets the new approval you pick. It replaces the existing approval and then updates wf_context to wait for the new approval and also creates the event to notify. However, none of this works when Flow Designer is the context. The 'Ask for Approval' action hangs for single approval as it can't see the new approval. I can get a group approval to work by just replacing the sys_user.sys_id of the approval record and call the notify event. If I change anything else it breaks.
Some traps, if I create a new approval, FLOW can't see it. I can't update or create the listeners or the record watcher as every time I touch them I break it. On a group approval, I can sneak in and just flip the sys_user id on a sysapproval..table. however if it's just a hard coded approver in the flow for one person, changing the id doesn't work. It looks and approves like it should but Flow doesn't see the approval and I can't find a way to force it, like, sn_fd.FlowAPI.nudgeFlowsWaitingOn()
I can't go and change 100's of Flows to use an OR Manual approval. The FlowAPI() can't change the running context 'Ask for Approval' and any attempt to change the table records looks to break the listeners.
These are the records I know of.
Escalate approval:
1 - find sysapproval
2 - find sys_flow_approver_listener_reference and sys_flow_listener
3 - insert sysapproval
4 - insert sys_flow_approver_listener_reference to sysapproval record (must use the same context sys_flow_listener)
5 - insert sys_rw_action to connect it all together
6 - mark the old sysapprovals as no longer needed without moving flow.
Result should be - when the new approval happens the sys_flow_approver_listener_reference/record watcher will tell the flow context action (via sys_flow_listener/event 'flow.fire') that approval happen and 'nudge' flow.
This may be all wrong as it doesn't work. If anyone has some wisdom or insight on what FLOW wants, I'd enjoy that very much. I've tried a lot of ways and have nothing.
On San Diago now but Utah in a few weeks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-17-2023 09:31 AM
I would look into Granular Delegation plugin, this allows you to build rules for when and what can be delegated and people can apply delegation rules that fit into those buckets.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-17-2023 09:47 AM - edited ‎04-17-2023 10:23 AM
Kristen, thanks for the tip. I checked the plugin and it really doesn't match what I need.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-17-2023 09:38 AM
Hi @Steven Steichen ,
I trust you are doing great.
One possible solution could be to modify the Escalate Approval functionality to work with Flow Designer. This involves finding the sysapproval record, inserting a new sysapproval record, and connecting everything together using the sys_flow_approver_listener_reference and sys_flow_listener records. Once done, the sys_flow_approver_listener_reference/record watcher should notify the flow context action that the approval has happened.
Was this answer helpful?
Please consider marking it correct or helpful.
Your feedback helps us improve!
Thank you!
Regards,
Amit Gujrathi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-17-2023 09:46 AM
Amit, I've been trying to create and link it all together for weeks. Your advice is very close to the notes I put in the original post. What part am I missing? Like parm2 in the fire.flow event is a sys_id, but to what? I can't find it in a system search.