The following sample code approves records in mass using apex. Below example just uses Account object’s record. Please feel free to update it as per your need.
Set<Id> accIds = (new Map<Id, CCProduct__c>([SELECT Id FROM Account WHERE LASTModifieddate=today])).keySet(); // Query your target set of records
Set<Id> pIds = (new Map<Id, ProcessInstance>([SELECT Id,Status,TargetObjectId FROM ProcessInstance where Status='Pending' and TargetObjectId in :accIds])).keySet();
Set<Id> pInstanceWorkitems = (new Map<Id, ProcessInstanceWorkitem>([SELECT Id,ProcessInstanceId FROM ProcessInstanceWorkitem WHERE ProcessInstanceId in :pIds])).keySet();
List<Approval.ProcessWorkitemRequest> allReq = new List<Approval.ProcessWorkitemRequest>();
for (Id pInstanceWorkitemsId:pInstanceWorkitems){
system.debug(pInstanceWorkitemsId);
Approval.ProcessWorkitemRequest req2 = new Approval.ProcessWorkitemRequest();
req2.setComments('mRequest.');
req2.setAction('Reject'); //to approve use 'Approve'
req2.setNextApproverIds(new Id[] {UserInfo.getUserId()});
// Use the ID from the newly created item to specify the item to be worked
req2.setWorkitemId(pInstanceWorkitemsId);
// Add the request for approval
allReq.add(req2);
}
Approval.ProcessResult[] result2 = Approval.process(allReq);
Set<Id> accIds = (new Map<Id, CCProduct__c>([SELECT Id FROM Account WHERE LASTModifieddate=today])).keySet(); // Query your target set of records
Set<Id> pIds = (new Map<Id, ProcessInstance>([SELECT Id,Status,TargetObjectId FROM ProcessInstance where Status='Pending' and TargetObjectId in :accIds])).keySet();
Set<Id> pInstanceWorkitems = (new Map<Id, ProcessInstanceWorkitem>([SELECT Id,ProcessInstanceId FROM ProcessInstanceWorkitem WHERE ProcessInstanceId in :pIds])).keySet();
List<Approval.ProcessWorkitemRequest> allReq = new List<Approval.ProcessWorkitemRequest>();
for (Id pInstanceWorkitemsId:pInstanceWorkitems){
system.debug(pInstanceWorkitemsId);
Approval.ProcessWorkitemRequest req2 = new Approval.ProcessWorkitemRequest();
req2.setComments('mRequest.');
req2.setAction('Reject'); //to approve use 'Approve'
req2.setNextApproverIds(new Id[] {UserInfo.getUserId()});
// Use the ID from the newly created item to specify the item to be worked
req2.setWorkitemId(pInstanceWorkitemsId);
// Add the request for approval
allReq.add(req2);
}
Approval.ProcessResult[] result2 = Approval.process(allReq);
Set<Id> accIds = (new Map<Id, CCProduct__c>([SELECT Id FROM Account WHERE LASTModifieddate=today])).keySet(); // Query your target set of records Set<Id> pIds = (new Map<Id, ProcessInstance>([SELECT Id,Status,TargetObjectId FROM ProcessInstance where Status='Pending' and TargetObjectId in :accIds])).keySet(); Set<Id> pInstanceWorkitems = (new Map<Id, ProcessInstanceWorkitem>([SELECT Id,ProcessInstanceId FROM ProcessInstanceWorkitem WHERE ProcessInstanceId in :pIds])).keySet(); List<Approval.ProcessWorkitemRequest> allReq = new List<Approval.ProcessWorkitemRequest>(); for (Id pInstanceWorkitemsId:pInstanceWorkitems){ system.debug(pInstanceWorkitemsId); Approval.ProcessWorkitemRequest req2 = new Approval.ProcessWorkitemRequest(); req2.setComments('mRequest.'); req2.setAction('Reject'); //to approve use 'Approve' req2.setNextApproverIds(new Id[] {UserInfo.getUserId()}); // Use the ID from the newly created item to specify the item to be worked req2.setWorkitemId(pInstanceWorkitemsId); // Add the request for approval allReq.add(req2); } Approval.ProcessResult[] result2 = Approval.process(allReq);