一种半抛弃标准批准过程的设计方案
为何要半抛弃标准批准过程
-
Salesforce提供的批准步骤中,可指定的审批人非常有限。
在标准的步骤中,可以指定的批准人要么是指定用户、队列或者相关人。在批准过程所需要的批准人是动态且不断变化的情况下,标准的过程显得非常薄弱,无法满足需求。
-
标准批准页面所含信息很少。
在批准页面布局上显示的字段非常有限,且无法展示相关记录的信息,在待批准记录十分复杂、相关记录的信息也同样重要的时候,标准批准页面无法满足显示所有信息的需要。
-
人多时间多。
就是不想完全用标准功能,就喜欢定制批准过程。(此条开玩笑,请勿对号入座)
如果你的项目中有以上的痛点,可以接着往下看我们是怎么解决这些问题的,如果没有,可以退出这篇博文了。(或者想看看我们的设计方案也随你)
该方案的特性
优点
- 可以直接在记录页面上点击审批、拒绝、撤回、申请审批等按钮实现操作。不需要多次点击跳转。
- 可实现全面动态设置审批人,可以设置任何你需要设置的审批人。
- 仍然半使用标准批准过程,进入批准过程、最终拒绝、最终承认等动作的设置仍然可用。
- 可自定义化批准过程中的通知(Salesforce Lightning消息推送、邮件通知等)。
缺点
- 根据予定审批人数量、予定审批最多步骤不同,所需要的用户账号数量不同。
- 后台批准过程Metadata设置时间花费久。一旦决定全站使用此定制版的批准过程,需要对所有需要批准的对象作出相应的设置。
- 自定义开发所用时间花费久。由于有一定的代码量,因此比标准批准过程需要多余的代码开发花费。
方案大纲
动态分配审批人
审批节点介绍
在Salesforce的批准过程架构中,每一个批准过程(ProcessNode)都有1个或N个批准步骤(ProcessStep),进入每一个批准步骤之后,都会产生1个或N个批准项目(ProcessWorkItem)。要设置每一个步骤的审批人(们),我们需要从ProcessWorkItem下手。
重新分配审批人
ProcessWorkItem记录无法新建(Insert)、删除(Deleteÿ