我创建了一个审批流程,并从自定义按钮后面的 Apex 代码启动它。这工作正常,但我面临的问题是我无法从 Apex 代码设置批准者。它始终采用在审批流程中设置的审批者。
这是我的代码:
Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
req.setComments('Submitted for approval. Please approve. Source:ApexClass');
req.setObjectId(dcr.Id);
req.setNextApproverIds(new Id[] {'0057E000001dn5T'}); // This is the id of a user
Approval.ProcessResult result = Approval.process(req);
这会提交记录以供审批,但会将其发送给在审批流程中设置的审批者,而不是发送给代码中设置的 ID 为“0057E000001dn5T”的用户
我还尝试通过从上面的代码更改以下行
req.setNextApproverIds(new Id[] {'0057E000001dn5T'});
至
List<Id> approverIdList = new List<Id>();
Id approverId = [SELECT DCR_Send_to_Approver_AGN__c FROM User
WHERE Id = :UserInfo.getUserId()].DCR_Send_to_Approver_AGN__c;
approverIdList.add(approverId);
req.setNextApproverIds(approverIdList);
和
list<string> approverIdList = new list<string>();
group g = [SELECT (select userOrGroupId from groupMembers) FROM group
WHERE name= 'testUserGroup'];
for (GroupMember gm : g.groupMembers) {
approverIdList.add(gm.userOrGroupId);
}
req.setNextApproverIds(approverIdList);
...但没有任何效果。
那么如何从 Apex 代码中设置审批者呢?任何帮助,将不胜感激。