function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

Reassign Approval Request

I have an issue with the reassign functionality for the approval process.  Our problem is that the object on which the approval is running is Private, and using apex managed sharing.  The sharing is created for the manager of the requester on insert or update of the record.  The approval is assigned to the manager of the this requester who also is the owner on the record.  When an approver reassigns the approval to someone else, the new approver does not have read access to the record, and gets an insufficient privilege message if they try to access the task.  I have selected "Administrators OR the currently assigned approver can edit records during the approval process." however, sharing overrides this setting.  I can see the reassign change occur to the ActorID in ProcessInstanceStep and ProcessInstanceHistory, however we cannot create a trigger against these objects, and the parent object, on which the approval process is running does not get updated when the approver is changed.  Any idea on where I can put a trigger or anything else to detect this update so I can implement the necessary sharing when the reassign is done?

It would be ideal if we could remove the reassign ability, however according to the docs and boards, this is not possible.  Any ideas?


I have had some feedback that there is no way to trigger off the reassign action, and the other options so far are not very appealing:


1) User your crystal ball to guess who the approvals may be reassigned to and pre-share those records with those individuals. 


2) Train users not to click on the reassign link. I guess this is easy from a technical perspective, and is likely to be our temporary solution, but definitely not what our customer wants to hear on their first app.


3) Create a custom approval VF page and override default options.  The problem with this is that the reassign link appears in multiple places (Approval History related lists, Items to Approve, custom Home pages) throughout the org for users with cross functional approvals. 


Is there any way to replace the Reassign Approval Request page with a VF that would conditionally allow or not allow reassignment based on the Related object?  That way we could allow users to reassign approvals for some requests, but prevent them from reassigning approvals on other objects.