public static Id getWorkItemId(Id targetObjectId)
{
System.debug('getWorkItemId-----Started-------->');
Id retVal = null;
for(ProcessInstanceWorkitem workItem : [Select p.Id,p.ActorId from ProcessInstanceWorkitem p where p.ProcessInstance.TargetObjectId =: targetObjectId]){
retVal = workItem.Id;
break;
}
return retVal;
}
public static void rejectRecord(String recordId){
Approval.ProcessWorkitemRequest req = new Approval.ProcessWorkitemRequest();
req.setComments('Write your own comment here');
req.setAction('Reject');
Id workItemId = getWorkItemId(recordId);
System.debug('rejectRecord 进行提交审批操作');
if(workItemId == null){
System.debug('workItemId == null');
}
else{
System.debug('workItemId '+workItemId);
req.setWorkitemId(workItemId);
Approval.ProcessResult result = Approval.process(req);
}
}
List<Account> accountsToReject = [SELECT Id, Name FROM Account WHERE ApproveStatus__c = 'Pending' And AND LastModifiedDate < :Date.valueOf('2022-01-01')];
System.debug(accountsToReject);
for(Account acc:accountsToReject ){
rejectRecord(acc.Id);
}