SAP Knowledge Base Article - Public

3685484 - Incomplete data import from OData service in SAP Analytics Cloud (Total rows vs Imported rows mismatch)

Symptom

  • Attempting to run an Import Job using an OData Services connection, the job logs indicate a specific total number of rows (e.g., 'Total: 14,353 lines'). 
  • The job finishes successfully; however, only a small subset of the data is actually added to the model (e.g., 'Transaction records added to model: 2,000 lines').
  • When checking the job details, the Rejected Rows count is 0.
  • This issue occurs when using a large Batch Size (e.g., 50,000) in the query settings.
  • If you are facing issues where the same query runs several times with different results, please follow this guide:
    • 2816755 - - Inconsistent results while importing data using an OData service in SAP Analytics Cloud

Environment

SAP Analytics Cloud Enterprise 2025.



 

Reproducing the Issue

  1. Log in to SAP Analytics Cloud.

  2. Open an existing Model or create a new one based on an OData connection.

  3. In the Data Management tab, create or run an import job.

  4. In the query setup, the Pagination / Batch Size is set to a high value (e.g., 50,000).

  5. Run the import job.

  6. Check the Job Details/Logs.

    • Notice the "Total lines" matches the expected source count.

    • Notice the "Transaction records added" is significantly lower (often matching the default page size of the OData service).

    • Confirm "Rejected lines" is 0.

Cause

  • The issue is caused by the OData Service Provider (Server-side) handling of large page requests.
  • When SAC requests a large batch size (e.g., $top=50000), the OData server attempts to process the request but encounters a timeout, memory limit, or internal error due to the volume of data. 
  • The OData response is truncated or the connection closes before the server can generate the complete response. Crucially, the @odata.nextLink (or $skiptoken)—which tells SAC where to find the next page of data—is typically located at the very end of the OData XML/JSON response body. 
  • Because the response is cut off or incomplete, the nextLink is never received by SAC. SAC processes the data it received, sees no "next link," and assumes the data transfer is complete.

Resolution

To resolve this issue, you must align the SAC request size with the capabilities of the OData server.

Workaround:

  1. Open the Model in SAP Analytics Cloud.
  2. Navigate to the Data Management workspace.
  3. Select the specific Import Job and click Edit Query (pencil icon).
  4. Locate the Pagination Settings or Batch Size configuration.
  5. Reduce the Batch Size value to a lower, more stable number (e.g., 1000 or 5000).
    • Note: A batch size of 1000 matches the default server-side limit of many SAP OData services.
  6. Save the query and run the import job again.

Permanent Fix:

The administrator of the source OData service should investigate server-side logs to understand why large $top requests are failing or timing out. The service should be configured to handle large requests gracefully (e.g., by returning a smaller page size with a valid nextLink instead of crashing/timing out).

See Also

Your feedback is important to help us improve our knowledge base.

Keywords

SAC, SAP Analytics Cloud, OData, Import, Missing Data, Rows, Pagination, Batch Size, nextLink, skiptoken, truncated, incomplete load, records added. , KBA , LOD-ANA-AQU-ODATA , Acquiring Data into SAC using an ODATA connection , Problem

Product

SAP Analytics Cloud all versions