SAP Knowledge Base Article - Public

2554717 - Unexpected results when using Modified Since combined with Effective From/To filters - OData API and Integration Center

Symptom

An Integration Center job starting with an effective-dated entity (e.g. EmpJob) and combining Modified Since and Effective From/To filters is returning unexpected results.

This behavior comes from the OData API engine, as Integration Center is based on it, so when using OData API directly, the behavior is the same.

  

Equivalence between Integration Center and OData parameters:

  • Modified Since (IC) = lastModifiedDateTime (OData)
  • Effective From/To (IC) = fromDate/toDate (OData)

Environment

SAP SuccessFactors HCM Suite

Reproducing the Issue

See the parameters under the Filter and Sort tab in the Integration Center job settings OR in the OData API query parameters ($filter=...&$fromDate...).

Cause

How the Filters Work Together:

  • Each effective-dated entity record, that has different data and time slices, has its own lastModifiedDateTime.

  • The system checks if any of these records has been modified since the given date.

  • If at least one record was modified:

    • All EmpJob records that match the Effective From/To range will be returned.

    • If no Effective range is given, only the current record is returned.

  

EmpJob example:

  • Employee David has multiple EmpJob records.

  • Query filters:

    • Modified Since = 2024-01-01
    • Effective From = 2020-01-01, Effective To = 9999-12-31
  • If any of David's records were modified after 2024-01-01:

    • All records effective from 2020-01-01 onward will be returned.

  • If no effective range is set:

    • Only the currently effective record will be returned, regardless of modification time.

 

Resolution

If you want the integration to return only the entity records (current and/or historical) that were indeed modified since the last integration run, be aware that this logic cannot be fully achieved within Integration Center alone, so the options are:

Option 1: Full Data Pull + Internal Delta Detection

  1. Configure Integration Center to fetch all records every time:

    • Use Effective From = 1900-01-01

    • Use Effective To = 9999-12-31

  2. Store the full data set in a staging table.

  3. Use custom logic in your receiving system to:

    • Compare current results to previous run.

    • Detect differences (delta) based on lastModifiedDateTime.

 

Option 2: OData API + Middleware Filtering

  1. Create an OData query with:

    • Use fromDate = 1900-01-01
    • Use toDate = 9999-12-31
  2. In your middleware (e.g., SAP CPI, Dell Boomi):

    • Filter the returned records by comparing lastModifiedDateTime to the last run timestamp.

  3. This allows you to implement a delta mechanism outside Integration Center.

See Also

Keywords

effective, from, to, lastModifiedDateTime, datetimeoffset, Modified Since, Last modified Date, Time based filters, entities, like, time-based If you want the integration to return only the entity records (current and/or historical) that were indeed modified since the last integration run, know that this logic cannot be fully achieved within Integration Center alone, so the options are: , KBA , LOD-SF-INT-INC , Integration Center , LOD-SF-INT-ODATA , OData API Framework , Problem

Product

SAP SuccessFactors HCM Suite all versions