Salesforce 如何设置审批流程中所有步骤的审批人?

Salesforce 如何设置审批流程中所有步骤的审批人?,salesforce,apex-code,Salesforce,Apex Code,我有一个包含三个步骤的审批流程,所有步骤都设置为分配审批人=手动选择。当用户提交记录以供批准时,我想让Apex代码确定这三个批准者是谁。但是,我看不到一种方法可以连接到approve请求提交中 如果我使用approval.process()通过Apex提交审批,我可以使用ProcessSubmitRequest.setNextApproverIds()设置初始(且仅初始)审批人。此调用使您相信可以指定多个审批人,因为它需要一个ID数组,但该数组只能有1个元素,否则会发生错误 一旦我知道第一个审批

我有一个包含三个步骤的审批流程,所有步骤都设置为分配审批人=手动选择。当用户提交记录以供批准时,我想让Apex代码确定这三个批准者是谁。但是,我看不到一种方法可以连接到approve请求提交中

如果我使用
approval.process()
通过Apex提交审批,我可以使用
ProcessSubmitRequest.setNextApproverIds()
设置初始(且仅初始)审批人。此调用使您相信可以指定多个审批人,因为它需要一个ID数组,但该数组只能有1个元素,否则会发生错误

一旦我知道第一个审批人的响应是什么,我就可以使用Apex提交她的响应,并再次通过将
ProcessWorkitemRequest
实例传递到
Approval.process()
来设置下一个审批人。这里需要注意的一点是,审批人不得通过标准UI进行审批。相反,他们必须做一些调用Apex代码的事情,以便我们可以设置下一个approve应该是谁。可以使用审查对象上的触发器或自定义按钮+VF页面来调用Apex


我的主要问题是,如何确保用户不使用标准审批按钮?它们出现在批准相关列表和salesforce主屏幕上。它可能也在其他地方。同样,如果他们使用标准的“提交”和“批准”按钮,我没有办法设置下一个批准者。

我们不久前遇到了一个类似的问题,通过为某些用户创建自定义查找字段解决了这个问题。例如,如果我们想将批准请求路由到一个主管,然后是一个副总裁,我们将Director_uuc和MarketVP_uuuc字段添加到对象中。每当提交请求时,通过爬升角色层次结构在代码中填充这些字段。然后,我们的审批流程步骤根据这些字段中的值选择受让人(第一步将分配给相关用户:董事,第二步将分配给相关用户:市场副总裁等)

为了绕过标准的审批按钮问题(我们隐藏它还有其他原因),我们只是从他们的主页布局中隐藏了它,并构建了我们自己的VF页面,并将其包含在自定义主页组件中。此组件用作收件箱,其中包含指向等待用户批准的任何记录的链接。所有用户和审批对象的交互都是通过其他VF页面处理的,这些页面有自己的“批准”和“拒绝”按钮。我不知道您提交给审批流程的对象是否使用VF页面,因此这对于您的情况可能不可行

我知道,很多不需要的东西都需要定制。也许这不是你想要的答案,但希望这是值得思考的东西