应用程序部署(3)打包

学习目标

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

  • 列出命名空间的关键功能。
  • 描述为AppExchange合作伙伴使用托管 – 发布的软件包的好处。
  • 描述安装Managed-Beta软件包与Managed-Released软件包的影响。

Package里有什么?

一个包是用于组件的容器,例如Java JAR文件或Ruby GEM,用于将应用程序分发给客户。它包含一组具有唯一名称空间的元数据。一个软件包可以包含像个别组件一样小或与一组相关应用程序一样大的东西。

Salesforce平台就其本质而言鼓励一种敏捷开发模型,在该模型中,您可以逐步进行测试,并随时调整设计。 Managed-Beta软件包支持这种测试和修改方法。

托管 – 发布的软件包用于实时产品。您的客户期望一个稳定的应用程序随着时间的推移而不断发展,而不会破坏他们在其之上构建的业务流程。托管 – 发布的软件包有助于确保您不会破坏客户的定制并为您的知识产权提供保护。

管理发布的软件包的优点

托管 – 发布的软件包提供:

  • Apex的知识产权保护
  • 内置对API可访问组件的版本支持
  • 能够分支和修补以前的版本
  • 能够无缝地将补丁和主要更新推送给订户
  • 所有组件的唯一命名以确保无冲突安装
  • 能够通过许可证控制用户访问

客户组织中的包生命周期

我们来看看您的应用程序的打包和分发生命周期。

  1. 您在托管 – 发布的软件包中发布您的应用的第1版。
  2. 客户安装包装。
  3. 客户定制您的应用程序。
  4. 您在托管 – 发布的软件包中发布您的应用的第2版。
  5. 客户在现有软件包的顶部安装新版本的软件包。

我们说一个托管 – 发布的软件包是可升级的,因为客户可以在他们现有的版本上安装新版本。非托管软件包(合作伙伴通常不使用)和托管 – Beta软件包不可升级。

Salesforce平台具有高度可定制性,您的客户可能会定制您的应用。当您发布新版本时,它们取决于应用程序的一定程度的一致性,以使其定制不会中断。

托管 – 发布的软件包具有内置的安全措施,可以最大限度地减少新版本的影响。例如,您不能删除已提供给客户或对象的Apex方法。有关更多详细信息,请参阅ISVforce指南中的“托管软件包中可用的组件”部分。

创建一个简单的应用程序来打包

我们将在此打破我们自己的规则,并在创建包的同一组织中设置一个简单的应用程序。您只能在合作伙伴开发版(PDE)或Developer Edition组织中创建软件包。因此,请使用我们在最后一个单元中创建的PDE组织。

让我们通过创建一个世界上最简单的应用程序来完成一些实践包装的步骤。我们将创建一个显示自定义对象的单页应用程序。

  1. 转到设置菜单。
  2. 在Lightning Platform主页上,单击 Add App.
  3. 如下填写App Quick Start页面。
    字段
    App Trail Tracker
    Label Trail
    Plural Label Trails
    Screen of app quick start
  4. 点击 Create.
  5. 点击 Go To My App

而已。让我们试试这个应用程序。

  1. 点击 New.
  2. 对于Trail名称,输入 AppExchange Partner Basics.
  3. 点击 Save.

您已经使用您的应用创建了一条记录。十分简单。

包和命名空间

对于所有AppExchange应用程序和一些OEM嵌入式应用程序,客户将您的应用程序安装在具有自定义设置的现有组织中。考虑以下情况。

  • 客户已经使用API​​名称Vendor__c创建了一个自定义对象。
  • 您的应用有一个API名称为Vendor__c的自定义对象。

将安装您的应用程序覆盖您的客户的对象?不,谢天谢地。命名空间将我们从命运中解救出来。

为了防止冲突,托管包总是有一个名称空间。命名空间在Salesforce中是唯一的,因此托管软件包的安装不会与客户和其他合作伙伴所做的自定义设置相冲突。

开发组织只能有一个名称空间。您只能使用该名称空间创建一个包,但可以对该包进行更新并发布新版本。

命名空间如何被添加到您的应用程序?

当您在组织中创建名称空间时,它将附加到组织中的每个组件。如果您在该组织中创建了一个包,则添加到包中的每个组件都随附该命名空间。以下自定义对象显示(1)组织具有命名空间TrailApp_Test1,以及(2)Trail对象的API名称是TrailApp_Test1__Trail__c。

Screen showing Namespace Prefix and API Name using namespace

但是,添加名称空间时,Salesforce不会更新非Salesforce工件,如JavaScript,其中包含对对象或字段的引用。您必须自己更新这些参考。

选择一个名字空间

因为名称空间是唯一的,所以首先为你的黄金包org选择名字空间。您的客户会看到您用于上传到AppExchange的包的名称空间。如果您的公司名称是AW Computing,则需要命名空间,如awc或awcomputing。

不要在您的测试版包装组织中使用该名称空间,因为那么它不适用于您的黄金包组织。

创建一个名字空间

让我们创建您的名称空间,以便您可以打包您的应用程序。

注意

Trailhead不支持命名空间组织,因此请确保您正在开发新版开发人员版或合作伙伴开发人员版组织。如果您在用于完成Trailhead挑战的组织中创建名称空间,那么您将无法使用它获得新徽章。

  1. 从安装程序中,在快速查找框中输入软件包,然后单击 Packages.
  2. 在页面的开发者设置部分,点击 Edit.
  3. 要确认您要设置命名空间,请单击 Continue.
  4. 为名称空间前缀输入一个值。请记住,不要使用稍后可能要使用的名称。
    Screen for setting up namespace
  5. 点击 Check Availability. 重复步骤4和5,直到找到可用的名称空间。
  6. 点击 New.
  7. 点击 Review My Selections.
  8. 点击 Save.

软件包和测试

使托管 – 发布的软件包成为销售和发布应用程序的最佳选择的因素也使得它成为测试的不好选择。将某些组件添加到托管包后,您无法修改它们。比方说,在开发应用程序时,您会创建四个自定义对象,Larry,Curly,Moe和John。当你去测试你的应用时,你决定约翰是不必要的。抱歉!如果对象John在您的托管 – 发布包中,则无法删除它。

为了解决这个问题,我们提供了Managed-Beta软件包。 Beta软件包的组件可在您的软件包组织中编辑,直到创建一个托管 – 已发布的软件包。

注意

您只能在沙箱或Developer Edition组织或通过环境中心创建的测试组织中安装测试版软件包。

创建一个Managed-Beta包

继续并按照以下步骤创建您的Managed-Beta软件包。
  1. 如果您不在软件包页面上,请从安装程序中,在快速查找框中输入软件包,然后单击 Packages.
  2. 在Packages部分中,单击 New.
  3. 对于Package Name,输入 Trail App.
  4. 选择托管复选框以启用该选项。出现提示时,单击 OK.
    Screen showing creating managed package
  5. 点击 Save.
  6. 在“组件”子选项卡中,单击 Add.
  7. 选择 Trail Tracker 应用程序,然后点击 Add to Package. 请注意,包中添加了几个相关组件。
  8. 点击 Back to Package List.
注意,默认情况下创建了一个托管 – 测试版包,正是我们想要的。
Beta版本不被视为主要版本,因此软件包版本号不会更改。

使您的软件包可用于安装

当你准备在另一个组织中安装你的软件包时,你需要上传它。
  1. 从软件包列表中单击您的软件包名称。
  2. 点击 Upload.
  3. 如下所示填写Package Details部分。
    字段
    Version Name Trail App Test 1
    Description 我通过构建应用程序创建了一个AppExchange合作伙伴跟踪的简单应用程序的测试版包。
    Screen for uploading a package
  4. 点击 Upload. 如果上传成功,您会收到包含安装URL的消息。
    Screen for package with installation URL
  5. 复制安装URL以用于安装软件包。
  6. 退出您的组织。

将您的软件包安装到测试组织中

  1. 将安装URL粘贴到浏览器中。
  2. 在出现的登录页面上,输入在单元2中创建的Trailhead Test组织的凭证。
  3. 在出现的页面上,点击 Install.
    Screen for installing package
  4. 点击 Done.
  5. 从应用程序菜单中选择您的应用程序,确认您的应用程序已安装。
    Force.com App menu with new app

概要

你现在知道关于软件包的基础知识。

  • 您必须在Partner Developer Edition或Developer Edition组织中创建软件包。
  • 要创建包,请选择一个唯一的名称空间。
  • 不要在测试组织上占用你的好名字空间,否则你会后悔的。
  • 在测试周期中使用Managed-Beta软件包,因为它很容易修改其内容。
  • 仅使用托管 – 发布的软件包进行最终测试。

恭喜,您拥有在开发周期中使用Managed-Beta软件包的所有技能。挑战让你多练习一下。

Flower icon used to indicate that the content is for Salesforce Classic

请记住,该模块适用于Salesforce Classic。当您启动动手组织时,请切换至Salesforce Classic以完成此挑战。