• Navy Jain
  • NEWBIE
  • 0 Points
  • Member since 2013

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 1
    Replies

EDIT: I have updated this posting with a subject that is more indicative of what I am trying to achieve.

 

End Goal

Automatically escalate a custom object record if it has not been approved after 24 hours (approval process escalation).  When this record is created, it is automatically submitted into an approval process.  If the original approvers have not approved/rejected the record after 24 hours, the record should be automatically reassigned to a different approver where it will sit for however long it takes for approval/rejection.

 

Note: Status field has the following values: New, Pending Approval, Approved, Rejected

 

Current Implementation

  1. Record created in custom Visualforce GUI
  2. Upon save, Apex extension submits the record to an approval process
  3. First step of the approval process updates a Status field on the record, changing it from "New" to "Pending Approval"
  4. 24-hour time-based workflow in place which updates a checkbox, "Escalated", if the record is still in the "Pending Approval" Status (Currently, does not fire)
  5. Apex trigger fires after record is updated calls Apex class method if "Escalated" checkbox is true.  This Apex method should have the ability to:
    1. Cancel current approval process and resubmit to escalation approval process - OR-
    2. Manipulate the record's current state in the existing approval process so that a different User/Group is responsible for approval/rejection
    3. (I think the first method is possible with Apex, but I'm not too sure about the second method)


I believe the problem lies in the order of execution between steps 3 and 4.  For whatever reason, the workflow in step 4 never fires after the record is updated via approval process.  However, it will fire when I manually change a "New" record's Status to "Pending Approval".

 

I was hoping that there was a better way to go about this auto-escalation (perhaps within the point-and-click configuration) but haven't found a solution.  Is there a better approach (ideally, a working approach :smileyhappy:) out there?

 

Thanks in advance!

Message Edited by jpizzala on 02-25-2009 11:05 AM