Lightning-配置

Salesforce Lightning (Javascript按钮 – 2)

学习目标

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

  • 创建快速操作(而不是使用JavaScript)来验证字段,创建具有预填充值的记录,并重定向到Visualforce页面。
  • 描述如何使用自定义URL按钮来实现与JavaScript按钮相同的导航和重定向功能。
  • 使用Visualforce自定义按钮而不是JavaScript按钮来处理列表中的多个记录。

你有按钮?我们有替代品

以前,我们解释了为什么要迁移到Lightning Experience,那里有很棒的新功能可以让你移动到JavaScript按钮。接下来,我们将解释如何使用Salesforce Classic和Lightning Experience中的解决方案轻松迁移自定义JavaScript按钮功能。
此表将JavaScript按钮的使用情况映射到替代方案 – 在大多数情况下,这些方案是Lightning中更好的解决方案。
JavaScript按钮顶级用例 闪电的选择 声明/编程
验证字段(预存) 快速操作(使用默认值和/或公式) D
Apex 触发 P
用预填充值创建记录 快速操作(使用默认值和/或公式) D
重定向到一个记录页面 自定义网址按钮 D
重定向到Visualforce页面 Visualforce快速操作 P
Lightning 行动 P
根据输入预先填充值 Lightning 行动 P
确认弹出式屏幕 Lightning 行动 P
API调用(Salesforce和第三方) Lightning 行动 P
反馈弹出屏幕 Lightning 行动 P
第三方集成 Lightning 行动 P
列表视图记录上的批量操作 列表视图上的自定义Visualforce按钮 P

如您所见,Salesforce提供了几个用于转换JavaScript自定义按钮功能的声明性工具。

快速操作

快速操作支持JavaScript按钮的许多常见用途。快速操作可以基于特定的对象,也可以是全局的,也就是说,它们更加通用,可以从任何记录或Chatter提要访问。 Salesforce中的任何操作都可以快速执行。这里有些例子。

验证字段值

有时,当用户创建或更新记录时,您需要确保填写特定的字段或填入特定的条件。

假设您想创建一个关闭任务的操作,而不需要用户去完整的编辑页面。但是你也想确保任务有一个截止日期,然后才能关闭。

您可以通过为Task对象创建一个快速操作来满足所有这些要求。

  1. 从安装程序中的对象管理器,单击任务,然后单击按钮,链接和操作。
  2. 点击 New Action.
  3. 对于操作类型,请选择 Update a Record.
  4. 对于标签,输入关闭任务。
  5. 点击 Save.

现在我们选择我们想要在关闭任务快速操作中出现的字段。您可以通过其字段属性轻松地创建所需字段或只读字段。

Action field properties

在动作布局上设置字段后,可以为任务记录上的任何字段添加预定义的字段值。在这个例子中,我们根据需要标记了到期日期字段。我们还为“状态”字段添加了一个预定义的值,将其更改为“已完成”。

Set predefined field value for Status

现在我们已经完成配置操作,我们将其添加到任务页面布局。然后用户可以从Lightning Experience和Salesforce应用程序的任务记录页面访问它。以下是“任务”页面上的“关闭任务”操作示例。

Close Task action on the Tasks page

点击关闭任务会弹出用户可以快速执行并保存的操作。

Close Task action overlay

这是Salesforce应用程序中的外观。

Close Task action in the Salesforce app

用值预填充字段

更高级的用例是当你想让用户创建一个记录,但是你也希望一个或者多个字段能够根据依赖字段中的值自动填充。

例如,假设内部销售团队的典型季度配额是去年客户收入的四分之一,增长了10%。因为这个简单的公式并不总是适用的,所以你想要预先填充机会数量的值,但也让用户修改它。创建一个操作,以便用户可以快速有效地修改该字段,而无需转到完整的机会记录页面。

要创建此示例操作,请按照与之前相同的步骤创建机会快速操作。

  1. 从安装程序中的对象管理器中,单击帐户,然后单击按钮,链接和操作。
  2. 点击新建操作。
  3. 对于“操作类型”,选择“创建记录”。
  4. 对于目标对象,选择机会。
  5. 选择适当的记录类型。
  6. 对于标签,请输入New Oppty。
  7. 点击保存。

选择操作布局的字段后,可以为“金额”字段添加预定义的值。在我们的例子中,我们使用了这个公式:

Account.Last_Year_Revenue_Generated__c  * 1.10  / 4
将此操作添加到帐户页面布局。当用户调用它时,他们会看到一个预填充在他们可以接受或覆盖的字段中的值。

New Opportunity action overlay

关于这个动作的一个很酷的事情是,你可以从机会的客户户中提取数据来创建机会。 Salesforce还支持记录遍历,所以如果您拥有分层客户,则可以像这样从父客户中提取收入:

Account.Parent.Last_Year_Revenue_Generated__c

不要担心回忆公式的格式;快速操作是声明式的,并使用Salesforce公式构建器。

根据输入值重定向到Visualforce页面

您可以创建Visualforce页面来增强您的业务流程。用户可以通过各种方式导航到这些Visualforce页面,例如使用自定义按钮,操作覆盖和选项卡。

Visualforce页面的一个好处是,通过使用标准控制器,您可以创建自定义记录页面并添加预验证,预填充字段,公式等等。

Salesforce Classic中通常使用JavaScript按钮来读取记录中的值并将其传递到URL,然后将用户重定向到Visualforce页面。您还可以通过快速操作让您的用户访问Visualforce页面。创建Visualforce快速操作非常简单,而且与我们已经介绍的过程类似。唯一的区别是您选择自定义Visualforce作为操作类型。

Create a Visualforce action

对于特定于对象的Visualforce快速操作,必须在Visualforce页面中包含该对象的standardController才能访问记录数据,并使Visualforce页面显示在快速操作选项列表中。

自定义网址按钮和链接

也许您使用JavaScript按钮进行导航,用命令window.open(URL)和一些变量将用户重定向到另一个页面。在大多数情况下,您可以使用Lightning Experience中的自定义URL按钮或链接。
以下是不同URL按钮和链接的列表,以及Lightning Experience中的重定向行为。
自定义网址按钮或链接 闪电体验行为
External URL

www.google.com
网址在新标签页中打开
相对Salesforce URL,查看

/{!Account.Id}
Record home page opens in existing tab
相对Salesforce URL,查看

/{!Account.Id}/e
Edit overlay pops up on the existing page
相对Salesforce URL,查看

/001/o
Object home page opens in existing tab
$Action URL, View

{!URLFOR($Action.Account.View, Account.Id)}
Record home page opens in existing tab
$Action URL, Edit

{!URLFOR($Action.Account.Edit, Account.Id)}
Edit overlay pops up on the existing page

Apex 触发器

您可能熟悉Apex触发器;他们已经在我们的平台上得到了多年的支持。可以将Apex触发器配置为在用户单击记录上的保存之前或之后执行。
当您需要预先验证,计算和字段填充时,请考虑使用Apex触发器。它们对第三方集成特别有用,因为这些规则是通过Salesforce API,Lightning Experience和Salesforce应用程序实施的。

有关Apex触发器的更多信息,可以查看“Apex开发人员指南”或获取Apex触发器徽章。

自定义Visualforce按钮

Lightning Experience中的另一个重要功能是支持在列表视图中使用Visualforce按钮。使用此功能,您可以使用Lightning中的现有Visualforce操作,并使用列表中的多个记录。就是这样。
  1. 创建您的Visualforce页面。

    以下是用于编辑多个机会的舞台和关闭日期的示例代码:

    <apex:page standardController="Opportunity" recordSetVar="opportunities" extensions="tenPageSizeExt">
       <apex:form>
          <apex:pageBlock title="Edit Stage and Close Date" mode="edit">
             <apex:pageMessages />
             <apex:pageBlockButtons location="top">
                <apex:commandButton value="Save" action="{!save}"/>
                <apex:commandButton value="Cancel" action="{!cancel}"/>
             </apex:pageBlockButtons>
             <apex:pageBlockTable value="{!selected}" var="opp">
                <apex:column value="{!opp.name}"/>
                <apex:column headerValue="Stage">
                   <apex:inputField value="{!opp.stageName}"/>
                </apex:column>
                <apex:column headerValue="Close Date">
                   <apex:inputField value="{!opp.closeDate}"/>
                </apex:column>
             </apex:pageBlockTable>
          </apex:pageBlock>
       </apex:form>
    </apex:page>
  2. 创建一个引用您的Visualforce页面的自定义按钮。
  3. 将该操作添加到您的列表视图。

    注意

    最近查看的记录列表上不支持批量操作。它们只在列表视图中可用。

例子

这就是闪电体验中出现的动作。

Visualforce custom button in Lightning Experience

从我们的示例中可以看到,Salesforce具有很多功能,允许您迁移JavaScript按钮功能并转到Lightning Experience。

现在,您可能会有很多在您的组织中积累的JavaScript按钮。您可能预期迁移或转换过程需要很长时间。但是这个工作可能不像你想象的那么艰难。我们对Salesforce内部的所有员工使用的JavaScript按钮进行了分析。我们发现许多按钮已经过时或很少被用户调用。其他人只是重复 – 同一个按钮,但在不同的对象。通过列表后,我们发现许多JavaScript按钮可以转换为我们目前所看到的解决方案。其余的,我们可以用新的闪电行动解决不少问题。

您可能注意到了编程解决方案列表中的闪电行为,作为许多JavaScript按钮用例的常见替代品。闪电行动很容易建立,因为他们是基于快速行动框架。您将它们设置为与Visualforce快速操作类似。接下来我们将更深入地介绍闪电行动。

你可能也会喜欢...