学习目标
完成本单元后,您将能够:
- 在生产组织中开发
- 用Sandbox开发
- 沙箱组织
- 快速入门:使用沙箱和更改集
- 创建开发人员沙箱
- 授权部署连接
- 创建和上载出站变更集
- 验证入站变更集
- 部署入站变更集
- 在Lightning平台上开发应用程序非常简单,直接且高效。开发人员可以使用Web界面的点击工具定义应用程序组件,例如自定义对象和字段,工作流规则,Visualforce页面以及Apex类和触发器。可以立即实施和部署简单更改,而不会影响生产组织中的其他用户。更复杂的功能可以保留在开发状态,直到它们经过全面测试,然后部署到生产组织中的每个人。
- 但是,与其他几个开发人员合作构建大型企业应用程序时,这些相同的开发实践如何运作?在使用高度自定义的逻辑和用户界面开发复杂应用程序时,在单一环境中即时配置不再有意义。这些应用程序需要时间来开发,并需要更多正式的实践来确保它们按预期工作并满足用户的需求。
还有很多中间立场。您的项目可能看起来不那么大,也许您正在自己进行开发以及日常管理任务。您仍然可以使用沙箱作为开发环境 – 您可以在不影响最终用户的情况下开发自定义和代码的地方。更传统的基于项目的开发为Lightning Platform开发开辟了新的可能性,但也需要新的开发,迁移和同步流程。
无论您是架构师,管理员,开发人员还是经理,本指南都将帮助您准备在Lightning平台上开发和发布应用程序。它从最基本的场景开始,使用开发人员沙箱和更改集。后面的章节介绍了更复杂的企业方案的其他开发环境,工具和流程。
Develop in a Production Organization
开发新功能的最简单方法是使用Salesforce Web用户界面自定义生产组织。 您可以使用功能强大且易于使用的声明性工具开发新对象和应用程序。 在这种情况下,所有开发都在生产组织上进行,因此不需要单独的开发或测试环境。 虽然此过程是完成开发生命周期循环的最快方法,但您可以完成的任务有限。 例如,您无法直接在生产组织中编写Apex代码。
典型的开发生命周期:
- 规划功能要求。
- 使用Salesforce Web工具进行开发,使用配置文件隐藏您的更改,直到它们准备好部署。
- 更新配置文件以显示对相应用户的更改。
- 通知最终用户更改。
单个管理员可以有效地开发新的仪表板,报告和电子邮件模板,或者以这种方式向现有对象添加新的自定义字段。但是,当开发更复杂并且涉及多个团队成员时,更正式的应用程序生命周期场景是合适的。
用Sandbox开发
对于稍微复杂一些或必须与生产组织隔离的开发任务,您可以使用单独的开发环境,通常是沙箱。在此方案中,所有开发和测试都在开发环境中进行,然后将更改提升到生产组织。
如果要同时在生产和沙箱组织中开发项目,请考虑跟踪在生产组织中进行的设置更改并在沙箱中复制它们。这很重要,因为如果您的沙箱具有过时的自定义设置,则在从沙箱中提升时,您可能会无意中使用这些较旧的自定义项替换生产中的较新更改。
典型的开发生命周期:
- 创建开发环境。
- 使用Salesforce Web和本地工具进行开发。
- 在开发环境中进行测试。
- 在开发环境中复制生产更改。
- 将您开发的内容部署到生产组织。 典型的开发项目:
- 新的自定义对象,选项卡和应用程序
- 与其他系统的集成
- 涉及Apex,Visualforce,工作流程或新验证规则的应用程序
沙箱组织
沙箱是您的生产组织的副本。 沙箱包含相同的元数据 – 作为生产组织的配置信息,例如自定义对象和字段,应用程序和工作流的类型。 该元数据以及完整沙箱中的数据将复制到与生产组织隔离的新组织中。 您在沙箱中执行的操作不会影响您的生产组织。
沙盒可用于Professional,Enterprise,Unlimited和Performance Edition。 使用Unlimited和Performance Edition,您可以创建多个不同类型的沙箱副本。 使用沙箱进行开发,测试,培训或其他目的,而不会影响Salesforce生产组织中的数据和应用程序。 每个沙箱实例都与其他所有沙箱实例隔离,就像它们来自生产一样。
关于在组织之间迁移更改
将配置更改从一个组织发送到另一个组织的最简单方法是使用更改集。 要将当前组织的自定义项发送到其他组织,请创建出站更改集。 发送更改集后,接收组织会将其视为入站更改集。
更改集只能包含您可以通过“设置”菜单进行的更改,并且它们不支持可自定义的每种类型的组件。您也无法使用更改集来重命名或删除组件。如果进行更改集不支持的更改,则可以通过重复在其他组织中执行的步骤手动迁移它们。有关更改集中可用组件的更多信息,请参阅Salesforce联机帮助。
某些组件依赖于其他组件。例如,自定义对象的自定义字段依赖于该自定义对象的存在。如果您尝试将这些自定义字段迁移到不包含它们所依赖的自定义对象的组织,则部署将失败。创建更改集时,可以轻松查看和添加依赖项,以确保迁移所有必需的组件。
在两个组织之间发送更改集需要部署连接。变更集只能在与生产组织相关联的组织之间发送。例如,生产组织和沙箱,或从同一组织创建的两个沙箱可以发送或接收更改集。
仅部署连接不允许在组织之间发送更改集。 必须授权每个组织发送和接收变更集。 这种增加的安全级别强制执行代码提升路径,并防止组织设置元数据被错误覆盖。
快速入门:使用沙箱和更改集
按照以下步骤创建开发人员沙箱,并使用更改集将您在其中创建的配置更改迁移到生产组织。
创建开发人员沙箱
使用开发人员沙箱确保您的更改与生产隔离,直到您准备好部署它们为止。
沙盒可用于Professional,Enterprise,Unlimited和Performance版本。
- 从“设置”中,在“快速查找”框中输入“Sandboxes”,然后选择“Sandboxes”。
- 单击“New Sandbox.”。
- 输入沙箱的名称和描述。
- 选择Developer作为沙箱类型。
- 单击“开始复制”。
此过程可能需要一段时间,具体取决于您的组织规模。沙箱完成复制后,您会收到通知电子邮件。 - 单击通知电子邮件中的链接以访问您的沙箱。
您可以通过将.sandbox_name附加到您的用户名来登录test.salesforce.com/login.jsp中的沙箱。例如,如果您的生产组织的用户名是user1@acme.com,那么名为“test”的沙箱的用户名是user1@acme.com.test。
注意:Salesforce会自动更改沙箱用户名,但不会更改密码。
如果您想在将更改集用于开发项目之前尝试使用更改集,请立即在开发人员沙箱中使用自定义字段创建测试自定义对象。 您可以在接下来的步骤中练习部署这些自定义项,并在完成后删除它们。
授权部署连接
在您可以从沙箱或其他组织接收更改集之前,请在接收更改的组织中授予部署连接。
- 登录将接收入站变更集的组织。 通常,这是与您的沙箱关联的生产组织。
- 从“设置”中,在“快速查找”框中输入“Deployment ”,然后选择“Deployment Settings”
- 单击要从中接收出站更改集的组织旁边的“Edit”。 通常这是你的沙箱。
- 选择“Allow Inbound Changes”并单击“Save”。
创建和上载出站变更集
通常,您在沙箱组织中创建出站更改集并将其部署到生产中。 但是,根据您的开发生命周期,您可以选择在相关组织之间以任一方向迁移更改。
- 从“设置”中,在“快速查找”框中输入“Outbound Change Sets”,然后选择“Outbound Change Sets”。
- 单击“New”。
- 输入更改集的名称,然后单击“Save”。
- 在“更改集组件”部分中,单击“Add”。
- 选择组件类型(例如,“自定义对象”或“自定义字段”),要添加的组件,然后单击“Add To Change Set.”。
如果您正在尝试测试自定义对象和自定义字段,请尝试首先将其中一个添加到更改集。 - 单击“View/Add Dependencies”以查看您添加到更改集的组件是否依赖于其他自定义项。
对于测试自定义对象和自定义字段,将列出相关组件和页面布局。 - 选择要添加的从属组件,然后单击“Add To Change Set”。
- 单击“Upload”并选择目标组织。
出站更改集详细信息页面显示一条消息,并在上载完成时收到电子邮件通知。
验证入站变更集
通过验证更改集,您可以在不提交更改的情况下查看成功或失败消息。
- 从“设置”中,在“快速查找”框中输入“入站变更集”,然后选择“入站变更集”。
- 单击更改集的名称。
- 单击“验证”。
我们建议在非高峰使用时间开始验证,并在验证过程中限制对组织的更改。验证过程会锁定正在部署的资源。在验证过程中对锁定资源或与这些资源相关的项目所做的更改可能会导致错误。
注意:如果将字段类型从Master-Detail更改为Lookup,反之亦然,则在使用Validate选项测试部署时不支持更改。测试部署不支持此更改,以避免数据丢失或损坏。如果部署包中包含测试部署不支持的更改,则测试部署将失败并发出错误。
如果部署包将字段类型从Master-Detail更改为Lookup,反之亦然,则仍可在部署到生产之前验证更改。对另一个测试沙箱执行完全部署。完整部署包括在部署过程中验证更改 - 验证完成后,单击“查看结果”。
如果收到错误消息,请在部署之前解决它们。 最常见的错误原因是未包含在更改集和Apex测试失败中的相关组件。
部署入站变更集
部署更改集会将其包含的更改提交给目标组织。
- 从“设置”中,在“快速查找”框中输入“入站变更集”,然后选择“入站变更集”。
- 在“更改集等待部署”列表中,单击要部署的更改集的名称。
- 单击“部署”。
变更集部署在单个事务中。 如果部署由于任何原因无法完成,则回滚整个事务。 部署成功完成后,所有更改都将提交到您的组织,并且无法回滚部署。