Salesforce Connect(3)外部对象

学习目标

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

  • 配置外部查找关系。
  • 配置间接查找关系。
  • 自定义外部数据的显示。
  • 为外部对象启用记录提要。
  • 在Salesforce应用程序中显示外部数据。

定义外部对象的关系

配置外部数据源和定义的外部对象后,可以使用关系字段将外部数据集成到Salesforce中。您可以为外部对象定义三种类型的关系。

  • 查找关系—将子标准,自定义或外部对象链接到父标准或自定义对象。如果外部数据包含通过18个字符的ID标识相关Salesforce记录的列,则只能使用此类关系。如果不是这种情况,请使用以下两种类型的关系之一,这对外部对象是唯一的。
  • 外部查找关系—将子标准,自定义或外部对象链接到父级外部对象。父外部对象上的标准外部标识字段的值与外部查找关系字段的值相匹配。对于子外部对象,外部查找关系字段的值来自指定的外部列名称。
  • 间接查找关系—将子外部对象链接到父标准或自定义对象。您在父对象上选择一个自定义唯一的外部ID字段,以匹配子值的间接查找关系字段,其值由指定的外部列名称确定。

该表总结了不同类型的外部对象关系。

关系类型 子对象 父对象 必须包含Salesforce ID的外部数据?
Lookup 标准,自定义或外部 标准或自定义 Yes
External Lookup 标准,自定义或外部 External No
Indirect Lookup 外部 标准或自定义 No

作为示例,我们来看看如何配置查询关系,以便将订单链接到其行项目以及Salesforce组织中的客户。

配置外部查找关系

在之前的单位中,您可以查看Salesforce组织中的外部订单数据。回想一下,当您选择订单表进行同步时,您还选择了OrderDetails表,其中包含每个订单的订单项。通过创建从OrderDetails到订单的外部查找关系,您可以在组织中的订单页面上看到订单项。实际上,您告诉Salesforce一个对象上的字段(OrderDetails上的OrderId)对应于外部对象(Orders)上的外部ID字段。

  1. 登录到您的Salesforce Developer Edition。
  2. 从设置中,在快速查找框中输入外部对象,然后选择 External Objects.
  3. 单击 OrderDetails 外部对象。Order details screen
  4. 点击订单ID旁边的Edit 链接。Edit Order ID
  5. 点击 Change Field Type 按钮。Edit Order ID details
  6. 选择 External Lookup Relationship 然后单击下一步。外部查找关系可以将任何对象链接到外部对象。
  7. 选择 Orders 作为相关对象,然后单击 Next.Choose related external object
  8. 输入18作为长度,然后单击下一步。
  9. 要使关系对所有配置文件都可见,请选择“可见”选项,然后单击“下一步”。Specify FLS for external lookup relationship在真正的生产部署中,您将仔细分析哪些配置文件应该有权访问订单行项目。
  10. 单击 Save 以接受默认设置 – 您一定要在订单页面布局上订购详细信息相关列表!
  11. 使用应用程序菜单(左上角)启动订单。
  12. 在“最近订单”列表中单击订单的外部标识。View External ID of order
  13. 确认您看到订单的订单项列表。View line items for order

您可以点击订单项的外部ID来查看其详细信息,但是在相关列表中,我们将在此处显示订单项详细信息。

  1. 在安装程序中,使用快速查找框转到对象管理器。
  2. 点击Order对象,然后点击 Page Layouts | Order Layout.
  3. 在“订单布局”框中,单击 Related Lists.Edit layout for order details
  4. 向下滚动到OrderDetails相关列表,然后单击扳手图标。Edit layout for order details
  5. 从所选字段中删除显示URL,添加产品,数量和单价,然后单击确定。Related list properties dialog
  6. 点击页面顶部的快速保存。现在您可以在相关列表中看到订单项详细信息。

配置间接查找关系

现在您可以在订单页面上看到订单项,下一步是配置订单和客户之间的间接查询关系。这种关系使您的用户能够查看给定订单与哪个客户关联以及给定客户的所有订单。

间接查找关系模拟外部对象与自定义或标准对象之间的外键关系。这次,您告诉Salesforce外部对象(订单上的customerId)上的字段对应于自定义或标准对象(客户上的Customer_ID__c)上唯一的外部ID字段。这是间接查找,因为它引用标准ID字段以外的字段。

  1. 在安装程序中,使用快速查找框转到对象管理器。
  2. 点击订单对象,然后点击 Fields and Relationships.
  3. 点击客户ID旁边的修改。Edit customer ID screen
  4. 点击 Change Field Type 按钮。
  5. 选择 Indirect Lookup Relationship 然后单击 Next. 间接查找关系将外部对象(如订单)链接到标准对象(如客户,甚至自定义对象)。
  6. 选择 Account 作为相关对象,然后单击 Next.Select account
  7. 选择 Customer_ID__c 作为目标字段的值,然后单击 Next.Select customer ID
  8. 输入18作为长度,然后单击 Next.
  9. 要使关系对所有配置文件都可见,请选择“可见”选项,然后单击 Next.
  10. 单击保存以接受默认值 – 您希望客户页面布局上的订单相关列表!
  11. 如果应用程序菜单(右上角)未显示外部订单,请单击应用程序菜单并选择它。
  12. 点击 Orders 标签。
  13. 在“最近订单”列表中单击订单的外部标识。
  14. 确认订单在customerID字段中显示链接。
  15. 点击客户ID链接。你被带到相应的客户页面。滚动到底部查看订单列表。Orders related list
  16. 同样,您可以自定义UI以在相关列表中显示更多有用的信息。通过单击页面右侧的灰色三角形选择Force.com快速访问菜单。
  17. 选择 Edit Layout.
  18. 向下滚动到订单相关列表,然后点击扳手图标。
  19. 从所选字段中删除显示URL,添加orderDate和shippedDate。对于“排序方式”,单击“订单日期”并选择“降序”,以便首先查看最近的订单。点击 OK.Orders related list properties
  20. 点击页面顶部的保存,向下滚动,在相关列表中查看订单日期。Account with edited list

现在您的外部订单数据与客户无缝集成。

为外部数据启用Chatter

要将外部数据进一步集成到Salesforce组织中,让我们看看如何在订单记录上启用Chatter订阅源。在当前版本中,外部对象不可用字段跟踪;也就是说,我们不能将Salesforce配置为在其字段值更改时发布到记录的Chatter提要,但我们仍然可以启用Chatter提要。

  1. 登录到您的Salesforce Developer Edition。
  2. 从设置中,在快速查找框中输入Feed Tracking,然后选择Feed Tracking。
  3. 选择订单(请注意复数;单数订单是标准对象),请点击启用Feed追踪,然后点击保存。Enable Feed Tracking checkbox
  4. 使用应用启动器转到订单应用。
  5. 在“最近订单”列表中单击订单的外部标识。
  6. 现在订单有一个Follow按钮,用户可以点击订阅它的Chatter feed。Record feed on an external object detail page

查看Salesforce应用程序中的外部数据

当您的外部数据在您的Salesforce组织中可用时,您可以在Salesforce应用程序中查看它。

  1. 启动Salesforce应用程序。您可以在移动设备(获取应用程序)或Salesforce Mobile Simulator Chrome App上运行应用程序。如果需要,请使用Developer Edition用户名和密码登录。
  2. 点击Salesforce App Nav以打开导航菜单Salesforce App Nav。客户和订单显示在最近列表的顶部。如果他们不在顶部,点击“更多”以显示“最近”列表中的所有对象。
    Navigation menu
  3. 点按订单查看近期订单列表。除了已配置的外部对象之外,还列出了具有相同名称的标准对象Orders。如果点击订单并查看最近没有记录,请查找其他订单对象。
    Recent orders
  4. 您在上一步中查看的订单显示在列表顶部。点击它查看其详细信息。
    Order details
  5. 点按Feed以查看订单记录的Feed和您的Feed帖子。Record feed
  6. 点击相关,然后点击OrderDetails查看订单的订单项。Related order line items
  7. 点击Salesforce应用程序的后退箭头Salesforce app's back arrow两次,然后点击Salesforce App NavSalesforce App Nav。点击客户以查看最近的客户列表。
  8. 点击列表中的顶级客户,然后点击相关。向下滚动相关列表,然后点击订单查看该账户的订单。
    Orders related to the account

如您所见,您的外部数据在Salesforce应用程序中可用,就像它在整个Salesforce站点中一样,不需要额外的配置!

Salesforce Connect(2)设置

学习目标

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

  • 在您的Salesforce组织中创建外部数据源,以指定如何连接到外部系统。
  • 验证与外部系统的连接。
  • 同步以创建映射到外部系统模式的外部对象。
  • 查看外部对象。

设置概述

使用Salesforce Connect设置外部数据集成涉及到这些高级步骤。

  1. 创建外部数据源. 如果您的外部系统承载多个服务,则为每个访问数据所需的服务创建一个外部数据源。
  2. 创建外部对象及其字段。 在您的Salesforce组织中为每个要访问的外部数据表创建一个外部对象。在每个外部对象上,为要从Salesforce组织访问的每个外部表列创建一个自定义字段。

    注意

    如果外部系统允许,我们建议您同步外部数据源以自动创建相关的外部对象。您也可以选择手动定义外部对象来自定义外部对象名称并手动创建自定义字段。

  3. 定义外部对象的关系. 创建查找,外部查找和间接查找关系字段,以跨系统边界提供数据的无缝视图。
  4. 允许用户访问外部对象及其字段. 通过权限集或配置文件授予对象和字段权限。
  5. 设置用户认证. 对于使用每个用户身份验证的每个外部数据源,请执行以下两项操作。
    1. 使用户能够对外部数据源进行身份验证. 通过权限集或配置文件授予用户访问权限
    2. 设置每个用户的身份验证设置. 告诉您的用户如何设置和管理他们自己的个人设置中的外部系统的身份验证设置。或者,您可以为每个用户执行此任务。

作为此模块的一部分,您可以将示例订单数据与Salesforce Developer Edition中的现有客户数据相集成。要完成这些步骤,您需要安装一个测试包,用于在客户对象上配置必要的架构,创建一个Customer ID字段,并为每个客户分配一个Customer ID值。

按照以下步骤安装软件包。

  1. 打开浏览器,点击这里 click here 开始安装。
  2. 选择 Install for Admins Only.
  3. 点击 Install.Installer for the Salesforce Connect Quickstart package
  4. 选择 External Orders 应用程序。
  5. 点击 Set Customer IDs 将客户ID号码分配到Developer Edition中的样例客户记录。Assign Customer IDs to sample account records

您的Salesforce Developer Edition现在已经安装在本教程的主要部分。现在是整合一些数据的时候了!

连接外部数据源

作为练习,让我们连接一个可公开访问的现有OData 2.0数据源。

  1. 从安装程序中,在快速查找框中输入外部数据源,然后选择 External Data Sources.
  2. 点击 New External Data Source.
  3. 输入OrderDB作为标签。当您从标签字段中单击或远离标签时,名称字段默认为OrderDB。
  4. 选择 Salesforce Connect: OData 2.0 作为类型。
  5. 输入 https://orderdb.herokuapp.com/orders.svc/作为网址。
  6. 保留其他设置的默认值,然后单击 Save.

注意

因为这是一个示例,只读数据库,所以不需要身份验证。一个真正的外部系统可能需要一些凭证。您可以将Salesforce Connect配置为对所有数据源访问使用同一组凭据,或者为每个用户使用单独的凭据。

现在您已经配置了一个外部数据源,您可以选择您希望集成到您的Salesforce组织中的表。

创建外部对象

您可以创建或修改外部对象。

  1. 从安装程序中,在快速查找框中输入外部数据源,然后选择外部数据源,然后单击OrderDB外部数据源。
  2. 点击 Validate and Sync.

    注意

    Salesforce Connect从示例数据库中检索OData 2.0元数据并列出可用的表。点击这里查看元数据XML。

  3. 选择订单和订单明细。
    Validate External Data Source dialog
  4. 点击 Sync.

同步将创建与所选表相对应的外部对象。同步不会在Salesforce中存储任何数据。同步仅将映射定义到包含数据的外部表或存储库。这些映射使Salesforce能够访问和搜索外部数据。

注意

您可以选择手动创建外部对象。这样做使您可以自定义外部对象名称,决定为哪些表格列创建自定义字段,并自定义字段名称。从设置中,在快速查找框中输入外部对象,然后选择外部对象。

查看外部数据

连接外部数据源并定义外部对象之后,可以直接在Salesforce组织中查看外部数据。

  1. 从安装程序中,在快速查找框中输入外部数据源,然后选择 External Data Sources.
  2. 点击OrderDB外部数据源。
  3. 向下滚动到外部对象,然后单击 Orders.View external objects page
Salesforce Connect的同步进程从外部系统的模式创建此外部对象。如果您熟悉自定义对象,则会注意到外部对象看起来很相似。同步过程还创建了一组自定义字段,就像您为自定义对象创建它们一样。外部对象和自定义对象定义之间的主要区别是:

  • 外部对象API名称具有后缀__x而不是__c。
  • 外部对象具有对其外部数据源和该源内的表的引用。
  • 外部对象具有不同的标准字段。显示URL是表示外部数据库中的记录的OData 2.0 URL,而外部ID是每个记录的主键值。

External objects details page

让我们创建一个自定义选项卡,轻松访问订单记录。

  1. 从设置中,在快速查找框中输入标签,然后选择 Tabs.
  2. 单击自定义对象选项卡旁边的New 按钮。
  3. 选择Orders 作为对象
  4. 单击“选项卡样式”旁边的选择器,然后选择您喜欢的任何样式。
  5. 点击 Next.
  6. 点击 Next 以接受默认选项卡可见性设置。
  7. 点击“包含”标签旁边的复选框取消选择所有应用。
  8. 点击外部订单旁边的复选框将其选中。
  9. 点击 Save.

注意

因为还有一个名为Order的标准对象,所以现在有两个标签为Orders的选项卡。您可以通过更改对象定义中的标签来更改外部对象的选项卡名称。

您现在可以查看外部订单数据,就好像它存储在您的Salesforce组织中的自定义对象中一样。

  1. 如果应用程序菜单(右上角)未显示外部订单,请单击应用程序菜单并选择它。
  2. 点击 Orders 标签。
  3. 点击 Go! 按钮在“查看:全部”旁边。View list of external ordersSalesforce Connect从样本订单数据库中检索到前25个订单记录的订单ID。您可以像在任何其他列表视图中一样配置要显示的字段。
  4. 点击其中一个外部ID值。View details of external orderSalesforce Connect检索您选择的订单的所有字段值。
    请记住,外部数据在您的Salesforce组织中绝不会重复。 Salesforce Connect总是实时从外部系统获取当前数据。

    现在您可以在组织中看到外部数据,也可以通过创建查找关系将其链接到现有数据。你会看到如何在稍后的单位做到这一点。

设置用户认证

本机使用的示例数据库不需要认证。但是,真正的外部系统可能需要登录凭据。您有两个选项可用于设置外部数据源的用户身份验证。

  • 命名委托人—您的整个Salesforce组织在外部系统上共享一个登录客户。
  • 每个用户—您的组织在外部系统上使用多个登录客户。您或您的用户可以为外部系统设置个人身份验证设置。
    有关更多信息,请参阅Salesforce帮助中的外部数据源的标识类型。

Salesforce Connect(1)介绍

学习目标

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

  • 解释Salesforce Connect是什么。
  • 描述Salesforce Connect的两个典型用例。
  • 说明Salesforce Connect与提取,转换和加载(ETL)工具的不同之处。
  • 解释外部对象如何与标准和自定义对象不同。

Salesforce Connect概述

Salesforce Connect是一个使您能够查看,搜索和修改存储在Salesforce组织外部的数据的框架。例如,您可能拥有存储在企业资源规划(ERP)系统中的数据。您可以使用外部对象通过Web服务标注实时访问数据,而不是将数据复制到您的组织中。

Salesforce Connect可让您的Salesforce组织从多种外部系统访问数据。您可以实时整合来自SAP®NetWeaver Gateway,MicrosoftDynamics®NAV和许多其他数据源的表格,无需编写一行代码。以前,将外部数据与Salesforce集成的唯一方法是使用提取,转换和加载(ETL)工具。该过程非常耗时,并且需要将数据复制到您的组织中,而您可能永远不会使用这些数据,或者很快就会过时。而Salesforce Connect将外部系统中的数据表映射到组织中的外部对象。

外部对象与自定义对象类似,只不过它们映射到位于Salesforce组织外部的数据。外部对象数据始终是最新的。 Salesforce Connect提供到外部数据的实时连接,而不是消耗存储空间的副本,并且必须定期同步。访问外部对象实时从外部系统获取数据。

如果大多数条件适用,我们建议您使用Salesforce Connect。

  • 您有大量不想复制到Salesforce组织中的数据。
  • 您在任何时候都需要少量的数据。
  • 您需要实时访问最新的数据。
  • 您将数据存储在云或后台系统中,但希望显示或处理Salesforce组织中的数据。

外部对象与自定义对象

外部对象与自定义对象有许多相同的功能。例如,您可以:

  • 通过列表视图,详细信息页面,记录源,自定义选项卡和页面布局访问外部对象。
  • 定义外部对象与标准或自定义对象之间的关系,以整合不同来源的数据。
  • 在外部对象页面上启用Chatter订阅源以进行协作。
  • 对外部对象启用创建,编辑和删除操作。

如果您需要频繁访问大量的外部数据,ETL可能仍然是您获得最佳性能的最佳选择。外部对象不是ETL的替代品。它们是访问提供巨大收益的外部数据的补充方法,包括与Salesforce平台的无缝集成,包括我们的API,移动,Chatter等等。例如,外部对象可用于标准Salesforce工具,如Salesforce应用程序,全局搜索,SOSL和SOQL查询,Apex,Visualforce,API,更改集和包。

以下是外部对象和自定义对象支持的功能的快速比较。

特征 自定义对象 外部对象
数据存储在您的Salesforce组织中 Yes No
Read Yes Yes
Write Yes Yes (limited)
Tabs, layouts Yes Yes
Visualforce Yes Yes
Field-level security Yes Yes
Sharing Yes No
REST and SOAP API Yes Yes
SOQL Yes Yes (limited)
Search and SOSL Yes Yes (pass-through)
Formula fields Yes Not Yet
Workflow, triggers Yes Not Yet
Reports and analytics Yes Yes (limited)
Chatter Yes Yes (no field tracking)

一个Salesforce连接示例

假设您将产品订单信息存储在外部数据库中,并且您希望将这些订单作为Salesforce中每个客户记录上的相关列表进行查看。通过Salesforce Connect,您可以为订单设置父客户对象与子外部对象之间的关系。然后,您可以设置父对象的页面布局,以包含显示子记录的相关列表。

下图显示了Salesforce Connect如何跨系统边界提供数据的无缝视图。 Business_Partner外部对象的记录详细信息页面包含两个相关的子对象列表。

  • 客户标准对象(1)
  • Sales_Order外部对象(2)

External objects example

在此示例中,外部查找关系和页面布局使用户能够在单个页面上查看Salesforce org内部和外部存储的相关数据。

外部连接的类型

要连接到存储在外部系统上的数据,Salesforce Connect使用这些专门设计的适配器之一。

  • OData 2.0适配器或OData 4.0适配器—连接到Internet上任何OData 2.0或4.0生产者公开的数据。 OData(开放数据协议)是用于集成数据的现代基于REST的协议。 SAP和Microsoft等供应商已经实施了OData支持,因此可以直接访问NetWeaver和SharePoint等产品。 来自Salesforce合作伙伴的集成产品将Salesforce Connect的范围扩展到更广泛的后台系统。
  • 跨组织适配器—连接到存储在另一个Salesforce组织中的数据。 跨组织适配器使用标准的Force.com REST API。 它直接连接到另一个组织,而不需要中间Web服务,就像OData一样。
  • 通过Apex创建定制适配器—如果OData和跨组织适配器不适合您的需要,请使用Apex Connector Framework开发您自己的适配器。