---
schema_version: "1"
id: 1c8edf0c06c3481bf6f37f14299a48cf5e83e7605451593983c2cdd48305ab5e
title: OData Producer Considerations for Salesforce Connect OData Adapters
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/platform_connect_considerations_remote_data_service.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations_remote_data_service.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 44907d1381d2aaae24530ac0f30070e1d7748a8866a1385b31212becd2931de7
description: Understand the limits and recommendations for the remote data service that exposes the external data via OData 2.0, 4.0, and 4.01 to your Salesforce org.
products:
  - Salesforce Platform
  - Security
release: "264"
---
# OData Producer Considerations for Salesforce Connect OData Adapters

Understand the limits and recommendations for the remote data service that exposes the external data via OData 2.0, 4.0, and 4.01 to your Salesforce org.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition">
      <colgroup>
        <col>
      </colgroup>
      <tbody>
        <tr class="">
          <td class="slds-cell-wrap" style="vertical-align:top;">Available in: both Salesforce Classic and Lightning
            Experience</td>

        </tr>
        <tr class="">
          <td class="slds-cell-wrap" style="vertical-align:top;">
            <p>Available in: <strong>Developer</strong> Edition</p>
            <p style="margin-bottom:0;">Available for an extra cost
              in: <strong>Enterprise</strong>, <strong>Performance</strong>, and <strong>Unlimited</strong>
              Editions</p>
          </td>

        </tr>
      </tbody>
    </table>

- Validate your OData producer by using the Open Data Protocol Service Validation Tool at [services.odata.org/validation](http://services.odata.org/validation). Doing so checks your implementation against the OData specification and identifies potential issues.
- To improve performance over low-bandwidth connections, set up your OData producer to receive gzip-compressed data. Then, in the external data source definition for OData 2.0 or 4.0, select **Compress Requests**. You can also set up the OData producer to send gzip-compressed data to Salesforce, which automatically accepts gzip-compressed responses.
- By default, Salesforce sends each OData request with one of the following system query options so that the response includes the total row count of the result set.
    
    - `$inlinecount=allpages` for the OData 2.0 adapter
    - `$count=true` for the OData 4.0 adapter
    - `$count=true` hard coded for 4.01 adapter
    
    Some external systems don’t support these system query options. If you receive errors or notice long load times when you try to access their data, deselect **Request Row Counts** for OData 2.0 or 4.0, on the external data source. If you do so, the external data source and its associated external objects can’t support the following functionality, which requires the total row count.
    
    - SOQL `COUNT()` aggregate function
    - Batch Apex with `Database.QueryLocator`
    
    For details about OData URI conventions, go to [www.odata.org](http://www.odata.org).
- Configure your OData producer to use a page size that’s large enough to avoid excessive round trips. Querying a large set of data with a small page size can take a long time because of network latency. Salesforce pages that display external data can take a long time to load.
    
    For example, if the query results include 100 records, and the page size holds only 5 records, it takes 20 round trips to retrieve the results. If the network latency is 100 ms per round trip, it takes 2 seconds (20 × 100 ms) to retrieve the results.
    
    In contrast, if the page size holds 20 records, it takes only five round trips to retrieve the 100 records. With the same network latency of 100 ms per round trip, it takes 0.5 seconds (5 × 100 ms) to retrieve the results.
- If your external data source uses the OData 4.0 adapter and JSON format, make sure that the OData producer accepts headers that contain the `odata.metadata=full` format parameter. Other variations, including `odata.metadata=minimal`, aren’t supported for OData 4.0 adapter.
- If external object records don’t appear in your org, make sure that the OData producer doesn’t change the values specified in the OData query filters. When your org sends OData queries that specify field values with the `$filter` equals (`eq`) operator, the OData producer must return those same field values in the resulting data rows.

#### See Also

- [OData Adapters for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.odata_adapter_about.htm&release=264.0.0&type=5 "Connect to your back office for a complete view of your business. With the OData 2.0, 4.0, or 4.01 adapter, Salesforce Connect uses Open Data Protocol Version 2.0, Version 4.0, or Version 4.01 to access data that’s stored outside Salesforce.")
- [OData Query String Options](https://help.salesforce.com/s/articleView?id=platform.odata_query_string_options.htm&release=264.0.0&type=5 "The OData adapters for Salesforce Connect use a subset of the OData 2.0 and 4.0 and 4.01 system functions and filter expression constructs to query external systems.")
- [OData Type Mapping](https://help.salesforce.com/s/articleView?id=platform.odata_type_mapping.htm&release=264.0.0&type=5 "Salesforce Connect maps OData types to Salesforce metadata field types when syncing metadata and converting values between Salesforce and external systems.")