Symptom
Your Integration Center job is selecting fields from other entities and records that don't fulfill the filter criteria under Filter and Sort > Time-Based Filters > Modified Since Query Mode are being returned.
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Environment
- SAP SuccessFactors HXM Suite
- Integration Center
Reproducing the Issue
- Create an Integration Center job;
- In Configure Fields, add fields from other entities;
- Go to Filter and Sort tab;
- Add a Modified Since Query Mode filter under Time-Based Filters;
- See unexpected records being returned;
See the example below:
Per the above filter criteria, you are expecting records modified since the last run time which was 01/01/2023 but some records that doesn't fulfill the filter criteria are showing up:
Cause
This is an expected behaviour when you are using fields from other entities which are not from the starting one under Configure Fields tab.
Explanation:
Just recap, the Modified Since Query Mode filter has two options:
- Modified Since: Return only records with fields that have been modified since the date and time specified;
- Modified or Effective Since: As above, but also include records that have become effective since the specified date;
The main point here is this filter consider both Starting entity and Navigated entities records.
Continuing our example:
Note the Business Phone field from User entity is being used there, so the filter logic is:
filter = records from Starting entity (EmpJob) modified since > last run time
OR records from Navigated entity (User) modified since > last run time
Equivalent OData API logic:
filter = EmpJob/lastModifiedDateTime ge datetimeoffset'2023-01-01T12:00:00.000Z'
OR User/lastModifiedDateTime ge datetimeoffset'2023-01-01T12:00:00.000Z'
An easy way to validate it is including the lastModifiedDateTime field from the Navigated entity (User) under Configure Fields tab:
Then we can see that even some Job Information records showing up weren't modified since the last run time (01/01/2023), the corresponding User records were.
Please note that this logic will be applied to all navigated entities included in the integration.
OBS1: When the navigation involves more than one entity, the filters will be applied for the end entity. Example: Job Information (considered) > Employment Details (not considered) > User(considered).
OBS2: For one-to-many navigations, if any of the record is modified, it will be considered. But please note, from the navigated entity, it's not guaranteed to pick the modified record out of the many records (refer to KBA 3087941).
Resolution
If you want Modified Since Query Mode filter applies to the Starting entity (or any other entity) only, you should use Advanced Filters as the example below:
See Also
- 2470903 - How to use "Effective From" and "Effective To" filters to obtain historical/future records - Integration Center
- Time-Based Filters chapter from IC guide
Keywords
incorrect, wrong, different, data, result, record, records, modified, modify, updated, navigation, navigating, expand, filter, IC , KBA , LOD-SF-INT-INC-FWK , Integration Center UI Framework , LOD-SF-INT , Integrations , Problem