我有一个包含三个步骤的审批流程,所有这些步骤都设置为分配的审批者 = 手动选择。当用户提交记录以供批准时,我想让 Apex 代码确定三个批准者是谁。但是,我看不到一种方法可以连接到批准请求提交。
如果我使用 Apex Using 提交批准Approval.process()
,我可以使用 设置初始(并且只有初始)批准者ProcessSubmitRequest.setNextApproverIds()
。此调用使您相信您可以指定多个批准者,因为它需要一个 Id 数组,但该数组只能有 1 个元素,否则运行时会发生错误。
一旦我知道第一个审批者的响应是什么,我就可以使用 Apex 提交她的响应,然后再次通过将ProcessWorkitemRequest
实例传递给Approval.process()
. 这里需要注意的是,审批者不得通过标准 UI 进行审批。相反,他们必须执行一些调用 Apex 代码的操作,以便我们可以设置下一个批准人。审查对象上的触发器或自定义按钮 + VF 页面可用于调用 Apex。
我的主要问题是,如何确保用户不使用标准的批准按钮?它们出现在 Approvals 相关列表和 salesforce 主屏幕上。它也可能在其他地方。同样,如果他们使用标准的提交和批准按钮,我没有任何方法可以设置下一个批准者。