学习目标
完成本单元后,您将能够:
- 描述可以使用流程和流程自动化的业务流程。
- 定义流量变量是什么。
- 建立一个迭代一组记录的流程。
- 建立一个启动流程的流程。
当进程生成器不够时
Process Builder没有设计用于解决所有可能的用例,因此您可能会发现它可以自动化部分业务流程,但不是全部。例如,Process Builder不能:
- 发布到社区Feed
- 提交相关记录以供审批
- 删除记录
- 创建一堆记录并将它们相互关联
- 执行复杂的逻辑
商品新闻:您不必在另一个工具中重建整个事物。配置流程中更复杂的功能,然后将流程操作添加到流程中。如果一个流程也无法满足您的需求,您或开发人员可以编写Apex来完成。然后将Apex操作添加到您的流程中。
克隆子记录
您被要求在机会闭幕时自动创建续约机会。更新应该是原始机会的克隆。我们可以在Process Builder中克隆记录,但我们也需要克隆产品并将它们与续订机会相关联。
在Process Builder中,您无法获取创建的记录的ID并在别处使用它。幸运的是,你可以在流程中这样做。我们建立一个克隆机会及其产品的流程,并且我们建立一个流程,在机会关闭时调用流程。
超越基础
在最后一个单元中,我们讨论了通过屏幕引导用户完成业务流程的流程。我们称之为屏幕流。您也可以构建自动启动的流程,这些流程像流程一样在后台运行。主要区别在于自动启动的流程不能具有需要用户交互的屏幕。因为它们没有屏幕,所以可以从后端事件(如进程和Apex类)调用自动启动的流。
建立一个Process Builder
在Closed Won Opportunities过程中,使用此过滤条件添加名为Closed Won的标准节点。
字段 | 值 |
---|---|
Opportunity > Stage | Closed Won |
我们无法在Process Builder中配置操作,因此我们保存并切换到Cloud Flow Designer。
建立一个Flow
我们正在建立一个流程:
- 克隆一个机会
- 克隆机会产品
- 将克隆产品与克隆机会联系起来
为此,流程需要来自流程的一些数据:原始机会和机会产品。
流量变量有四种类型。
类型 | 可以存储… | 例 |
---|---|---|
变量 | 单一的价值 | “Hello World”, true, 6 |
sObject 变量 | 单个记录的一组字段值 | Rating, ID, and Name for an account |
Collection 变量 | 相同数据类型的多个值 | [1, 2, 3, 5, 8, 13] |
sObject 集合变量 | 多个具有相同对象的记录的一组字段值 | Rating, ID, and Name为多个帐户 |
为了存储商机和商机,我们创建了一个sObject变量和一个sObject集合变量。当我们稍后将流程作为流程添加为流程时,我们会将数据传递到这些变量中,因此它们必须允许输入访问。
- 在资源选项卡上,双击sObject Variable并设置这些值。
Unique Name opportunity Input/Output Type Input Only Object Type Opportunity - 双击sObject Collection Variable并设置这些值。
Unique Name oppProductsOriginal Input/Output Type Input Only Object Type OpportunityLineItem
克隆机会
- 从Palette选项卡中,将Assignment元素拖到画布上。
- 将其命名为 Update Opportunity 字段。
- 将stage设置为Prospecting.
- 对于变量,选择 .
- 对于运算符,请选择 equals.
- 对于Value,选择 .
- 从今天开始设置 CloseDate 从90天开始。
- 点击 Add Assignment.
- 对于变量,输入Close并选择 .
- 对于 Operator, 符,请选择 equals.
- 对于 Value, 选择
设置这些值。
Unique Name ninetyDays Value Data Type Date textbox TODAY() + 90
- 单击 OK 两次。
- 要创建机会,请将快速创建元素拖放到画布上并设置这些值。
Name Clone Opportunity Variable SOBJECT VARIABLES > opportunity - 单击“更新机会字段”底部的节点,并将其拖至“克隆机会”。
机会创建后,该变量({!opportunity.Id})中的ID字段将填充新记录的ID。我们稍后参考该价值将新产品与更新机会联系起来。
克隆机会产品
当流程被流程调用时,{!oppProducts_Original}变量将包含来自原始商机产品的字段。在我们克隆这些产品之前,我们需要将它们与更新机会相关联,而不是原始产品,并将每种产品的总价格设置为空。 (机会产品不能同时拥有单价和总价。)
更新集合中项目的唯一方法是使用循环遍历集合。
循环一次只能引用一个项目。因为sObject集合变量存储多个项目,所以您需要一种方法来引用给定的项目。循环变量是循环遍历集合时使用的变量。当循环开始时,集合变量中的第一项被复制到循环变量中。循环内的任何元素将作用于循环变量。一旦迭代结束,循环变量将被下一个项目的值覆盖。等到收集中没有剩下物品时为止。
收集项目被复制到循环变量中。循环变量数据被更新,然后被复制以在另一个集合中创建一个新项目。循环变量然后由原始集合中的下一个项目的副本更新。
- 将Loop元素拖放到画布上,并设置这些值。
- 将其命名为 Iterate Over Products.
- 为了循环,选择
.此选项告诉循环将项目分配给循环变量时迭代哪个集合。
- 对于循环变量,使用这些值创建一个sObject变量,然后单击OK两次。
Unique Name oppProduct_loop Object Type OpportunityLineItem
- 将克隆机会连接到循环。
- 将循环变量的机会标识设置为新机会的标识及其总价格为空。
- 将Assignment元素拖到画布上。
- 将其命名为 Update Opportunity Product.
- 点击 Add Assignment, 然后配置这些分配。
Variable Operator Value SOBJECT VARIABLES > oppProduct_loop > OpportunityId equals SOBJECT VARIABLES > opportunity > Id SOBJECT VARIABLES > oppProduct_loop > TotalPrice equals Leave blank - 点击 OK.
- 将循环连接到更新机会产品。验证集合中的每个值都设置为 for each value in the collection.
- 将更新后的循环变量添加到新的sObject集合变量中。
- 将另一个Assignment元素拖到画布上。
- 将其命名为 Add to New Collection.
- 对于变量,使用这些值创建一个sObject collection variable,然后单击OK。
Unique Name oppProducts_new Object Type OpportunityLineItem - 对于 Operator, 选择 add.
- 对于 Value, 选择 .
- 点击 OK.
- 连接更新机会产品以添加到新集合。然后将添加到新集合连接到循环。
- 要克隆商机产品,请将Fast Create元素拖放到画布上并设置这些值。
Name Clone Products Variable SOBJECT COLLECTION VARIABLES > oppProducts_new - 将环路连接到克隆产品。
完成流程
- 将鼠标悬停在“更新商机字段”的右上角,然后点击 设置开始元素.
- 保存流程,并将其命名为Renew Opportunity.
关闭Cloud Flow Designer,并激活流程,以便在Process Builder中引用它。
完成过程
- 打开 Closed Won Opportunities 流程.
- 在Closed Won 条件组中,添加类型为Flows且名称为Create Renewal的即时操作。
- 对于流,请选择续 Renew Opportunity.
- 在设置流量变量下,添加两行,设置这些值,然后单击Save.
Variable Type Value opportunity Field Reference Select the Opportunity record that started the process oppProducts_original Field Reference Opportunity > OpportunityLineItems - 确保始终评估两个标准节点。
当赢得一个机会时,应该始终创建更新。 但是,如果机会也很高,我们需要确保签订合同草案和后续任务。
- 拖动Closed Won和High Value之上的Closed Won标准节点。
- 对于Closed Won条件组,请单击STOP。 选择 Evaluate the next criteria, 然后保存。
要开始使用该过程,请激活它。
资源
- Salesforce帮助: Working with Salesforce Records in Flow
- Trailhead项目: Build an Account Reassignment Wizard
- Trailhead项目: Build a Workshop Management System
- Salesforce帮助: Sample Flow That Loops Through a Collection