Salesforce Connect OData 适配器的 OData 生成器注意事项
了解通过 OData 2.0、4.0 和 4.01 向您的 Salesforce 组织公开外部数据的远程数据服务的限制和建议。
所需的 Edition
| 适用于 Salesforce Classic 和 Lightning Experience |
适用于:Developer Edition 另行付费后适用于:Enterprise、Performance 和 Unlimited Edition |
- 使用 services.odata.org/validation 中的开放式数据协议服务验证工具,可对您的 OData 生成器进行验证。执行此操作会更具 OData 规格检查您的实施,并发现潜在错误。
- 要通过低带宽连接改善性能,请设置 OData 生成器以接收 gzip 压缩数据。然后,在 OData 2.0 或 4.0 的外部数据源定义中,选择压缩请求。此外,您还可设置外部服务器以发送 gzip 压缩数据至 Salesforce,其将自动接受 gzip 压缩响应。
- 默认情况下,Salesforce 会使用以下系统查询选项之一发送每个 Odata 请求,以便响应包含结果集的总行数。
- Odata 2.0适配器的
$inlinecount=allpages - Odata 4.0适配器的
$count=true - 适用于 4.01 适配器的硬编码
$count=true
一些外部系统不支持这些系统查询选项。如果您在尝试访问其数据时收到错误或注意到加载时间过长,请在外部数据源上,为 OData 2.0 或 4.0 取消选择请求行数。如果这样做,外部数据源及其关联的外部对象将无法支持以下功能,这些功能需要总行数。
- SOQL
COUNT()聚合函数 - 带
Database.QueryLocator的批量 Apex
有关 Odata URI 惯例的详细信息,请转到 www.odata.org。
- Odata 2.0适配器的
- 配置您的 OData 生成器,以使用足够大的页面大小,从而避免过多往返。用较小的页面大小查询大型数据集时,由于网络延迟,可能需要很长时间。需要耗费很长的时间才能加载显示外部数据的 Salesforce 页面。
例如,如果查询结果包括 100 条记录且页面大小仅可保留 5 条记录,其将进行 20 次往返以检索结果。如果网络延迟为每次往返 100 毫秒,则检索结果需要两秒(20 × 100 毫秒)。
反之,如果页面大小可保留 20 条记录,则仅需 5 次往返即可检索 100 条记录。如果网络延迟同样为每次往返 100 毫秒,则检索结果需要半秒(5 × 100 毫秒)。
-
如果外部数据源使用 Odata 4.0 适配器和 JSON 格式,请确保 Odata 生产者接受包含
odata.metadata=full格式参数的标题。Odata 4.0适配器不支持其他变体,包括odata.metadata=minimal。 - 如果外部对象记录没有出现在您的组织中,请确保 Odata 生产者不会更改在 Odata 查询筛选器中指定的值。当您的组织发送使用
$filter等于(eq)运算符指定字段值的 Odata 查询时,Odata 生成器必须在结果数据行中返回这些相同的字段值。
本文章是否解决您的问题?
请与我们共享您的想法,以便我们进行改进!
