Salesforce字段历史追踪是一个非常好的内置功能,但是它并不能总是满足业务需求,在报表中显示历史数据的时候也不是很灵活。例如在业务机会的历史追踪报表中,根据阶段的变化,监控业务机会在销售管道中移动和改变是一个非常大的挑战。
幸好我们有Process Builder,系统管理员有能力创建它们自己的自定义解决方案去满足业务需求。
更好的字段历史追踪
这是我遇到的问题场景:因为合规的原因,企业需要跟踪业务机会上的一些字段,能够追踪字段现在和历史的值,并能够知道是谁在什么时间进行了更改。这些信息需要非常容易的在报表中显示给合规部门。另外,业务希望利用历史跟踪功能用更合理的方式跟踪业务机会阶段的持续时间。
解决方案非常简单,但是需求几个组件:
· 一个新的自定义对象
· 在新的对象上的自定义字段
· Process Builder流程
当一个字段更新后,自定义对象将存储在Process Builder创建的历史记录。结果就是,一个新的记录将会被创建也会计算到数据存储限制中。所以请注意这个方案可能并不适合所有的企业。
1. 创建自定义对象
一开始,我们需要创建一个自定义对象并将之关联到我们希望跟踪的历史的对象下。我们在这里关联到业务机会中。新的自定义对象叫Opportunity Field History并会以Master-Detail的关系关联到业务机会下。
2.创建自定义字段
业务希望能够跟踪Amount,Stage以及Close Date的历史和当前的值以及谁什么时间对记录进行了修改。为了适应此请求,我们会创建如下的字段:
· Amount New (Currency)
· Amount Previous (Currency)
· Stage New (Text)
· Stage Previous (Text)
· Close Date New (Date)
· Close Date Previous (Date)
· Opportunity (Master-Detail)
因为我们希望能够非常容易的去跟踪字段之前的值,所以对应每一个字段我们都需要创建两个字段来跟踪。因为当用户更改记录的时候会触发Process Builder,在业务机会字段历史对象中的Created by字段将会记录更新业务机会记录的用户信息,所以无需再创建一个自定义的字段去捕获此信息
我选择Master-Detail是因为我希望在删除业务机会的时候也将关联的业务机会的字段历史记录删除。Lookup关系没有此功能。新的Stage字段是text的是因为我不需要重新创建选项列表值而且如果用使用选项列表值的话后续需要不断更新下拉列表值。
好,现字段已经创建了,是时候去创建Process Builder流程了。
3.创建Process Builder的流程
Process Builder是系统管理员的非常好的资源。使用Process Builder而不是Workflow rule是因为Process Builder可以自动创建记录。之前要实现此功能只有开发人员通过Apex Trigger才可以进行操作。
为了让新的业务机会字段历史记录被创建,我们需要知道逻辑并知道应该捕获哪些字段值。有两种路径我们可以考虑:
1.只捕获那些被更新的字段
2.当一个或多个字段更新后,一次性捕获所有的字段。
标准的字段追踪报表可以满足80%的企业,但是有时利用客制化化的方案还是需要的。利用Process Builder以及自定义对象是监控任何对象上字段变化的非常简单有效的方案。
文章转载自网络
文章来源:赛思互动(www.salesplus.com.cn)