闪电流(5)Approvals

学习目标

完成本单元后,您将能够:

  • 定义审批流程,并列出其关键组件。
  • 描述可以使用审批流程自动执行的业务流程。
  • 设置审批流程,以便在账户从潜在客户变为新客户时自动进行管理。

开始使用审批

审批流程可自动完成Salesforce记录在您的组织中的批准情况。在批准过程中,您指定:

  • 记录被批准的必要步骤以及每个步骤批准的步骤。
    例如,员工创建暂停请求时,Salesforce会自动向该员工的经理发送批准请求。
  • 根据审批过程中发生的情况采取的行动。

    例如,如果批准了暂停请求,则更新员工记录中的字段。但是,如果请求被拒绝,则向员工发送通知。

    让我们来看一个示例审批流程,以查看记录如何在流程的各个步骤中移动。在这个例子中,用户提交一个公司新职位的请求。

Chart that shows an example approval process

当用户首次请求批准新职位时,会发生初始提交操作。默认的初始提交操作会锁定记录。此操作可确保其他用户(审批者和管理员除外)在审批时不能更改记录。其他可能的提交操作包括发送电子邮件提醒,更新记录中的字段,创建任务以及发送出站邮件。

审批步骤为各种用户分配审批请求,并为特定审批流程定义审批链。在本例中,第一步将批准请求分配给提交者的直接经理。

如果直接经理拒绝该请求,则执行最终拒绝操作,将该职位的批准状态设置为 Rejected.

如果直接经理批准该请求,该记录将转至CEO的下一步批准。如果CEO拒绝该职位,则会发生相同的最终拒绝行为。

如果首席执行官批准该职位,则会执行最终审批行动。他们将审批状态设置为Approved,解锁未来更新记录,并通知要求新职位的员工。

最终审批行动仅在记录获得批准并且没有进一步审批步骤时才会发生。

建立审批流程

现在我们已经看到了审批流程的基本概述,让我们拭目以待。您需要确保经理批准折扣超过40%的机会。该机会应反映其批准状态:已批准或未批准。

提示

在尝试将其自动化之前,计划您的业务流程。这样做使得使用我们的一个自动化工具进行配置变得更容易。

预案

在我们深入之前,让我们制定一个计划。

为了… 我们需要…
跟踪每个机会的折扣百分比 自定义字段(机会)
跟踪每个机会的审批状态 自定义字段(机会)
当机会折扣超过40%时请求经理批准 审批流程(机会)
当机会折扣需要批准时通知经理 电子邮件模板
当经理回应时,更新机会的审批状态 批准操作(现场更新)

提示

为了应对这一挑战,我们正在简化这种情况。在现实世界中,可以在机会产品上使用标准折扣字段,然后使用汇总摘要字段将该值添加到商机记录中。

创建电子邮件模板

我们首先创建我们的电子邮件模板,以便我们可以通知记录所有者的经理有机会超过40%的折扣。

  1. 从设置中,在快速查找框中输入模板,然后选择 Email Templates.
  2. 点击 New Template.
  3. 选择 Text 模板类型,然后单击 Next.
  4. 配置电子邮件模板。
    文件夹 未公开的公共电子邮件模板
    可供使用 Selected
    电子邮件模板名称 Approve Opportunity Discount
    编码 General US & Western Europe
    Subject Please approve this discounted opportunity
    Email Body
    {!User.Manager},
    The {!Opportunity.Name} has been discounted. Please approve this discount.
    Thank you.

    包括合并字段{!Opportunity.Name}通过提供机会记录的链接来帮助审批者。这允许他们在回应请求之前查看记录。

  5. 点击 Save.

添加自定义字段

现在让我们创建自定义字段,以便我们可以跟踪每个商机的折扣百分比和审批状态。

  1. 从安装程序中单击 Object Manager.
  2. 点击 Opportunity.
  3. 用这些值添加百分比字段。
    Field Label Discount Percent
    Length Leave default
    Decimal Places Leave default
    Required Selected
  4. 用这些值添加一个选项列表字段。
    Field Label Discount Percent Status
    Picklist Values Approved

    Not Approved

Great! 您已经创建了一个电子邮件模板来通知审批者,并且您已经设置了一个包含必填字段的对象来支持您的审批流程。

创建审批流程

现在我们的组织已经准备就绪,让我们来创建审批流程。
  1. 从设置中,在快速查找框中输入审批,然后选择 Approval Processes.
  2. 对于“管理审批流程”,请选择 Opportunity.
  3. 点击 Create New Approval Process | Use Jump Start Wizard.
    跳转启动向导通过为您做出一些决定来帮助您创建简单的审批流程。
  4. 配置审批流程。
    名称 Approve Opportunity Discount
    审批分配电子邮件模板 Approve Opportunity Discount
    指定进入Criteria Opportunity: Discount Percent greater than 0.4
    选择 Approver Let the submitter choose the approver manually
  5. 保存审批流程。
  6. 在最终批准操作下,单击 Add New | Field Update, 并使用这些值进行配置。
    Name Approved
    Field to Update Discount Percent Status
    Specific value Approved
  7. 在最终拒绝操作下,单击 Add New | Field Update, 并使用这些值进行配置。
    Name Not Approved
    Field to Update Discount Percent Status
    Specific value Not Approved

做得好!要开始评估打折机会,只需激活审批流程即可。

确保提交记录

您已经完成了一系列工作来自动化记录提交审批时发生的情况。现在,当用户单击提交审批机会时,它将通过您的审批流程。但是,如果恐怖用户忘记点击按钮怎么办?

进入Process Builder。其中一个可用的流程操作是提交审批,这意味着您可以构建一个自动提交记录以供审批的流程。这意味着您的用户不必记得提交审批机会。例如,在机会创建或编辑时运行的进程中:

  1. 添加一个标准节点,用于检查折扣百分比是否大于0.4。
  2. 为提交审批机会的审批操作添加提交。
    A Submit for Approval action

提示

提交审批操作也可在Cloud Flow Designer中使用。

告诉我更多…

将项目批准组件添加到他们的主页,以帮助您的用户查看公开审批请求。此外,让用户直接从电子邮件或Chatter响应审批请求。有关更多详细信息,请参阅准备您的组织以获取批准

资源

闪电流(4)结合Process Builder和Cloud Flow Designer

学习目标

完成本单元后,您将能够:

  • 描述可以使用流程和流程自动化的业务流程。
  • 定义流量变量是什么。
  • 建立一个迭代一组记录的流程。
  • 建立一个启动流程的流程。

当进程生成器不够时

Process Builder没有设计用于解决所有可能的用例,因此您可能会发现它可以自动化部分业务流程,但不是全部。例如,Process Builder不能:

  • 发布到社区Feed
  • 提交相关记录以供审批
  • 删除记录
  • 创建一堆记录并将它们相互关联
  • 执行复杂的逻辑

商品新闻:您不必在另一个工具中重建整个事物。配置流程中更复杂的功能,然后将流程操作添加到流程中。如果一个流程也无法满足您的需求,您或开发人员可以编写Apex来完成。然后将Apex操作添加到您的流程中。

克隆子记录

您被要求在机会闭幕时自动创建续约机会。更新应该是原始机会的克隆。我们可以在Process Builder中克隆记录,但我们也需要克隆产品并将它们与续订机会相关联。

在Process Builder中,您无法获取创建的记录的ID并在别处使用它。幸运的是,你可以在流程中这样做。我们建立一个克隆机会及其产品的流程,并且我们建立一个流程,在机会关闭时调用流程。

超越基础

在最后一个单元中,我们讨论了通过屏幕引导用户完成业务流程的流程。我们称之为屏幕流。您也可以构建自动启动的流程,这些流程像流程一样在后台运行。主要区别在于自动启动的流程不能具有需要用户交互的屏幕。因为它们没有屏幕,所以可以从后端事件(如进程和Apex类)调用自动启动的流。

建立一个Process Builder

我们不要创建另一个流程,而要建立在我们之前创建的那个流程上。

The Closed Won Opportunities process from an earlier unit

在Closed Won Opportunities过程中,使用此过滤条件添加名为Closed Won的标准节点。

字段
Opportunity > Stage Closed Won

我们无法在Process Builder中配置操作,因此我们保存并切换到Cloud Flow Designer。

建立一个Flow

从设置中,在快速查找框中输入流量,然后选择Flows,然后单击New 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集合变量。当我们稍后将流程作为流程添加为流程时,我们会将数据传递到这些变量中,因此它们必须允许输入访问。

  1. 在资源选项卡上,双击sObject Variable并设置这些值。
    Unique Name opportunity
    Input/Output Type Input Only
    Object Type Opportunity
  2. 双击sObject Collection Variable并设置这些值。
    Unique Name oppProductsOriginal
    Input/Output Type Input Only
    Object Type OpportunityLineItem

克隆机会

当流程被流程调用时,{!opportunity}变量将包含来自原始机会的字段。在我们克隆这个机会之前,让我们更新一些领域。这样,续约机会不会以闭合起点开始。
  1. 从Palette选项卡中,将Assignment元素拖到画布上。
  2. 将其命名为 Update Opportunity 字段。
  3. 将stage设置为Prospecting.
    1. 对于变量,选择 SOBJECT VARIABLES | opportunity | StageName.
    2. 对于运算符,请选择 equals.
    3. 对于Value,选择 PICKLIST VALUES | Prospecting.
  4. 从今天开始设置 CloseDate 从90天开始。
    1. 点击 Add Assignment.
    2. 对于变量,输入Close并选择 SOBJECT VARIABLES | opportunity | CloseDate.
    3. 对于 Operator, 符,请选择 equals.
    4. 对于 Value, 选择 CREATE NEW | Formula 设置这些值。
      Unique Name ninetyDays
      Value Data Type Date
      textbox TODAY() + 90
  5. 单击 OK 两次。
  6. 要创建机会,请将快速创建元素拖放到画布上并设置这些值。
    Name Clone Opportunity
    Variable SOBJECT VARIABLES > opportunity
  7. 单击“更新机会字段”底部的节点,并将其拖至“克隆机会”。

机会创建后,该变量({!opportunity.Id})中的ID字段将填充新记录的ID。我们稍后参考该价值将新产品与更新机会联系起来。

克隆机会产品

现在来了有趣的部分:克隆机会产品。
当流程被流程调用时,{!oppProducts_Original}变量将包含来自原始商机产品的字段。在我们克隆这些产品之前,我们需要将它们与更新机会相关联,而不是原始产品,并将每种产品的总价格设置为空。 (机会产品不能同时拥有单价和总价。)

更新集合中项目的唯一方法是使用循环遍历集合。

循环一次只能引用一个项目。因为sObject集合变量存储多个项目,所以您需要一种方法来引用给定的项目。循环变量是循环遍历集合时使用的变量。当循环开始时,集合变量中的第一项被复制到循环变量中。循环内的任何元素将作用于循环变量。一旦迭代结束,循环变量将被下一个项目的值覆盖。等到收集中没有剩下物品时为止。

收集项目被复制到循环变量中。循环变量数据被更新,然后被复制以在另一个集合中创建一个新项目。循环变量然后由原始集合中的下一个项目的副本更新。

A collection item is copied into a loop variable. The loop variable data is updated and then copied to create a new item in another collection. The loop variable is then updated by a copy of the next item in the original collection.

提示

  • 要更新循环内的项目字段值,请更新循环变量。然后,在该项目的迭代完成之前,将循环变量作为另一个集合变量中的项目添加。否则,当下一个项目加载到循环变量中时,这些更改将被覆盖。
  • 避免在循环内添加动作,如创建或更新记录。这是达到极限的绝对方法。
    在循环中,我们更新每个项目的商机ID和总价格,然后将该项目添加到新的收集变量中。循环之后,我们使用新的收集变量来创建机会产品。
  1. 将Loop元素拖放到画布上,并设置这些值。
    1. 将其命名为 Iterate Over Products.
    2. 为了循环,选择 SOBJECT COLLECTION VARIABLES | oppProducts_original.
      此选项告诉循环将项目分配给循环变量时迭代哪个集合。
    3. 对于循环变量,使用这些值创建一个sObject变量,然后单击OK两次。 
      Unique Name oppProduct_loop
      Object Type OpportunityLineItem
  2. 将克隆机会连接到循环。
  3. 将循环变量的机会标识设置为新机会的标识及其总价格为空。
    1. 将Assignment元素拖到画布上。
    2. 将其命名为 Update Opportunity Product.
    3. 点击 Add Assignment, 然后配置这些分配。
      Variable Operator Value
      SOBJECT VARIABLES > oppProduct_loop > OpportunityId equals SOBJECT VARIABLES > opportunity > Id
      SOBJECT VARIABLES > oppProduct_loop > TotalPrice equals Leave blank
      Flow assignments that set the loop variable's Opportunity ID and Total Price fields.
    4. 点击 OK.
  4. 将循环连接到更新机会产品。验证集合中的每个值都设置为 for each value in the collection.
  5. 将更新后的循环变量添加到新的sObject集合变量中。
    1. 将另一个Assignment元素拖到画布上。
    2. 将其命名为 Add to New Collection.
    3. 对于变量,使用这些值创建一个sObject collection variable,然后单击OK
      Unique Name oppProducts_new
      Object Type OpportunityLineItem
    4. 对于 Operator, 选择 add.
    5. 对于 Value, 选择 SOBJECT VARIABLES | oppProduct_loop.
    6. 点击 OK.
  6. 连接更新机会产品以添加到新集合。然后将添加到新集合连接到循环。
  7. 要克隆商机产品,请将Fast Create元素拖放到画布上并设置这些值。
    Name Clone Products
    Variable SOBJECT COLLECTION VARIABLES > oppProducts_new
  8. 将环路连接到克隆产品。
The finished flow

完成流程

你快完成了!要完成流程,请指定启动元素并激活流程。
  1. 将鼠标悬停在“更新商机字段”的右上角,然后点击 Set a Start element设置开始元素.
  2. 保存流程,并将其命名为Renew Opportunity.

关闭Cloud Flow Designer,并激活流程,以便在Process Builder中引用它。

完成过程

现在我们已经完成了流程的构建,让我们确保当机会被关闭时流程开始流程。记住我们在流程开始时创建的变量吗?在此过程中,我们使用它们将机会记录及其子项中的值传递给流程。
  1. 打开 Closed Won Opportunities 流程.
  2. 在Closed Won 条件组中,添加类型为Flows且名称为Create Renewal的即时操作。
  3. 对于流,请选择续 Renew Opportunity.
  4. 在设置流量变量下,添加两行,设置这些值,然后单击Save.
    Variable Type Value
    opportunity Field Reference Select the Opportunity record that started the process
    oppProducts_original Field Reference Opportunity > OpportunityLineItems
  5. 确保始终评估两个标准节点。
    当赢得一个机会时,应该始终创建更新。 但是,如果机会也很高,我们需要确保签订合同草案和后续任务。
    1. 拖动Closed Won和High Value之上的Closed Won标准节点。
    2. 对于Closed Won条件组,请单击STOP。 选择 Evaluate the next criteria, 然后保存。

The final process

要开始使用该过程,请激活它。

闪电流(3)Cloud Flow Designer

学习目标

完成本单元后,您将能够:

  • 定义流程并列出其关键组件。
  • 描述流程元素的类型。
  • 构建一个创建记录并上传文件的流程。

Cloud Flow Designer入门

在谈到流程时,您可能已经听到了几个可互换使用的术语。提醒一下,官方条款是:

  • Lightning Flow—包含建立,管理和运行流程和过程的产品。
  • Cloud Flow Designer—用于构建流程的点击式工具。
  • Flow—通过收集数据并在Salesforce org或外部系统中执行某些操作来自动化业务流程的应用程序。

简而言之,Lightning Flow产品包括一些工具。其中之一,Cloud Flow Designer,可帮助您创建流程。

超越基础

您可能也听说过Visual Workflow这个术语。这是一个用于设计,管理和运行流程的退役产品名称。 Visual Workflow已被Lightning Flow取代。

流程构建模块

每个流程都由三个构建块组成。

Elements, connectors, and resources in a flow

  • Elements (1) 出现在画布上。要将一个元素添加到画布,请将其从调色板拖到那里。
  • Connectors (2) 定义流在运行时所采用的路径。他们告诉下一个要执行的元素的流程。
  • Resources (3) 是表示给定值的容器,例如字段值或公式。您可以在整个流程中引用资源。例如,查找客户的ID,将该ID存储在变量中,然后引用该ID来更新客户。

流程元素可以分为四个不同的类别。

屏幕
向用户显示数据或使用屏幕元素从他们那里收集信息。您可以将简单字段添加到屏幕上,例如输入字段和单选按钮,以及开箱即用的Lightning组件,如文件上传。A flow screen that's built with out-of-the-box fields and components

如果您需要更多流量屏幕(如自定义导航或显示数据表中的信息),请构建或安装自定义Lightning组件。
A flow screen built with custom Lightning components.

逻辑
控制……流量,以及流量。创建分支,更新数据,循环数据集或等待特定时间。
操作
当您有必要的信息时(可能通过屏幕从用户收集),在Salesforce中执行某些操作。流可以查找,创建,更新和删除Salesforce记录。他们还可以创建Chatter帖子,提交记录以供审批并发送电子邮件。如果您的操作不可用,请从流程中调用Apex代码。
集成
除了通过调用Apex代码与外部系统连接外,Cloud Flow Designer还有一些平台事件的配合。使用Record Create元素发布平台事件消息。使用Wait元素订阅平台事件。

逛一圈

当您构建流程时,您可以使用Cloud Flow Designer工作。

Screenshot of the Cloud Flow Designer's user interface with numbers pointing at the button bar, left side panel, and canvas
  • 在您从按钮栏(1)构建流程时管理流程。测试流程的最新版本如何与“运行”配合使用。

  • 左侧面板(2)包含三个标签。

    • 调色板包含您可以添加到流程中的所有元素。

    • “资源”选项卡包含可以添加到流中的所有资源。

    • 资源管理器显示您已添加到此流程中的所有元素和资源。

  • 流程图出现在画布上(3)。

建立一个流程

根据您的页面布局,对象可能有很多字段,这可能会压倒想快速创建记录的用户。我们来构建一个简化客户创建的流程。我们的流程获取有关新客户的用户输入,创建客户并让用户将文件上传到该客户。

提示

在尝试将其自动化之前,计划您的业务流程。这样做可以使您在使用我们的自动化工具时更容易进行配置。

从设置中,在快速查找框中输入流量,然后选择Flow,然后单击New Flow.

添加第一个屏幕

  1. 将调色板中的Screen元素拖到画布上。
  2. 将其命名为 New Account.
  3. 在添加字段选项卡上,双击文本框,然后双击数字。选择预览窗格中的每个字段并为每个字段输入一个标签。
    • Textbox: Account Name
    • Number: Phone
    Screenshot of the screen element's Add a Field tab
  4. 点击 OK.

创建记录

使用新客户中的值创建一个客户。
  1. 从Palette中,将Record Create元素拖到画布上。
  2. 将其命名为 Create Account.
  3. 对于创建,请选择 Standard | Account.
  4. 将屏幕输入字段映射到客户字段。
    字段
    Standard | Name Screen Input Fields | Account_Name
    Standard | Phone Screen Input Fields | Phone
  5. 将创建的客户的ID分配给一个变量,以便我们可以在下一个屏幕中使用该ID。
    1. 对于变量,请选择 CREATE NEW | Variable.
    2. 命名变量accountId,然后单击 OK.
    确保你的Record Create元素看起来像这样。Screenshot of the Record Create element's Assignments section
  6. 点击 OK.

创建第二个屏幕

第二个屏幕允许用户上传他们创建的客户的文件。
  1. 将另一个Screen元素拖到画布上。
  2. 在常规信息选项卡上,配置这些设置。
    1. 命名屏幕 Upload Files.
    2. 在导航操作下,取消选中 Allow Previous.
      否则,如果用户导航回第一个屏幕,则会意外创建多个客户。
  3. 在添加字段选项卡上,向下滚动并双击Lightning Component。在预览窗格中选择[Lightning Component]并配置字段。
    1. 对于唯一名称,输入 accountFiles.
    2. 对于Lightning组件,请选择 forceContent:fileUpload.
    3. 在输入选项卡上,配置组件的属性。
      1. 对于文件上传标签,请输入 Upload Related Files.
      2. 对于相关记录 ID, 选择Variables | accountId.
      3. 点击Add Row 并选择 Allow Multiple Files. 对于该值,输入 true并选择$GlobalConstant.True.
    4. 在输出选项卡上,单击垃圾桶图标the trash can icon以删除属性行。
      文件上传组件字段的字段设置
    The field settings for the file upload component field
  4. 点击 OK.

根据配置,该组件允许用户一次向创建的客户上传多个文件。

完成流程

  1. 将元素连接在一起。
    1. 点击新客户底部的节点并将其拖至创建客户。
    2. 点击创建客户底部的节点,并将其拖动到上传文件。
    Connecting Create Account to Upload Files
  2. 要设置开始元素,请将鼠标悬停在新客户的右上角,然后点击The Set Start Element button设置开始元素按钮。
    The New Account element enabled to start the flow.
  3. 保存流程,并将其命名为 Quick Account.
    关闭弹出的警告。接下来我们谈谈Lightning运行时。

让你的流动看起来像闪电

Salesforce提供两种运行时体验,用于确定某人运行流时的外观和感觉。为了让您的流程与Lightning Experience融为一体,请确保在您的组织中启用Lightning运行时。
  1. 从设置中,在快速查找框中输入自动化,然后选择 Process Automation Settings.
  2. 为流选择启用闪电运行时。
  3. 保存您的更改。

注意

此设置仅影响基于URL的流量。其中包括从自定义按钮或Cloud Flow Designer中的运行按钮运行的流程。有关更多详细信息,请参阅Flow Runtime 体验

分配你的流量

现在将流量分发给正确的用户。让我们将流程添加到主页。
要查看更多分配流量的方法,请查看屏幕流量分配模块。

激活你的Flow

在Lightning App Builder中只有活动流程可用,因此首先激活流程。
  1. 从设置中,在快速查找框中输入流量,然后选择 Flows.
  2. 点击 Quick Account.
  3. 激活流程的适当版本。

将您的流添加到主页

  1. 创建一个主页。
    1. 从安装程序中,在快速查找框中输入Builder,然后选择 Lightning App Builder.
    2. 点击 New.
    3. 选择 Home Page, 然后单击 Next.
    4. 为页面命名,然后单击 Next.
    5. 单击 Clone Salesforce Default Page, 选择 Home Page Default, 然后单击 Finish.
  2. 将流组件拖到右列的顶部。
    Dragging the Flow component onto a Home page
  3. 对于流量,选择 Quick Account.
  4. 保存您的更改并激活页面。将此页面标记为默认主页,单击 Next, 然后单击 Activate.
  5. 要查看您的流程,请转至您的主页。
    1. 点击 Back 到安装程序。
    2. 单击 App Launcher icon, 然后在所有项目下单击 Home.
Resulting home page

确保用户可以运行流程

最后,确保你的用户可以运行流程。将Run Flows用户权限添加到权限集或配置文件,并将其分配给正确的用户。

注意

只有流管理员(具有管理流用户权限的用户)才能运行非活动流。

告诉我更多…

  • 流程面试是一个流程的运行实例。分发流时,用户将与该流的各个访谈进行交互。
  • 本单元向您介绍了一个简单的流程示例。您可以自定义该流程以做更多。例如,增强快速客户流程,以便为更多客户字段(如位置或所有者)提供值。或者使用相同的输入来创建联系人和机会。

资源

以下视频显示Salesforce Classic.