Salesforce开发生命周期(3)部署工具

学习目标

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

  1. Lightning Platform App Builder工具
  2. Force.com IDE
  3. 关于Metadata API
  4. Ant迁移工具
  5. Data Loader

无论您在开发过程中的角色如何,重要的是要从高层次了解所有Lightning Platform开发工具的运行方式以及彼此重叠的开发任务。 发布管理的一个挑战是跟踪每个组织的变化,并且对工具的了解使跟踪更改变得更容易。

您可能熟悉如何使用Salesforce Web用户界面构建应用程序。 基于项目的开发也需要使用桌面工具。 Force.com IDE是团队开发,选定组件迁移和编写Apex的最佳工具。 另一方面,Ant迁移工具对于在环境之间迁移大规模或重复的更改非常有用。 以下各节将介绍这些和其他Lightning Platform工具。

Lightning Platform App Builder工具

虽然您可以使用许多工具来创建和修改应用程序组件,但Web界面是最容易启动的地方。

Salesforce用户界面通过点击式应用程序构建工具轻松实现应用程序开发。 在“设置”中,您可以修改组织的元数据。

由于Web界面易于使用,因此管理员通常直接在生产组织中进行更改,而不是使用开发环境。 这对于立即需要该功能的用户来说非常有用,但需要跟踪生产中的更改,以便您可以在必要时将相同的功能迁移到测试或登台沙箱。

Force.com IDE

Force.com IDE是一个集成开发环境,用于使用Apex,Visualforce和元数据组件在Lightning平台上开发应用程序。 IDE专为开发人员和开发团队而设计,提供了加速Salesforce应用程序开发的工具。 这些工具包括向导,源代码编辑器,测试执行工具,部署辅助工具,集成帮助和交互式调试器。

Force.com IDE构建于开源Eclipse平台之上,可作为插件使用。 该插件是开源的 – 您可以在GitHub上找到并贡献其源代码。

Lightning Platform基于项目的开发利用传统软件开发的工具和流程,例如开发环境(沙箱),集成开发环境(IDE)和源代码控制系统。 Lightning Platform通过使用基于文本的文件来表示Salesforce组织中的各种组件,从而实现基于项目的开发。这些文件易于传输,可以在源控制系统中存储和版本化,并支持传统开发。所有这一切都可以通过Metadata API实现。

Lightning Platform项目是收集在一起的元数据文件的集合,以便您可以在本地处理这些文件。根据您的需要,您可以创建一个Lightning Platform项目,该项目包含组织中的单个组件或每个组件。后一种情况,从组织中检索每个可移植组件并不总是最佳选择,因为它可以使部署更长,更困难。

注意:您可以一次部署或检索多达10,000个文件,并且已部署或检索的.zip文件的最大大小为39 MB。 (在API版本43.0及更高版本中,AppExchange程序包最多可包含12,500个文件。)如果需要检索或部署超过这些限制之一,则必须批量执行此操作。

构建项目的一个好方法是考虑要完成的任务,然后仅为这些组件创建项目。

如果您要添加或删除组件,可以稍后编辑项目。

关于Metadata API

Metadata API提供了两个协同工作的部分:丰富而强大的元数据模型和应用程序编程接口(API)。 元数据模型描述了组织中的组件。 例如,可以通过操纵Metadata API提供的XML文件来控制Salesforce自定义对象及其字段。 Metadata API还包括一组Web服务方法,这些方法提供对元数据组件的配置和源的编程访问。 换句话说,它描述了您可以对这些组件执行的操作,例如创建对象或部署对象。 如果它可以帮助您将它们分成两部分,您可以将元数据组件视为名词,并将API调用为动词。

使用Metadata API,您可以:

  • 将设置配置用作元数据文件。
  • 使用熟悉的工具(如文本编辑器,IDE,批处理脚本和源代码控制系统)复制,粘贴,合并和操作元数据文件。
  • 在两个开发环境之间或从开发到生产之间迁移组织之间的配置更改。
  • 创建自己的工具来管理组织和应用程序元数据。

有关更多信息,包括支持和不支持的组件列表,请参阅Metadata API Developer’s Guide。

Ant迁移工具(Ant Migration Tool)

Ant Migration Tool是一个基于Java / Ant的命令行实用程序,用于在本地目录和Salesforce组织之间移动元数据。 Ant迁移工具允许您在不相关的组织之间迁移元数据,因此从这个意义上说它比更改集更强大。 与Force.com IDE不同,Ant迁移工具没有图形用户界面。 通过在文本编辑器中编辑控制文件并使用命令行参数,可以选择要部署的组件,服务器地址和其他部署详细信息。

大多数人会发现Force.com IDE的图形用户界面比编辑文本文件和在命令行上提供参数更容易使用。 但是,Ant迁移工具在以下方案中特别有用:

  • 需要使用大量设置更改来填充测试环境的开发项目 – 使用自动脚本进行更改比手动输入更快。
  • 需要在组织之间更改文件内容的部署 – 例如,如果要在仪表板上更改正在运行的用户,则可以从组织A检索正在运行的用户,进行更改,然后将正在运行的用户部署到 组织B.如果您尝试在Force.com IDE中执行此操作,IDE将强制您在启动部署向导以部署到组织B之前将更改保存回组织A(组织B用户可能不存在) Ant迁移工具使您可以完全控制retrieve()和deploy()命令; 在您选择部署文件之前,在本地文件系统上编辑和保存文件不会更改任何组织中的元数据。
  • 多阶段发布流程 – 典型的开发流程需要在发布到生产环境之前进行迭代构建,测试和分段。脚本检索和组件部署可以使此过程更加高效。
  • 使用相同参数的重复部署 – 您可以从组织中检索元数据,进行更改并将更改部署到组织。如果需要重复此过程,则只需再次调用相同的部署目标即可。
  • 当从高级技术资源完成从分段到生产的迁移时 – 任何喜欢在脚本环境中进行部署的人都会发现Ant迁移工具是一个熟悉的过程。

有关更多信息,请参阅“Ant迁移工具指南Ant Migration Tool Guide.”。

Data Loader

Data Loader是用于批量导入或导出数据的客户端应用程序。 使用它来插入,更新,删除或导出Salesforce记录。

导入数据时,Data Loader从逗号分隔值(CSV)文件或数据库连接中读取,提取和加载数据。

导出数据时,它会输出CSV文件。

Data Loader可用于将数据加载到测试环境中,例如不包含任何数据的Developer Pro沙箱。 对于回归测试,建议使用一组稳定的数据,这些数据在发行版之间不会发生变化,因此在本地存储一组数据并使用Data Loader填充测试环境非常有用。 Data Loader具有命令行界面,因此脚本可以自动将数据加载到新组织中。

注意:Data Loader严格来说是一个加载数据的工具,而不是元数据。 您无法在对象上添加或删除字段或加载任何类型的设置更改。

要导入数据,可以使用导入向导或数据加载器。 Data Loader补充了可从在线应用程序的“设置”菜单访问的基于Web的导入向导。 请参阅以下指南以确定哪种导入方法最适合您的业务需求:

在以下情况下使用基于Web的导入:

  • 您正在加载少于50,000条记录。
  • 导入向导支持您需要导入的对象。要查看可用的导入向导以及它们支持的对象,请从“设置”中,在“快速查找”框中输入“Data Management”,然后选择“Data Management”。
  • 您希望根据帐户名称和站点,联系电子邮件地址或潜在客户电子邮件地址上载记录来防止重复。

在以下情况下使用Data Loader:

  • 您需要加载50,000到5,000,000条记录。数据加载器支持最多500万条记录。如果您需要加载超过500万条记录,我们建议您与Salesforce合作伙伴合作,或访问AppExchange以获取合适的合作伙伴产品。
  • 您需要加载到导入向导尚不支持的对象。
  • 您希望安排常规数据加载,例如夜间导入。
  • 您希望导出数据以进行备份。

有关导入数据的更多信息,请参阅Salesforce联机帮助和“Data Loader Guide.”中的“将数据导入Salesforce”。

Salesforce开发生命周期(2)开发环境

学习目标

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

  1. 隔离开发和测试
  2. 使用集成,测试和分段开发多个项目
  3. 开发环境
  4. 沙箱用途
  5. 沙盒注意事项和限制
  6. 创建开发沙箱
  7. 更新环境依赖性
  8. 创建用户模板
  9. 管理沙箱

在Lightning平台上进行开发需要一个开发环境,一个可以在不影响其他用户的情况下工作的地方。在传统的软件开发中,开发环境只不过是一个自己调用的空间,但在Lightning平台上,每个开发环境都是自己的全功能Salesforce组织。

在快速入门:使用沙盒和变更集中,我们使用单个开发环境(开发人员沙箱)来进行与生产组织隔离的更改。在更复杂的场景中,您可能有多种环境用于各种目的,例如开发,集成,测试和培训。还有不同类型的开发环境最适合不同的用途。

使用单个开发环境进行开发和测试时,必须停止开发以进行测试,并且只能在部署后恢复开发。除非您有一个开发人员执行所有这些任务,否则这可能是资源的低效使用。更复杂的开发模型允许在进行测试和部署时继续开发。在这种情况下,您需要两个隔离的环境,一个用于开发,另一个用于测试。

隔离开发和测试

具有单独的开发和测试环境会增加开发过程的复杂性,并引入一个问题:现有组件的更改在哪里发生?例如,假设您有一个开发的应用程序,然后将这些更改迁移到您的测试环境。在测试期间,您发现需要进行一些更改才能部署到生产环境。您是在测试环境中进行这些更改还是返回开发组织并再次启动该过程?如果您只有两个沙箱,则可能需要在测试组织中进行这些更改,因为这是一个更快速,更简单的过程,并且您的开发沙箱可能已经更改为无法轻松重新开始的地方。但是,您仍然希望将测试环境中所做的任何更改复制回开发环境,以确保下次从开发升级到测试时保留修复。应用程序开发过程的安排和流程如下图所示:

典型的开发生命周期:

  1. 创建开发环境。
  2. 使用Salesforce Web和本地工具进行开发。
  3. 创建测试环境。
  4. 将更改从开发环境迁移到测试环境。
  5. 测试。
  6. 在其他环境中复制生产更改。
  7. 将您开发的内容部署到生产组织。

典型的开发项目:

  • 新的自定义对象,选项卡和应用程序
  • 与其他系统的集成
  • 涉及工作流程或新验证规则的应用

使用集成,测试和分段开发多个项目

如果您有多个开发人员和多个正在开发的项目将同时发布,则需要进行集成测试以确保可以合并单独的代码行而不会发生冲突。将来,您可能希望包括用户验收测试(UAT)以确定是否满足原始设计要求。更复杂的开发过程还可以包含一个临时环境,您可以确保生产部署完全按计划进行。

在这种开发方案中,您可能想知道在哪里更改代码行。如果某个功能在生产部署的方式上未通过任何测试,您是否在组织失败的情况下修复该功能,或者重新启动整个过程?随着应用程序开发过程的复杂性增加,您会发现随时修复并不是一个好模型。相反,您将希望在开发组织中进行所有修复,并遵循可重复的过程将该更改迁移到生产中。下图描绘了此过程:

典型的开发生命周期:

1.创建开发环境。
2.使用Salesforce Web和本地工具进行开发。
3.创建测试环境,包括UAT和集成。
4.将更改从开发环境迁移到集成环境。
5.测试。
6.将更改从集成环境迁移到UAT环境。
7.执行用户验收测试。
8.将更改从UAT环境迁移到登台环境。
9.在分段环境中复制生产更改。
10.安排发布。

典型的开发项目:

  • 在多个环境中同时开发新应用程序
  • 需要团队开发的项目

开发环境

有两种类型的开发环境:sandbox orgs和Developer Edition orgs。

沙箱是从您的生产组织中复制的新组织。 本节列出了支持沙箱的Salesforce版本。 有不同类型的沙箱适合不同的用途。

 

沙箱类型 描述
Developer Developer 沙箱复制自定义(元数据),但不将生产数据复制到单独的环境中进行编码和测试。
Developer Pro Developer Pro沙箱复制自定义(元数据),但不将生产数据复制到单独的环境中进行编码和测试。
Developer Pro比开发人员沙箱拥有更多存储空间。 它包含许多开发人员沙箱,具体取决于您的生产组织的版本。
Partial Copy 部分副本沙箱是开发人员沙箱以及您在沙箱模板中定义的数据。
Full 完整沙箱会复制整个生产组织及其所有数据,包括标准和自定义对象记录,文档和附件。 使用沙箱编码和测试更改,并培训团队有关更改的信息。 您可以每29天刷新一次完整沙箱。

沙箱还可以包含部分,无或所有生产数据,具体取决于预期用途。对于开发,您可能只需要一小组数据来确保工作正常。对于QA测试,尤其是回归测试,您需要一组不会随时间变化的大量数据。对于预部署分段,您需要一个尽可能靠近生产环境的沙箱,包括数据。只有完整的沙箱在创建数据时才会复制数据,但您可以使用导入向导或数据加载器将数据添加到沙箱中。

另一种类型的开发环境是Developer Edition组织。 Developer Edition提供对Professional,Enterprise,Unlimited和Performance版本提供的许多独有功能的免费访问。您可以完全访问Lightning平台和API,以便您可以扩展Salesforce,与其他应用程序集成,以及开发新的工具和应用程序。 Developer Edition组织主要由独立软件供应商(ISV)使用,用于在AppExchange上创建分发应用程序。有关更多信息,请参阅ISVforce指南。

沙箱用途

如果您的组织有多个沙箱可用,请在规划哪些沙箱用于何种目的时考虑以下因素。

使用 沙盒的类型 说明
开发 Developer或Developer Pro沙箱 完整的沙箱在创建和刷新时间方面成本更高,并且还允许开发人员访问可能不合适的数据。
测试 •单元测试和Apex测试:Developer或Developer Pro沙箱
•功能测试和回归测试:部分复制沙箱(加载标准数据集)
测试外部集成 当外部系统期望存在完整的生产数据时,完整的沙箱是最佳选择。 如果要使用样本数据或实际数据的子集,则在特殊情况下,部分复制沙箱可能是合适的。 如果您使用外部ID,则效果很好。
分期和用户验收测试 完整沙箱最适合根据生产配置和数据验证新应用程序。 如果针对生产数据子集进行测试是可接受的(例如,区域测试),则部分复制沙箱是合适的。
生产调试 完整的沙箱

沙盒注意事项和限制

沙箱功能与生产不同,您需要规划差异以及复制过程本身。

创建或刷新沙箱时请考虑以下事项:

  • 创建或刷新沙箱副本是一项长时间运行的操作,可能在几分钟,几天甚至一周以上完成。有几个条件会影响持续时间,包括自定义数量,数据大小和配置(完整副本),对象数量和服务器负载。此外,沙箱刷新已排队,因此您请求后的副本可能无法立即启动。因此,请尽可能提前计划,并尽可能接受完整沙箱中可选数据的默认最小值。
  • 刷新沙箱会删除并重新创建沙箱,作为生产组织的新副本。实际上,这会反转您执行的任何手动访问更改。如果您在沙箱中创建了用户,则它们将不再存在;如果您更改了用户的权限和访问设置,那么这些设置将恢复为生产组织中的值。这意味着刷新后,必须在新副本中重复执行的任何访问更改。要避免此过程,您可以在生产组织中创建用户模板,然后在沙箱组织中激活它们。
  • 在沙箱创建和刷新操作期间,对生产组织的设置和数据更改可能会导致沙箱中出现不一致。因此,最好在创建或刷新沙箱时冻结或最小化对生产组织的更改。

以下功能已禁用,无法在沙箱中启用:

  • 合同到期警告
  • 案件升级
    合同到期警告和案例升级被禁用,因为它们会自动向联系人,客户和生产组织用户发送电子邮件。
  • 订阅摘要
  • 数据导出(通过单击“安装”中“每周导出服务”页面上的“立即导出”或“计划导出”)
  • 创建Salesforce沙箱的功能
  • 能够将您在沙盒中创建的电子邮件服务地址复制到生产组织
  • 发布Site.com网站的能力

创建开发沙箱

确定特定项目或任务所需的开发环境类型后,请创建生产组织的沙箱副本。

  1. 从“设置”中,在“快速查找”框中输入“沙箱”,然后选择“Sandboxes”。
  2. 单击“New Sandbox”。
  3. 输入沙箱的名称和描述。
  4. 选择沙箱类型。
  5. 单击“Start Copy”。
    该过程可能需要一段时间,具体取决于您的组织的大小。沙箱完成复制后,您会收到通知电子邮件。
  6. 单击通知电子邮件中的链接以访问您的沙箱。
    您可以通过将.sandbox_name附加到您的用户名来登录test.salesforce.com/login.jsp中的沙箱。例如,如果您的生产组织的用户名是user1@acme.com,那么名为“test”的沙箱的用户名是user1@acme.com.test。您的密码与生产中的密码相同。
  7. 进行小的更改以确保沙箱不会意外地与生产组织通信。在使用您在此跟踪中创建的沙箱之前,请务必按照更新环境依赖关系中的说明调整这些设置。
    提示:可用沙箱的数量和类型取决于Salesforce组织。

更新环境依赖性

创建沙箱后,将其配置为更新环境依赖项并在开始开发之前合并项目内容。 如果您有多个开发环境,则需要在项目进行时将更改与其他团队成员的更改合并到单个开发环境中。 在此阶段,您必须跟踪所有环境中的更改,以便您可以成功合并这些更改。

环境依赖性是开发环境和生产组织之间不同的设置。 当您在开发环境中工作时,您需要更新谁有权访问什么,打开或关闭某些功能,以及更新内部和外部系统的地址,以便它们指向开发环境而不是生产环境。 反之亦然 – 当您部署到生产环境时,您可能需要更新在开发中使用的某些设置,以便它们与生产一起使用。

环境依赖 细节
Login privileges 如果您的开发人员和测试人员没有生产登录,或者没有必要的权限,则需要在开发环境中为他们提供必要的访问权限。
Email addresses 创建沙箱时,会自动更改电子邮件地址,以便在开发期间不会从沙箱发送电子邮件警报和其他自动通知。当您的开发人员和测试人员登录沙箱时,他们必须将其电子邮件地址更改回真实地址,以接收从沙箱发送的电子邮件。
Email recipients 如果要测试出站电子邮件以获取升级或仪表板等功能,则必须更新收件人列表,因为在创建沙箱时会删除这些列表以防止不必要的电子邮件。
External URLs 如果您的生产组织与外部系统集成,您可能不希望沙箱副本与这些外部系统的生产版本进行通信,以免混合生产和非生产数据。例如,如果使用出站消息传递或Web服务标注,则需要更新这些服务调用的URL以指向这些应用程序的外部开发环境。同样,由于沙箱运行在与生产组织不同的实例上,要测试与沙箱的集成,您需要将API端点主机名从login.salesforce.com更改为
test.salesforce.com。
Hard-coded URLs 通常,当从一个Lightning Platform页面链接到另一个时,链接应该是相对的(省略主机名)而不是绝对的,并且是动态的(按名称查找ID,记录或页面)而不是静态。这允许您在不同组织之间迁移URL,这些组织可能具有不同的主机名或记录ID。如果您的应用程序包含从一个Lightning Platform页面到另一个Lightning Platform页面的硬编码URL,那么当它们从沙箱中单击时可能会中断,或者更糟糕的是,将认为自己处于开发环境中的用户带回生产组织。
Hard-coded IDs 一些组件通常通过其ID访问,例如RecordTypes。创建沙箱副本时,使用这些ID引用这些组件的代码将继续工作,因为沙箱副本会保留生产ID。但是,反之亦然 – 从沙箱迁移到生产(或任何两个组织之间)通过元数据维护组件的名称,但如果目标组织中不存在该组件,则将生成新的ID。因此,迁移包含硬编码ID的代码可能会导致代码中断。作为最佳实践,只要有可能,您应该通过按名称查询组件的ID来获取组件的ID。
Existing projects 如果您有现有的开发项目,则需要将该工作合并到新的开发环境中。

创建用户模板

刷新沙箱会创建生产组织的新副本。 这意味着沙箱中的所有用户权限都是从生产中复制的,并且必须重新应用在刷新之前在沙箱中进行的用户访问或权限更改。 如果您有多个沙箱,或定期刷新沙箱,请考虑在生产组织上创建开发人员用户模板。 开发人员用户模板是具有在沙箱上开发所需权限的抽象用户(例如,“修改所有数据”权限),但在您的生产组织中不活动。 创建或刷新沙箱后,激活沙箱中的开发人员用户并将其分配给将在那里开发的人员。

要创建开发人员模板:

  1. 在生产组织上创建新用户。
  2. 编辑用户以授予其必要的权限。
  3. 停用生产组织上的用户。
  4. 创建或刷新沙箱。
  5. 在沙箱上激活用户。
  6. (可选)更改电子邮件地址,密码或其他环境设置。

警告:在包含从生产中复制的敏感信息(例如,社会保险号)的沙箱组织中授予权限时请务必谨慎。

您可能会发现为不同角色创建多个模板很有帮助。例如,您可以拥有具有“修改所有数据”权限的开发人员角色,以及具有标准用户权限的QA测试人员角色。

您的沙箱具有与生产相同数量的许可证,但您的所有用户都不太可能登录它。创建或刷新沙箱时,生产中处于活动状态的相同用户在沙箱中处于活动状态,因此,如果所有许可证都已占用,则需要停用活动用户以激活非活动开发人员用户。只需确保您在沙箱中停用的用户是永远不会登录该环境的众多生产用户之一。同样,您应该使生产开发人员用户模板在生产组织上处于非活动状态,因此它不会使用付费生产许可证。

有关如何激活,停用或编辑用户的详细信息,请参阅Salesforce联机帮助中的“编辑用户”。

管理沙箱

要管理沙箱,请从“设置”中的“快速查找”框中输入“Sandboxes”,然后选择“Sandboxes”。 显示现有沙箱的列表。

  • 单击“New Sandbox”以创建沙箱。当组织达到其沙箱限制时,Salesforce会停用“New Sandbox”按钮。如有必要,请与Salesforce联系,为您的组织订购更多沙箱。
  • 单击“Sandbox History”以查看沙箱刷新历史记录的日志,包括何时创建沙箱以及创建沙箱的人员。
  • 单击“Refresh”以使用新副本替换现有沙箱。 Salesforce仅显示适用于刷新的沙箱的“Refresh”链接,该链接因不同类型的沙箱而异。在等待刷新完成时,您现有的此沙箱副本仍然可用。刷新的副本在您激活之前处于非活动状态。
  • 单击“Activate”以激活刷新的沙箱。您必须先激活刷新的沙箱才能访问它。 Salesforce仅为未激活的沙箱显示此选项。
    警告:激活刷新的沙箱会使用刷新的版本替换现有的沙箱,永久删除现有版本及其中的所有数据。您的生产组织及其数据不受影响。
  • 单击Del删除沙箱。
    警告:删除沙箱将永久删除沙箱及其中的所有数据,包括已从沙箱上载的所有出站更改集。
  • 管理员可以单击“Login”以用户身份登录沙箱。 Salesforce仅为活动沙箱显示此选项。用户可以通过将.sandbox_name附加到其Salesforce用户名来登录https://test.salesforce.com上的沙箱。例如,如果生产组织的用户名是user1@acme.com,沙箱名为“test”,则登录沙箱的修改后的用户名为user1@acme.com.test。
  • 单击沙箱名称以查看有关沙箱的详细信息,包括沙箱类型及其创建时间。

Salesforce开发生命周期(2)开发环境

学习目标

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

  1. 隔离开发和测试
  2. 使用集成,测试和分段开发多个项目
  3. 开发环境
  4. 沙箱用途
  5. 沙盒注意事项和限制
  6. 创建开发沙箱
  7. 更新环境依赖性
  8. 创建用户模板
  9. 管理沙箱

在Lightning平台上进行开发需要一个开发环境,一个可以在不影响其他用户的情况下工作的地方。在传统的软件开发中,开发环境只不过是一个自己调用的空间,但在Lightning平台上,每个开发环境都是自己的全功能Salesforce组织。

在快速入门:使用沙盒和变更集中,我们使用单个开发环境(开发人员沙箱)来进行与生产组织隔离的更改。在更复杂的场景中,您可能有多种环境用于各种目的,例如开发,集成,测试和培训。还有不同类型的开发环境最适合不同的用途。

使用单个开发环境进行开发和测试时,必须停止开发以进行测试,并且只能在部署后恢复开发。除非您有一个开发人员执行所有这些任务,否则这可能是资源的低效使用。更复杂的开发模型允许在进行测试和部署时继续开发。在这种情况下,您需要两个隔离的环境,一个用于开发,另一个用于测试。

隔离开发和测试

具有单独的开发和测试环境会增加开发过程的复杂性,并引入一个问题:现有组件的更改在哪里发生?例如,假设您有一个开发的应用程序,然后将这些更改迁移到您的测试环境。在测试期间,您发现需要进行一些更改才能部署到生产环境。您是在测试环境中进行这些更改还是返回开发组织并再次启动该过程?如果您只有两个沙箱,则可能需要在测试组织中进行这些更改,因为这是一个更快速,更简单的过程,并且您的开发沙箱可能已经更改为无法轻松重新开始的地方。但是,您仍然希望将测试环境中所做的任何更改复制回开发环境,以确保下次从开发升级到测试时保留修复。应用程序开发过程的安排和流程如下图所示:

典型的开发生命周期:

  1. 创建开发环境。
  2. 使用Salesforce Web和本地工具进行开发。
  3. 创建测试环境。
  4. 将更改从开发环境迁移到测试环境。
  5. 测试。
  6. 在其他环境中复制生产更改。
  7. 将您开发的内容部署到生产组织。

典型的开发项目:

  • 新的自定义对象,选项卡和应用程序
  • 与其他系统的集成
  • 涉及工作流程或新验证规则的应用

使用集成,测试和分段开发多个项目

如果您有多个开发人员和多个正在开发的项目将同时发布,则需要进行集成测试以确保可以合并单独的代码行而不会发生冲突。将来,您可能希望包括用户验收测试(UAT)以确定是否满足原始设计要求。更复杂的开发过程还可以包含一个临时环境,您可以确保生产部署完全按计划进行。

在这种开发方案中,您可能想知道在哪里更改代码行。如果某个功能在生产部署的方式上未通过任何测试,您是否在组织失败的情况下修复该功能,或者重新启动整个过程?随着应用程序开发过程的复杂性增加,您会发现随时修复并不是一个好模型。相反,您将希望在开发组织中进行所有修复,并遵循可重复的过程将该更改迁移到生产中。下图描绘了此过程:

典型的开发生命周期:

1.创建开发环境。
2.使用Salesforce Web和本地工具进行开发。
3.创建测试环境,包括UAT和集成。
4.将更改从开发环境迁移到集成环境。
5.测试。
6.将更改从集成环境迁移到UAT环境。
7.执行用户验收测试。
8.将更改从UAT环境迁移到登台环境。
9.在分段环境中复制生产更改。
10.安排发布。

典型的开发项目:

  • 在多个环境中同时开发新应用程序
  • 需要团队开发的项目

开发环境

有两种类型的开发环境:sandbox orgs和Developer Edition orgs。

沙箱是从您的生产组织中复制的新组织。 本节列出了支持沙箱的Salesforce版本。 有不同类型的沙箱适合不同的用途。

 

沙箱类型 描述
Developer Developer 沙箱复制自定义(元数据),但不将生产数据复制到单独的环境中进行编码和测试。
Developer Pro Developer Pro沙箱复制自定义(元数据),但不将生产数据复制到单独的环境中进行编码和测试。
Developer Pro比开发人员沙箱拥有更多存储空间。 它包含许多开发人员沙箱,具体取决于您的生产组织的版本。
Partial Copy 部分副本沙箱是开发人员沙箱以及您在沙箱模板中定义的数据。
Full 完整沙箱会复制整个生产组织及其所有数据,包括标准和自定义对象记录,文档和附件。 使用沙箱编码和测试更改,并培训团队有关更改的信息。 您可以每29天刷新一次完整沙箱。

沙箱还可以包含部分,无或所有生产数据,具体取决于预期用途。对于开发,您可能只需要一小组数据来确保工作正常。对于QA测试,尤其是回归测试,您需要一组不会随时间变化的大量数据。对于预部署分段,您需要一个尽可能靠近生产环境的沙箱,包括数据。只有完整的沙箱在创建数据时才会复制数据,但您可以使用导入向导或数据加载器将数据添加到沙箱中。

另一种类型的开发环境是Developer Edition组织。 Developer Edition提供对Professional,Enterprise,Unlimited和Performance版本提供的许多独有功能的免费访问。您可以完全访问Lightning平台和API,以便您可以扩展Salesforce,与其他应用程序集成,以及开发新的工具和应用程序。 Developer Edition组织主要由独立软件供应商(ISV)使用,用于在AppExchange上创建分发应用程序。有关更多信息,请参阅ISVforce指南。

沙箱用途

如果您的组织有多个沙箱可用,请在规划哪些沙箱用于何种目的时考虑以下因素。

使用 沙盒的类型 说明
开发 Developer或Developer Pro沙箱 完整的沙箱在创建和刷新时间方面成本更高,并且还允许开发人员访问可能不合适的数据。
测试 •单元测试和Apex测试:Developer或Developer Pro沙箱
•功能测试和回归测试:部分复制沙箱(加载标准数据集)
测试外部集成 当外部系统期望存在完整的生产数据时,完整的沙箱是最佳选择。 如果要使用样本数据或实际数据的子集,则在特殊情况下,部分复制沙箱可能是合适的。 如果您使用外部ID,则效果很好。
分期和用户验收测试 完整沙箱最适合根据生产配置和数据验证新应用程序。 如果针对生产数据子集进行测试是可接受的(例如,区域测试),则部分复制沙箱是合适的。
生产调试 完整的沙箱

沙盒注意事项和限制

沙箱功能与生产不同,您需要规划差异以及复制过程本身。

创建或刷新沙箱时请考虑以下事项:

  • 创建或刷新沙箱副本是一项长时间运行的操作,可能在几分钟,几天甚至一周以上完成。有几个条件会影响持续时间,包括自定义数量,数据大小和配置(完整副本),对象数量和服务器负载。此外,沙箱刷新已排队,因此您请求后的副本可能无法立即启动。因此,请尽可能提前计划,并尽可能接受完整沙箱中可选数据的默认最小值。
  • 刷新沙箱会删除并重新创建沙箱,作为生产组织的新副本。实际上,这会反转您执行的任何手动访问更改。如果您在沙箱中创建了用户,则它们将不再存在;如果您更改了用户的权限和访问设置,那么这些设置将恢复为生产组织中的值。这意味着刷新后,必须在新副本中重复执行的任何访问更改。要避免此过程,您可以在生产组织中创建用户模板,然后在沙箱组织中激活它们。
  • 在沙箱创建和刷新操作期间,对生产组织的设置和数据更改可能会导致沙箱中出现不一致。因此,最好在创建或刷新沙箱时冻结或最小化对生产组织的更改。

以下功能已禁用,无法在沙箱中启用:

  • 合同到期警告
  • 案件升级
    合同到期警告和案例升级被禁用,因为它们会自动向联系人,客户和生产组织用户发送电子邮件。
  • 订阅摘要
  • 数据导出(通过单击“安装”中“每周导出服务”页面上的“立即导出”或“计划导出”)
  • 创建Salesforce沙箱的功能
  • 能够将您在沙盒中创建的电子邮件服务地址复制到生产组织
  • 发布Site.com网站的能力

创建开发沙箱

确定特定项目或任务所需的开发环境类型后,请创建生产组织的沙箱副本。

  1. 从“设置”中,在“快速查找”框中输入“沙箱”,然后选择“Sandboxes”。
  2. 单击“New Sandbox”。
  3. 输入沙箱的名称和描述。
  4. 选择沙箱类型。
  5. 单击“Start Copy”。
    该过程可能需要一段时间,具体取决于您的组织的大小。沙箱完成复制后,您会收到通知电子邮件。
  6. 单击通知电子邮件中的链接以访问您的沙箱。
    您可以通过将.sandbox_name附加到您的用户名来登录test.salesforce.com/login.jsp中的沙箱。例如,如果您的生产组织的用户名是user1@acme.com,那么名为“test”的沙箱的用户名是user1@acme.com.test。您的密码与生产中的密码相同。
  7. 进行小的更改以确保沙箱不会意外地与生产组织通信。在使用您在此跟踪中创建的沙箱之前,请务必按照更新环境依赖关系中的说明调整这些设置。
    提示:可用沙箱的数量和类型取决于Salesforce组织。

更新环境依赖性

创建沙箱后,将其配置为更新环境依赖项并在开始开发之前合并项目内容。 如果您有多个开发环境,则需要在项目进行时将更改与其他团队成员的更改合并到单个开发环境中。 在此阶段,您必须跟踪所有环境中的更改,以便您可以成功合并这些更改。

环境依赖性是开发环境和生产组织之间不同的设置。 当您在开发环境中工作时,您需要更新谁有权访问什么,打开或关闭某些功能,以及更新内部和外部系统的地址,以便它们指向开发环境而不是生产环境。 反之亦然 – 当您部署到生产环境时,您可能需要更新在开发中使用的某些设置,以便它们与生产一起使用。

环境依赖 细节
Login privileges 如果您的开发人员和测试人员没有生产登录,或者没有必要的权限,则需要在开发环境中为他们提供必要的访问权限。
Email addresses 创建沙箱时,会自动更改电子邮件地址,以便在开发期间不会从沙箱发送电子邮件警报和其他自动通知。当您的开发人员和测试人员登录沙箱时,他们必须将其电子邮件地址更改回真实地址,以接收从沙箱发送的电子邮件。
Email recipients 如果要测试出站电子邮件以获取升级或仪表板等功能,则必须更新收件人列表,因为在创建沙箱时会删除这些列表以防止不必要的电子邮件。
External URLs 如果您的生产组织与外部系统集成,您可能不希望沙箱副本与这些外部系统的生产版本进行通信,以免混合生产和非生产数据。例如,如果使用出站消息传递或Web服务标注,则需要更新这些服务调用的URL以指向这些应用程序的外部开发环境。同样,由于沙箱运行在与生产组织不同的实例上,要测试与沙箱的集成,您需要将API端点主机名从login.salesforce.com更改为
test.salesforce.com。
Hard-coded URLs 通常,当从一个Lightning Platform页面链接到另一个时,链接应该是相对的(省略主机名)而不是绝对的,并且是动态的(按名称查找ID,记录或页面)而不是静态。这允许您在不同组织之间迁移URL,这些组织可能具有不同的主机名或记录ID。如果您的应用程序包含从一个Lightning Platform页面到另一个Lightning Platform页面的硬编码URL,那么当它们从沙箱中单击时可能会中断,或者更糟糕的是,将认为自己处于开发环境中的用户带回生产组织。
Hard-coded IDs 一些组件通常通过其ID访问,例如RecordTypes。创建沙箱副本时,使用这些ID引用这些组件的代码将继续工作,因为沙箱副本会保留生产ID。但是,反之亦然 – 从沙箱迁移到生产(或任何两个组织之间)通过元数据维护组件的名称,但如果目标组织中不存在该组件,则将生成新的ID。因此,迁移包含硬编码ID的代码可能会导致代码中断。作为最佳实践,只要有可能,您应该通过按名称查询组件的ID来获取组件的ID。
Existing projects 如果您有现有的开发项目,则需要将该工作合并到新的开发环境中。

创建用户模板

刷新沙箱会创建生产组织的新副本。 这意味着沙箱中的所有用户权限都是从生产中复制的,并且必须重新应用在刷新之前在沙箱中进行的用户访问或权限更改。 如果您有多个沙箱,或定期刷新沙箱,请考虑在生产组织上创建开发人员用户模板。 开发人员用户模板是具有在沙箱上开发所需权限的抽象用户(例如,“修改所有数据”权限),但在您的生产组织中不活动。 创建或刷新沙箱后,激活沙箱中的开发人员用户并将其分配给将在那里开发的人员。

要创建开发人员模板:

  1. 在生产组织上创建新用户。
  2. 编辑用户以授予其必要的权限。
  3. 停用生产组织上的用户。
  4. 创建或刷新沙箱。
  5. 在沙箱上激活用户。
  6. (可选)更改电子邮件地址,密码或其他环境设置。

警告:在包含从生产中复制的敏感信息(例如,社会保险号)的沙箱组织中授予权限时请务必谨慎。

您可能会发现为不同角色创建多个模板很有帮助。例如,您可以拥有具有“修改所有数据”权限的开发人员角色,以及具有标准用户权限的QA测试人员角色。

您的沙箱具有与生产相同数量的许可证,但您的所有用户都不太可能登录它。创建或刷新沙箱时,生产中处于活动状态的相同用户在沙箱中处于活动状态,因此,如果所有许可证都已占用,则需要停用活动用户以激活非活动开发人员用户。只需确保您在沙箱中停用的用户是永远不会登录该环境的众多生产用户之一。同样,您应该使生产开发人员用户模板在生产组织上处于非活动状态,因此它不会使用付费生产许可证。

有关如何激活,停用或编辑用户的详细信息,请参阅Salesforce联机帮助中的“编辑用户”。

管理沙箱

要管理沙箱,请从“设置”中的“快速查找”框中输入“Sandboxes”,然后选择“Sandboxes”。 显示现有沙箱的列表。

  • 单击“New Sandbox”以创建沙箱。当组织达到其沙箱限制时,Salesforce会停用“New Sandbox”按钮。如有必要,请与Salesforce联系,为您的组织订购更多沙箱。
  • 单击“Sandbox History”以查看沙箱刷新历史记录的日志,包括何时创建沙箱以及创建沙箱的人员。
  • 单击“Refresh”以使用新副本替换现有沙箱。 Salesforce仅显示适用于刷新的沙箱的“Refresh”链接,该链接因不同类型的沙箱而异。在等待刷新完成时,您现有的此沙箱副本仍然可用。刷新的副本在您激活之前处于非活动状态。
  • 单击“Activate”以激活刷新的沙箱。您必须先激活刷新的沙箱才能访问它。 Salesforce仅为未激活的沙箱显示此选项。
    警告:激活刷新的沙箱会使用刷新的版本替换现有的沙箱,永久删除现有版本及其中的所有数据。您的生产组织及其数据不受影响。
  • 单击Del删除沙箱。
    警告:删除沙箱将永久删除沙箱及其中的所有数据,包括已从沙箱上载的所有出站更改集。
  • 管理员可以单击“Login”以用户身份登录沙箱。 Salesforce仅为活动沙箱显示此选项。用户可以通过将.sandbox_name附加到其Salesforce用户名来登录https://test.salesforce.com上的沙箱。例如,如果生产组织的用户名是user1@acme.com,沙箱名为“test”,则登录沙箱的修改后的用户名为user1@acme.com.test。
  • 单击沙箱名称以查看有关沙箱的详细信息,包括沙箱类型及其创建时间。

Salesforce开发生命周期(1)介绍

学习目标

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

  1. 在生产组织中开发
  2. 用Sandbox开发
  3. 沙箱组织
  4. 快速入门:使用沙箱和更改集
  5. 创建开发人员沙箱
  6. 授权部署连接
  7. 创建和上载出站变更集
  8. 验证入站变更集
  9. 部署入站变更集

 

  1. 在Lightning平台上开发应用程序非常简单,直接且高效。开发人员可以使用Web界面的点击工具定义应用程序组件,例如自定义对象和字段,工作流规则,Visualforce页面以及Apex类和触发器。可以立即实施和部署简单更改,而不会影响生产组织中的其他用户。更复杂的功能可以保留在开发状态,直到它们经过全面测试,然后部署到生产组织中的每个人。
  2. 但是,与其他几个开发人员合作构建大型企业应用程序时,这些相同的开发实践如何运作?在使用高度自定义的逻辑和用户界面开发复杂应用程序时,在单一环境中即时配置不再有意义。这些应用程序需要时间来开发,并需要更多正式的实践来​​确保它们按预期工作并满足用户的需求。

    还有很多中间立场。您的项目可能看起来不那么大,也许您正在自己进行开发以及日常管理任务。您仍然可以使用沙箱作为开发环境 – 您可以在不影响最终用户的情况下开发自定义和代码的地方。更传统的基于项目的开发为Lightning Platform开发开辟了新的可能性,但也需要新的开发,迁移和同步流程。

    无论您是架构师,管理员,开发人员还是经理,本指南都将帮助您准备在Lightning平台上开发和发布应用程序。它从最基本的场景开始,使用开发人员沙箱和更改集。后面的章节介绍了更复杂的企业方案的其他开发环境,工具和流程。

    Develop in a Production Organization

    开发新功能的最简单方法是使用Salesforce Web用户界面自定义生产组织。 您可以使用功能强大且易于使用的声明性工具开发新对象和应用程序。 在这种情况下,所有开发都在生产组织上进行,因此不需要单独的开发或测试环境。 虽然此过程是完成开发生命周期循环的最快方法,但您可以完成的任务有限。 例如,您无法直接在生产组织中编写Apex代码。

 

典型的开发生命周期:

  1. 规划功能要求。
  2. 使用Salesforce Web工具进行开发,使用配置文件隐藏您的更改,直到它们准备好部署。
  3. 更新配置文件以显示对相应用户的更改。
  4. 通知最终用户更改。

单个管理员可以有效地开发新的仪表板,报告和电子邮件模板,或者以这种方式向现有对象添加新的自定义字段。但是,当开发更复杂并且涉及多个团队成员时,更正式的应用程序生命周期场景是合适的。

用Sandbox开发

对于稍微复杂一些或必须与生产组织隔离的开发任务,您可以使用单独的开发环境,通常是沙箱。在此方案中,所有开发和测试都在开发环境中进行,然后将更改提升到生产组织。

如果要同时在生产和沙箱组织中开发项目,请考虑跟踪在生产组织中进行的设置更改并在沙箱中复制它们。这很重要,因为如果您的沙箱具有过时的自定义设置,则在从沙箱中提升时,您可能会无意中使用这些较旧的自定义项替换生产中的较新更改。

典型的开发生命周期:

  1. 创建开发环境。
  2. 使用Salesforce Web和本地工具进行开发。
  3. 在开发环境中进行测试。
  4. 在开发环境中复制生产更改。
  5. 将您开发的内容部署到生产组织。 典型的开发项目:
    • 新的自定义对象,选项卡和应用程序
    • 与其他系统的集成
    • 涉及Apex,Visualforce,工作流程或新验证规则的应用程序

沙箱组织

沙箱是您的生产组织的副本。 沙箱包含相同的元数据 – 作为生产组织的配置信息,例如自定义对象和字段,应用程序和工作流的类型。 该元数据以及完整沙箱中的数据将复制到与生产组织隔离的新组织中。 您在沙箱中执行的操作不会影响您的生产组织。

沙盒可用于Professional,Enterprise,Unlimited和Performance Edition。 使用Unlimited和Performance Edition,您可以创建多个不同类型的沙箱副本。 使用沙箱进行开发,测试,培训或其他目的,而不会影响Salesforce生产组织中的数据和应用程序。 每个沙箱实例都与其他所有沙箱实例隔离,就像它们来自生产一样。

关于在组织之间迁移更改

将配置更改从一个组织发送到另一个组织的最简单方法是使用更改集。 要将当前组织的自定义项发送到其他组织,请创建出站更改集。 发送更改集后,接收组织会将其视为入站更改集。

更改集只能包含您可以通过“设置”菜单进行的更改,并且它们不支持可自定义的每种类型的组件。您也无法使用更改集来重命名或删除组件。如果进行更改集不支持的更改,则可以通过重复在其他组织中执行的步骤手动迁移它们。有关更改集中可用组件的更多信息,请参阅Salesforce联机帮助。

某些组件依赖于其他组件。例如,自定义对象的自定义字段依赖于该自定义对象的存在。如果您尝试将这些自定义字段迁移到不包含它们所依赖的自定义对象的组织,则部署将失败。创建更改集时,可以轻松查看和添加依赖项,以确保迁移所有必需的组件。

在两个组织之间发送更改集需要部署连接。变更集只能在与生产组织相关联的组织之间发送。例如,生产组织和沙箱,或从同一组织创建的两个沙箱可以发送或接收更改集。

仅部署连接不允许在组织之间发送更改集。 必须授权每个组织发送和接收变更集。 这种增加的安全级别强制执行代码提升路径,并防止组织设置元数据被错误覆盖。

快速入门:使用沙箱和更改集

按照以下步骤创建开发人员沙箱,并使用更改集将您在其中创建的配置更改迁移到生产组织。

创建开发人员沙箱

使用开发人员沙箱确保您的更改与生产隔离,直到您准备好部署它们为止。

沙盒可用于Professional,Enterprise,Unlimited和Performance版本。

  1. 从“设置”中,在“快速查找”框中输入“Sandboxes”,然后选择“Sandboxes”。
  2. 单击“New Sandbox.”。
  3. 输入沙箱的名称和描述。
  4. 选择Developer作为沙箱类型。
  5. 单击“开始复制”。
    此过程可能需要一段时间,具体取决于您的组织规模。沙箱完成复制后,您会收到通知电子邮件。
  6. 单击通知电子邮件中的链接以访问您的沙箱。
    您可以通过将.sandbox_name附加到您的用户名来登录test.salesforce.com/login.jsp中的沙箱。例如,如果您的生产组织的用户名是user1@acme.com,那么名为“test”的沙箱的用户名是user1@acme.com.test。
    注意:Salesforce会自动更改沙箱用户名,但不会更改密码。

如果您想在将更改集用于开发项目之前尝试使用更改集,请立即在开发人员沙箱中使用自定义字段创建测试自定义对象。 您可以在接下来的步骤中练习部署这些自定义项,并在完成后删除它们。

授权部署连接

在您可以从沙箱或其他组织接收更改集之前,请在接收更改的组织中授予部署连接。

  1. 登录将接收入站变更集的组织。 通常,这是与您的沙箱关联的生产组织。
  2. 从“设置”中,在“快速查找”框中输入“Deployment ”,然后选择“Deployment Settings
  3. 单击要从中接收出站更改集的组织旁边的“Edit”。 通常这是你的沙箱。
  4. 选择“Allow Inbound Changes”并单击“Save”。

创建和上载出站变更集

通常,您在沙箱组织中创建出站更改集并将其部署到生产中。 但是,根据您的开发生命周期,您可以选择在相关组织之间以任一方向迁移更改。

  1. 从“设置”中,在“快速查找”框中输入“Outbound Change Sets”,然后选择“Outbound Change Sets”。
  2. 单击“New”。
  3. 输入更改集的名称,然后单击“Save”。
  4. 在“更改集组件”部分中,单击“Add”。
  5. 选择组件类型(例如,“自定义对象”或“自定义字段”),要添加的组件,然后单击“Add To Change Set.”。
    如果您正在尝试测试自定义对象和自定义字段,请尝试首先将其中一个添加到更改集。
  6. 单击“View/Add Dependencies”以查看您添加到更改集的组件是否依赖于其他自定义项。
    对于测试自定义对象和自定义字段,将列出相关组件和页面布局。
  7. 选择要添加的从属组件,然后单击“Add To Change Set”。
  8. 单击“Upload”并选择目标组织。
    出站更改集详细信息页面显示一条消息,并在上载完成时收到电子邮件通知。

验证入站变更集

通过验证更改集,您可以在不提交更改的情况下查看成功或失败消息。

  1. 从“设置”中,在“快速查找”框中输入“入站变更集”,然后选择“入站变更集”。
  2. 单击更改集的名称。
  3. 单击“验证”。
    我们建议在非高峰使用时间开始验证,并在验证过程中限制对组织的更改。验证过程会锁定正在部署的资源。在验证过程中对锁定资源或与这些资源相关的项目所做的更改可能会导致错误。
    注意:如果将字段类型从Master-Detail更改为Lookup,反之亦然,则在使用Validate选项测试部署时不支持更改。测试部署不支持此更改,以避免数据丢失或损坏。如果部署包中包含测试部署不支持的更改,则测试部署将失败并发出错误。
    如果部署包将字段类型从Master-Detail更改为Lookup,反之亦然,则仍可在部署到生产之前验证更改。对另一个测试沙箱执行完全部署。完整部署包括在部署过程中验证更改
  4. 验证完成后,单击“查看结果”。
    如果收到错误消息,请在部署之前解决它们。 最常见的错误原因是未包含在更改集和Apex测试失败中的相关组件。

部署入站变更集

部署更改集会将其包含的更改提交给目标组织。

  1. 从“设置”中,在“快速查找”框中输入“入站变更集”,然后选择“入站变更集”。
  2. 在“更改集等待部署”列表中,单击要部署的更改集的名称。
  3. 单击“部署”。
    变更集部署在单个事务中。 如果部署由于任何原因无法完成,则回滚整个事务。 部署成功完成后,所有更改都将提交到您的组织,并且无法回滚部署。

处理Salesforce无法访问情况

解决问题:

  1. 无法打开Salesforce登陆画面
  2. 登陆Salesforce后,速度慢。

第一步:查看服务器状态

打开 https://trust.salesforce.com/ 网站
检查网页https://status.salesforce.com/. 我们在上面发布服务器实例的可用情况和性能问题,在服务器实例图标矩阵上方区域,我们偶尔会在与互联网服务器供应商合作处理网络问题时贴出常规讯息。

第二步:自查辨别问题原因

  • 检查是否整个团队都经历相同程度的性能问题,是否有发现缓和问题的举措,比如,你
    总是使用一个物理线路连接而使用 WiFi 的同事并没遇到使用问题。也可同时使用手机的
    热点来替换 WiFi 或局域网,尝试连接登录对比结果
  • 另外,如果你的公司有多个办公室和远程工作员工,请与他们确认 – 他们是否也有同样
    问题;
  • 与其他日本网站做比较(如 https://www.japan.go.jp/ 或 https://www.yahoo.co.jp/)看是否也有页面加载缓慢的情况;

以上的方法之后如发现问题现象依然存在且其他网站访问正常,请接着下面的步骤进行。

第三步:执行Traceroute命令

执行到 Salesforce 的 Traceroute 命令,并保存文件,请准备可能在之后请求 Salesforce 支持会用到的日志文件,首先是 Traceroute 命令日志,一个 traceroute 命令可以告知我们从你站点到 Salesforce 的通路情况,这也可以帮助发现哪里可能时发生问题的点,要运行 traceroute 命令
微软视窗用户:

  1. 在视窗任务拦, 点击开始, 选择运行。
  2. 在文本框中键入”cmd” (没有引号) 并且按回车键。DOS 窗口将出现。
  3. 在 DOS 提示, 键入”tracert www.salesforce.com >> c:\tracert.txt” (没有引号)
    并且按回车键。(这个过程需要大约 1 分钟。)
  4. 重覆步骤 3, 键入”tracert ap(x).salesforce.com >> c:\tracert.txt” (没有引号) 。
    其中 ap(x)指的是你们系统在 Salesforce 平台上的实例代号,如果在平时系统访问时的 URL 显示的是 ap1.salesforce.com,这里的 ap1 就是你们公司生产环境所在的实例号;如果是沙盒测试环境,一般是 cs(x)
  5. 一旦所有三个步骤完成了, 在您的 C: \ 盘目录下确认 tracert.txt 文件生成(之后需要以提交个案的形式附带此文件给 Salesforce 客户服务做进一步分析)。

第四步:执行PING命令

请依照以下提示来运行一些更广泛详细的数据包传输测试.在键入每个指令后,让程序运
行直到返回到指令提示符,再进行下一步操作。

  1. 点击开始, 选择运行。 键入 cmd 。 (以下用 ap5 为例,实际情况下以你们的真实系统实例代号替代)
  2. 键入”ping -f -n 25 -l 1200 ap5.salesforce.com >>C:\sfdcping.txt”
  3. 键入”ping -f -n 25 -l 1300 ap5.salesforce.com >>C:\sfdcping.txt”
  4. 键入”ping -f -n 25 -l 1400 ap5.salesforce.com >>C:\sfdcping.txt”
    在以上所有步骤中, 在 1200, 1300, 和 1400 之前是一个”破折号 L”。在您的 C: \ 盘目录下确认 sfdcping.txt 文件生成。之后以提交个案的形式附带此文件给 Salesforce 客户服务做进一步分析。

第五步:向 Salesforce 获取技术支持

–如果可以登录系统
请至网页 https://help.salesforce.com/home,此处需要以自己的 Salesforce 用户身份登录
系统。在页面上找到个案入口,按照指导创建个案,记住以下几个要点

  1. 路径选择正确, General Salesfroce Functionality –>Network and Performance;选择 Log a New Case
  2. 正确书写标题-请用英文描写标题,并加入关键字 –“China Connectivity”
  3. 准确定义等级(Severity Level),请标注 Level2
  4. 仔细描述问题症状和执行的自查内容及结果,可以的话,提供复现问题的步骤
  5. 补充完整必填项目
  6. 保存并提交个案后,记得再次打开个案,将以上两个附件(tracert.txt 和sfdcping.txt)附加到个案中。
    –如果不可以登录系统
    请致电 Salesforce 国内支持热线:400-120-1224;联系坐席帮助提交紧急个案。

 

(用户认证)保护用户的身份

保护用户的身份

学习目标

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

  • 除了用户名和密码之外,还要说明识别用户的方法。
  • 设置双因素身份验证。
  • 使用Salesforce Authenticator应用程序验证身份。
  • 获取有关登录组织的用户的登录信息。

通过双因素身份验证和Salesforce身份验证器实现安全身份

作为管理员,您可能需要确保Salesforce组织安全并且用户可以快速轻松地登录。保护组织的一种方法是要求用户提供的不仅仅是用户名和密码。安全专家将此称为双因素身份验证,简称为2FA。

注意

要完成本机中的任务,您需要运行Android或iOS的智能手机。

什么是双因素身份验证?

听起来像是一个数学方程,对吧?无论数学让你兴奋还是让你感到恐惧,只要知道2FA与高中代数无关。但它确保您的用户就是他们所说的人。
这两个因素是什么?
  • 用户知道的东西,比如他们的密码
  • 用户拥有的东西,例如安装了身份验证器应用程序的移动设备

2FA Something you know and something you have

第二个身份验证因素为您的组织提供了额外的安全保护。

作为管理员,您可以在每次用户登录时都要求它。或者您可以仅在某些情况下要求它,例如当用户从无法识别的设备登录或尝试访问高风险应用程序时。用户使用两个身份验证因素成功验证其身份后,他们可以访问Salesforce并开始工作。

听起来很酷?让我们看看它是如何工作的。

双因素身份验证的工作原理

您可能不知道它的名称,但您可能已经使用过双因素身份验证。每次从ATM取款时,您都会使用您拥有的东西(您的银行卡)以及您知道的东西(您的PIN码)。也许您已经在手机上安装了身份验证器应用程序。例如,您输入在登录某些在线帐户时从应用获得的验证码。此唯一代码有时称为基于时间的一次性密码(或简称TOTP),因为它在一段时间后过期。包括Salesforce和Google在内的多家供应商提供了生成这些时间敏感代码的应用程序。
SPOILER ALERT:如果您使用重新设计的Salesforce Authenticator移动应用程序(版本2或更高版本),则无需使用代码即可验证您的身份。我们稍后会谈到令人兴奋的发展。

这是一段视频,解释了如何使用Salesforce Authenticator通过双因素身份验证来保护Salesforce组织。

什么时候可以提示用户进行双因素身份验证?

 

在各种情况下,可以提示用户进行双因素身份验证。
  • 每次他们登录Salesforce时,包括API登录。
  • 他们访问连接的应用,信息中心或报告时。此过程称为升级或高保证身份验证。
  • 在自定义登录流程期间或在自定义应用程序中,例如,在阅读许可协议之前。稍后将详细介绍此主题。

为每次登录设置双因素身份验证

现在你已经了解了双因素身份验证的基础知识,让我们看看它的设置是多么容易。
假设您是Jedeye Technologies的Salesforce管理员,Jedeye Technologies是一家远在很远的银河系的公司。您的首席安全官已经向您发出了一项使命:每次他们尝试访问公司的Salesforce组织时,让所有员工提供的信息超过用户名和密码。

为了简单起见,让我们为新的Jedeye Technologies员工Sia Thripio设置双因素身份验证。在现实世界中,您可以为现有用户,新用户和用户配置文件设置双因素身份验证(2FA)。我们首先为2FA设置正确的会话安全级别,为Sia创建Salesforce帐户,然后设置2FA。

步骤1:设置双因素身份验证的会话安全级别

首先,让我们确保正确的安全级别与双因素身份验证登录方法相关联。在为任何管理员用户设置2FA要求之前执行此步骤非常重要。否则,您可能会阻止自己或其他管理员登录。

  1. 从“设置”中,在“快速查找”框中输入“会话设置”,然后选择 Session Settings.
  2. 在会话安全级别下,确保双因素身份验证属于高保证类别。

第2步:创建员工帐户

  1. 从“设置”中,在“快速查找”框中输入用户,然后选择 Users.
  2. 单击 New User.
  3. 对于名字和姓氏,分别输入Sia和Thripio。
  4. 在电子邮件字段中输入您的电子邮件地址此设置用于获取Sia的帐户通知。
  5. 为Sia创建用户名并在“用户名”字段中输入。它必须采用电子邮件地址格式,但不一定是有效的电子邮件地址。我们打算用sthripio@jedeye-tech.com。
  6. 编辑或接受昵称值。
  7. 对于User License,选择 Salesforce Platform.
  8. 对于Profile,选择 Standard Platform User.当您在这里时,取消选择接收Salesforce CRM内容警报的选项。不需要使用Salesforce中不必要的电子邮件来填充您的收件箱。
  9. 确保选中 Generate new password and notify user immediately – 它位于页面底部。 Salesforce会向您发送有关Sia新帐户的电子邮件,因为您在“电子邮件”字段中输入了您的电子邮件地址。
  10. 单击 Save. Salesforce会通过电子邮件向您发送验证帐户并设置Sia密码的链接。
  11. 以Sia身份登录,然后重置密码。

设置密码后,创建一个您将分配给Sia用户帐户的权限集。

步骤3:为双因素身份验证创建权限集

权限集是一组设置和权限,可让用户访问各种Salesforce功能,包括双因素身份验证。通常,您为一组用户创建权限集。但是对于这个例子,我们为Sia设置了一个。

  1. 如果您以Sia身份登录,请退出。以DE组织的系统管理员身份再次登录。
  2. 从“设置”中,在“快速查找”框中输入“权限”,然后选择 Permission Sets.
  3. 单击 New.
  4. 标记权限 “2fa Auth for User Logins”.
  5. 单击 Save.
  6. 在“系统”下,单击 System Permissions. 现在,您将进入2fa Auth for User Logins权限集的详细信息页面。
  7. 单击 Edit.
  8. 选择 Two-Factor Authentication for User Interface Logins.
  9. 单击 Save.

System Permissions你快到了!您只需要分配权限集。

第4步:将权限集分配给Sia的帐户

如果您不在新权限集的详细信息页面上,请返回该处。

  1. 在新权限集的详细信息页面上,单击 Manage Assignments.
  2. 单击 Add Assignments. 在用户列表中,选中Sia帐户旁边的复选框。 (如果需要,您一次最多可以分配1,000个用户。)
  3. 单击 Assign.

非常棒!您已为Sia设置双因素身份验证。当Sia登录时,除了用户名和密码之外,还提示她提供第二个身份验证因素。

但Sia使用什么作为第二个因素?在登录之前,她需要获取应用并将其连接到她的Salesforce用户帐户。

将Salesforce Authenticator移动应用程序连接到用户帐户

就像对云中的城市进行突击访问一样,要求双因素身份验证而不帮助用户获得第二个因素是一个坏主意。你可能不会被冻结并被俘虏,但是当你最不想要它们时,你可能会收到很多电话,就像你正在观看一部史诗般的电影。幸运的是,Salesforce使您可以轻松地帮助您的用户。只需让他们将免费的Salesforce Authenticator应用程序下载到他们的智能手机上并将其连接到他们的Salesforce帐户即可。
如果用户不立即下载应用程序,那不是灾难。在设置双因素身份验证要求后,首次登录时会提示他们这样做。

让我们的新员工Sia Thripio查看应用程序。获取您的Android或iOS智能手机并假装它是Sia的手机。您将下载Salesforce Authenticator应用程序并将其连接到Sia的帐户。

请注意,您将在以下步骤中在两台设备之间来回跳转。当您使用PHONE时,您在Salesforce Authenticator应用程序中作为Sia工作。当您使用DESKTOP时,您在Web浏览器中的Salesforce DE组织中以Sia身份登录。

  1. PHONE: 从App Store下载并安装适用于iOS的Salesforce Authenticator或从Google Play下载适用于Android的Salesforce Authenticator。
  2. PHONE: 点击应用程序图标以打开Salesforce Authenticator。
  3. DESKTOP: 如果您仍以系统管理员身份登录DE组织,请退出。
  4. DESKTOP: 使用Sia的用户名​​和密码登录.Salesforce会提示您将Salesforce Authenticator连接到Sia的帐户。

    Salesforce desktop login screen

  5. PHONE: 浏览简短的应用之旅,了解Salesforce Authenticator的工作原理。
  6. PHONE: 当您完成巡视后,输入Sia的手机号码以创建其帐户的备份。 Authenticator会向您发送一条带有链接的文本消息,以验证Sia的手机号码。收到短信后,点击该链接以打开Authenticator应用。该应用程序会提示您设置密码。如果她需要恢复帐户,Sia将使用此密码。如果您不想为Sia选择密码,她可以稍后设置备份。
  7. 点击+将Sia的帐户添加到Salesforce Authenticator。该应用程序显示一个双字短语。 (嘿,你有没有得到一个特别诗意或有趣的短语?让我们知道!#Trailhead #AwesomePhrase #SalesforceAuthenticator)
  8. DESKTOP: 在双字短语字段中输入短语。

    Salesforce Authenticator two-word phrase

  9. DESKTOP: 单击 Connect.
  10. PHONE: Salesforce Authenticator向您显示有关您正在连接的帐户的详细信息:Sia的用户名​​和服务提供商的名称 – 在本例中为Salesforce。

    Salesforce Authenticator connect account

  11. PHONE: 点击 Connect.
  12. PHONE: 点击 Approve 以Sia完成登录Salesforce。
  13. DESKTOP: Sia’s in! 她可以开展业务。

现在,每当有人登录Sia的帐户时,她都会在她的手机上收到通知。她打开应用程序并检查活动详细信息。如果一切正常,她只需点击手机上的Approve。如果她不认识这项活动,她会轻拍Deny来阻止它。

让我们仔细看看Salesforce Authenticator跟踪的数据。

  1. Salesforce Authenticator正在验证的操作。如果您设置更严格的安全性,其他操作可能会显示在此处。例如,当有人试图访问记录或仪表板时,您可能需要进行身份验证。此过程称为“升级”身份验证。
  2. 正在尝试登录的用户。
  3. 用户尝试访问的服务。您可以将Salesforce Authenticator与LastPass密码管理器和其他需要更强身份验证的服务一起使用。
  4. 正在进行登录尝试的设备或浏览器。
  5. 手机的位置。

Salesforce Authenticator datapoints

自动化身份验证过程

假设Sia定期从同一个地方(办公室,她的家,或她最喜欢的,昏暗的咖啡馆)登录。攻略批准可能会在一段时间后变老。如果她让Salesforce Authenticator使用她的手机的位置服务,她可以告诉应用程序在她位于特定位置时自动验证她的活动。换句话说,如果一切正常,她甚至不必将手机从口袋里拿出来。她无形地完成了双因素身份验证。

我们来试试吧。

  1. DESKTOP: 退出Sia的帐户,然后再次以Sia身份登录。
  2. PHONE: 在提示符下,选择 Always verify from here.
  3. DESKTOP: 退出Sia的帐户并重新登录。瞧!系统不会提示您输入密码。 Salesforce Authenticator认识到Sia使用相同的设备并在同一位置再次登录到她的Salesforce帐户。访问自动授予!

每当Sia尝试从其他位置登录时,她都可以将该位置添加到受信任位置的Salesforce Authenticator列表中。要查看列表和其他帐户详细信息,Sia会选择打开帐户详细信息页面的信息图标。

Salseforce Authenticator account information

帐户详细信息页面列出了受信任位置和登录活动历史。已验证活动显示Salesforce Authenticator已验证Sia登录Salesforce的次数。自动化显示Salesforce Authenticator从受信任位置自动记录Sia的次数。

Salesforce Authenticator account details

如果Sia不再信任某个地点怎么办?简单。她向左挥手。通过选择Salesforce Authenticator设置 Salesforce Authenticator settings icon然后选择 Clear Trusted Locations,她可以立即清除所有受信任位置。

有时自动验证不起作用,例如数据连接中断时。不是问题。 Sia只输入Salesforce Authenticator显示的代码。

想要仅将用户的自动验证限制为可信IP地址,例如您的公司网络?还是完全阻止他们?您可以。以管理员身份登录后,转到您的组织会话设置并更改允许的内容。

Session Settings that control location-based automated verifications

如果Sia失去她的手机会发生什么?

好问题。如您所知,用户在沙漠行星上坠毁或被淹没并丢失手机。一直发生。如果Sia丢失了她的手机,获得了新手机,或意外删除了Salesforce Authenticator,她有一些选择。 Sia可以从她之前制作的备份中恢复帐户,也可以为她重置双因素身份验证。
如果Sia在她的Salesforce Authenticator应用程序中启用了帐户备份,那么她的状态非常好。她所要做的就是在她的新手机上重新安装Salesforce Authenticator。当她打开应用程序时,她会看到从备份中恢复帐户的选项。 Sia输入她备份帐户时使用的密码,她的帐户重新出现在她的手机上。

如果Sia没有备份她的帐户怎么办?以下是您可以提供的帮助。

  1. 以管理员身份登录。
  2. 从“设置”中,在“快速查找”框中输入用户,然后选择 Users.
  3. 单击Sia的名称。
  4. 在Sia的用户详细信息页面上,单击App Registration: Salesforce Authenticator旁边的Disconnect

下次Sia登录时,如果她没有连接其他验证方法,则会提示她再次连接Salesforce Authenticator。

看谁登录你的组织

管理员工作的一个重要部分是知道谁登录到您的组织。这就是身份验证历史的用途。
  1. 以DE组织的系统管理员身份登录。
  2. 从“设置”中,在“快速查找”框中输入“验证”,然后选择 Identity Verification History.

查看“位置”列。 它默认为用户的国家/地区,但您可以通过创建自定义视图来获取更多详细信息。

Identity verification history

恭喜,管理员! 您已设置2FA并允许用户使用它登录Salesforce。 我们建议您为用户探索其他2FA选项,例如U2F安全密钥,它们是第二个因素,不需要移动电话。 让我们在下一个单元“使用我的域自定义登录过程”中了解有关如何更好地控制登录过程的更多信息。

闪电流(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

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

闪电流(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.