• Salesforce 外部对象


    外部对象(External Object)

    在Salesforce中,管理员或开发者可以通过“外部对象”将其他系统中的数据虚拟地展现为Salesforce的对象。每个外部对象都要连接到一个外部数据源(External Data Source)。

    在开发的时候,外部对象和Salesforce内部的标准或自定义对象没有不同,可以和标准或自定义对象一样使用,也可以用SOQL查询。但是Salesforce本身不存储这些外部对象的数据,而是通过其对应的外部数据源的连接来进行CRUD操作。

    外部数据源(External Data Source)

    在设置界面中搜索“外部数据源”,点击“外部数据源”链接,即可进入“外部数据源”的页面。

    点击“新建外部数据源”按钮,即可进入“新建外部数据源”界面。在此界面中,用户除了设定基础的名称属性外,还需要选择“类型”,比如OData等。

    新建外部数据源界面

    以建立一个OData为例:

    OData定义

    引自维基百科:

    OData协定,英文全名是Open Data Protocol(OData),它是一个开源的协定,以简单和标准的方法,来建造或消除可查询和可操作的RESTful API。它创始于2007年的微软公司。

    新建外部数据源步骤

    1. 在新建外部数据源界面中,填入外部数据源的名称,并将类型选择为“Salesforce Connect: OData 2.0”
    2. 在URL输入框中填入OData的URL。这里使用Salesfore Trailhead中的示例URL:http://orderdb.herokuapp.com/orders.svc
    3. 点击保存按钮,保存外部数据源

    新建OData外部数据源

    至此,一个新的OData外部数据源就建立完成了。Salesforce可以从URL中的外部数据源中获得数据。

    OData外部数据源

    验证与同步

    在新建的OData外部数据源详细界面中,可以看到“外部对象”部分是空的。要让Salesforce得到外部数据源的数据,需要点击“验证与同步”按钮。

    然后,Salesforce会与外部数据源通信,并得到外部数据源中的数据,列出来。

    OData外部数据源验证

    在出现的列表中会有外部数据源包含的表格名称等属性,并有“已同步”列,代表了该数据是否已经同步。刚开始此列是空的。

    选择所有列,并点击“同步”按钮。然后Salesforce会将外部数据源中的数据同步过来,并在“外部对象”部分显示出来。管理员可以编辑或删除这些对象。

    外部对象部分

    外部对象详细信息

    虽然Salesforce本身不存储外部对象的数据,而是通过外部数据源的连接来进行CRUD操作,但是在Salesforce同步了外部数据源的对象后,会在系统中建立一个对象的定义。

    接着上面的例子,在同步了示例的OData外部数据源后,在“外部对象”部分点击“OrderDetails”,就可以看到此外部对象的详细信息。

    OData外部对象详细信息界面

    外部对象的详细信息和Salesforce标准或自定义对象非常相似。有一点不同的是外部对象的“API名称”是以“__x”结尾,而非自定义对象的“__c”。但是其字段的结尾还是“__c”。

    在外部对象的使用过程中,也需要和Salesforce中已经存在的对象进行联系。外部对象的字段在同步时默认是数字、日期、字符串等基本类型。它们可以被更改为查找关系类型(Lookup),从而与标准或自定义对象建立联系。

    外部对象相关的关系类型有两种。

    • 间接查找关系(Indirect Lookup Relationship):子对象是外部对象,父对象是内部对象
    • 外部查找关系(External Lookup Relationship):父对象是外部对象,子对象可以是内部或外部对象

    在外部对象中建立间接查找关系(Indirect Lookup Relationship)

    当一个外部对象的字段类型被设置为“间接查找关系”时,此外部对象会作为子对象连接到另一个对象中。

    间接查找关系的要求父对象拥有一个同时是“外部ID”和“唯一”的字段。此字段会作为父对象中和外部对象建立联系的字段。

    继续上面的例子。我们要将刚才建立的外部对象“Orders”中“API 名称”为“customerID__c”的字段链接到标准对象“客户”中。

    1. 在“客户”对象中建立自定义字段,类型选择为“数字”(和外部对象的“customerID__c”字段类型一致),API名称设置为“Ext_Customer_ID__c”,并在第二步勾选“独有”和“外部ID”复选框

    设置独有和外部ID字段

    1. 继续完成自定义字段的建立

    唯一和外部ID字段的属性

    1. 进入刚才建立的外部对象“Orders”的详细信息页面
    2. 点击字段“customerID”左边的“编辑”按钮
    3. 在字段的编辑页面点击“更改字段类型”按钮
    4. 选择“间接查找关系”,点击“下一步”

    选择字段类型

    1. 在“相关项”下拉列表中选择“客户”,这是间接查找关系字段将要连接的对象

    选择相关对象

    1. 在“目标字段”下拉列表中选择“Ext_Customer_ID__c”,也就是刚才在“客户”对象中建立的字段。这个字段是间接查找关系的目标字段

    选择目标字段

    1. 继续完成字段的建立

    这样,“客户”对象就成为了外部对象“Orders”的父对象。在“客户”对象详细信息页面可以看到“Orders”的相关列表。

    间接查找关系字段

    在外部对象中建立外部查找关系(External Lookup Relationship)

    当一个外部对象的字段类型被设置为“外部查找关系”时,此外部对象会作为子对象连接到另一个外部对象中。

    继续上面的例子。我们要将刚才建立的外部对象“OrderDetails”中“API 名称”为“orderID__c”的字段链接到外部对象“Orders”上。

    1. 进入刚才建立的外部对象“OrderDetails”的详细信息页面
    2. 点击字段“orderID”左边的“编辑”按钮
    3. 在字段的编辑页面点击“更改字段类型”按钮
    4. 选择“外部查找关系”,点击“下一步”
    5. 在“相关项”下拉列表中选择“Orders”
    6. 继续完成字段的建立

    这样,“Orders”对象就成为了外部对象“OrderDetails”的父对象。

    外部查找关系字段

  • 相关阅读:
    数据ETL是指什么
    Laravel 虚拟开发环境 Homestead
    一起谈.NET技术,创建代码生成器可以很简单:如何通过T4模板生成代码?[下篇] 狼人:
    一起谈.NET技术,NET 下RabbitMQ实践 [实战篇] 狼人:
    一起谈.NET技术,创建代码生成器可以很简单:如何通过T4模板生成代码?[上篇] 狼人:
    一起谈.NET技术,ASP.NET前台代码绑定后台变量方法总结 狼人:
    一起谈.NET技术,Smart Client技术简要总结 狼人:
    一起谈.NET技术,ASP.NET页面间数据传递的方法 狼人:
    一起谈.NET技术,关于CLR内存管理一些深层次的讨论 [上篇] 狼人:
    一起谈.NET技术,一种简单的直观的高效的权限设计 狼人:
  • 原文地址:https://www.cnblogs.com/chengcheng0148/p/salesforce_external_object.html
Copyright © 2020-2023  润新知