// Get the Process Instance
for (ProcessInstance pi : [
SELECT Id, TargetObjectId,
(
SELECT Comments
FROM Steps
WHERE StepStatus IN ('Rejected', 'Approved')
)
FROM ProcessInstance
WHERE TargetObjectId IN :idListOfRecordsInApproval
]) {
// Some of your custom logic, for example, collect the comments
for (ProcessInstanceStep step : pi.Steps) {
recordIdToCommentsMap.put(pi.TargetObjectId, step.Comments);
}
}
// Apex approve
BonusRequestApprovalValidate.isApproveInOmniPeople = true;
String actionName = 'Approve';
String commentForThisRecord = 'some comments';
List<Id> recordIdListToHandle = new List<Id> {'some record id'};
ProcessInstanceWorkitem[] pendingWorkItemList = [
SELECT Id, ProcessInstance.TargetObjectId
FROM ProcessInstanceWorkItem
WHERE ProcessInstance.TargetObjectId IN :recordIdListToHandle AND ProcessInstance.Status = 'Pending'
];
List<Approval.ProcessWorkitemRequest> requestList = new List<Approval.ProcessWorkitemRequest>();
for (ProcessInstanceWorkitem workItem : pendingWorkItemList) {
//Create Process Work Item Request
Approval.ProcessWorkItemRequest pwiRequest = new Approval.ProcessWorkItemRequest();
pwiRequest.setAction(actionName);
pwiRequest.setComments(commentForThisRecord);
pwiRequest.setWorkItemId(workItem.Id);
requestList.add(pwiRequest);
}
Approval.ProcessResult[] result2 = Approval.process(requestList);
一段关于approval的代码,留存
于 2021-07-23 16:37:32 首次发布