字段历史追踪的高级版本

 

Salesforce字段历史追踪是一个非常好的内置功能,但是它并不能总是满足业务需求并在报表中显示历史数据的...



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.当一个或多个字段更新后,一次性捕获所有的字段。

我选择了第一个,不管我们有多少字段更改了,Process Builder可以更简单的在未来添加或移除字段。下面是具体的操作流程

1.在Lightning Experience,在设置主页中点击齿轮标识。



2. 在平台工具中,点击Process Automation | Process Builder.



3.在Process Builder的右上角点击新建,创建一个新的流程并填写名字和描述。点击保存。



4.选择需要触发流程的对象。在本例中,我们选择业务机会。因为我希望每当这些字段更新后就会创建一个新的业务机会字段历史记录,所以我将选择在记录创建或编辑的时候触发流程。点击保存。



5.下一步是输入条件。这里是什么情况下去执行创建一个新的业务机会字段历史记录的条件。在下途中,我选择了当条件满足的时候触发,所以只有当条件为真的时候才会触发这个流程。



在设置条件区域,已经设置了相应的一条件。业务的需求是无论哪个字段更新都将所有字段的值捕获过来。所以,我录入的条件希望能看到Opportunity Amount, Opportunity Close Date或者Opportunity Stage 是否已经更新。

在条件区域(截图的最下面),我将会选择Any of the conditions are met (OR) ,这意味着只要这三个条件中的一条被满足就将执行这个事件。点击保存继续。

6.在Immediate Actions 区域点击+ Action并在事件类型中选择Create a Record

7.给Action起一个名字,对于记录类型,选择新创建的叫Opportunity Field History的自定义对象。在这是为了当条件满足的时候能创建一个新的业务机会字段历史记录。

8. 现在开始创建字段映射。这个步骤很简单。我将会使用公式去填充大部分的业务机会历史记录的值。为了捕获这些字段的历史值,我们会用一个叫PRIORVALUE()。这个公式很简单格式如下:

PRIORVALUE(FIELD_NAME__C)
确保是使用Insert field按钮去填充此字段。在Process Builder的API的名字和工作流略有不同。

对于Stage New以及Stage Previous有些不同。因为我们将下拉值转换为文本。下面是特定的字段公式的样子。

TEXT(PRIORVALUE([Opportunity].StageName ) )当所有的字段都映射后,保存事件。下面是Process Builder步骤完成后的样子。


9.点击Activate来启用新的流程并对其进行测试。



最后总结下,标准的字段追踪报表可以满足80%的企业,但是有时利用客制化化的方案还是需要的。利用Process Builder以及自定义对象是监控任何对象上字段变化的非常简单有效的方案。


    关注 Salesforce知识


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册