2

我创建了一个审批流程,并从自定义按钮后面的 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 代码中设置审批者呢?任何帮助,将不胜感激。

4

0 回答 0