Salesforce: Reassigning Pending Approval Request using Apex Class


String selectedRecordId = ******PASS THE TARGET OBJECT RECORD ID*******;

//If there are multiple approvers then it return multiple records
List<ProcessInstanceWorkitem> ProcessInstanceWorkitemRecordList = new List<ProcessInstanceWorkitem>();
for(ProcessInstanceWorkitem ProcessInstanceWorkitemRecord :[SELECT ProcessInstanceId,actorId FROM ProcessInstanceWorkitem WHERE ProcessInstance.TargetObjectId=:selectedRecordId]) {
 if(!String.valueOf(ProcessInstanceWorkitemRecord.actorId).startsWith('005') && ProcessInstanceWorkitemRecordList.size()==0){
  ProcessInstanceWorkitemRecord.actorId = UserInfo.getUserId();
  ProcessInstanceWorkitemRecordList.add(ProcessInstanceWorkitemRecord);
 } else if(ProcessInstanceWorkitemRecord.actorId == UserInfo.getUserId()){
  ProcessInstanceWorkitemRecordList = new List<ProcessInstanceWorkitem>();
  break;
 }
}

if(ProcessInstanceWorkitemRecordList.size()>0)
 UPDATE ProcessInstanceWorkitemRecordList;


Comments

Popular posts from this blog

Transaction Security Policy In Salesforce

Salesforce Data Cloud

Add/Remove Content in the VF Page using JS