如何将审批流程中的下一个审批人指定为Salesforce中记录的所有者?

如何将审批流程中的下一个审批人指定为Salesforce中记录的所有者?,salesforce,Salesforce,至少有2个审批人按顺序审批记录。我希望在提交记录供审批时,所有者被指定为第一审批人,然后在第一审批人审批记录时,所有者被指定为第二审批人,依此类推 分配给第一个审批人的代码如下所示: if(reg.OwnerId != reg.Approver_1__c) reg.OwnerId = reg.Approver_1__c; 如何将所有者设置为审批流程中的下一个审批人?您可以创建一个审批人列表,其中包含您希望成为审批人的人的ID,如下所示: List

至少有2个审批人按顺序审批记录。我希望在提交记录供审批时,所有者被指定为第一审批人,然后在第一审批人审批记录时,所有者被指定为第二审批人,依此类推

分配给第一个审批人的代码如下所示:

           if(reg.OwnerId != reg.Approver_1__c)
             reg.OwnerId = reg.Approver_1__c;

如何将所有者设置为审批流程中的下一个审批人?

您可以创建一个审批人列表,其中包含您希望成为审批人的人的ID,如下所示:

List<Id> approvers = new List<Id>();
approvers.add(Owner.Id);
approvers.add(Whoever_is_next_ID);
然后将该列表设置为审批流程的下一个审批人

List<Approval.ProcessSubmitRequest> requests = new 
List<Approval.ProcessSubmitRequest>();

        for (Id approverId : approvers) {
            Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();

            req.setComments('Approving _____...');
            req.setObjectId(yourObject to approve ID);
            req.setNextApproverIds(new List<Id>{approverId});

            requests.add(req);
        }

希望这是有用的

请考虑清楚地重申。特别是你的头衔。你把大写字母和小写字母随意混合在一起。此外,你所要求的是含糊不清的。根据您所写的内容,您是说当前拥有该项目的人在提交时应被指定为第一个审批人,然后所有者应再次成为第二个审批人。。。我想你的意思是,你希望第一个审批人是所有者,然后第二个审批人是所有者。。这就是当前需要采取行动的人是记录的所有者。感谢您在这方面的帮助。但我的问题是,我想将批准者标记为该记录的所有者。我已经有了详细记录的批准人。下一个审批人应该是记录的所有者。我试图在对象触发器上执行此操作。这是一种工作。但记录一经批准,所有者就不会立即更新。只有当记录因更新前触发而更新时,才会更新它。在批准后的操作中,是否可以将字段更改操作添加到记录中,该操作是否算作记录的更新?…因此,我创建了一个名为“上次批准日期”的自定义字段,并将其添加到批准操作中的字段更改中。我使用该字段来触发所有者更新。我过去常常把actorId分配给它的所有者。我使用了这个查询-List PworkItem=[从ProcessInstanceWorkitem中选择ProcessInstance.Status、ProcessInstance.TargetObjectId、ActorId,其中ProcessInstance.Status='Pending'和ProcessInstance.TargetObjectId位于:List];但这是将其分配给前一个审批人,而不是下一个审批人。我知道字段更新和触发器发生在同一个操作中,因此它将获取旧值。