Symptom
You have configured the filter "is contained in = active,inactive" to Status field from User entity in your integration and data is returned properly. However, if you add any other filter, the data stops 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 HCM Suite
- Integration Center
Reproducing the Issue
- Create an integration starting on EmpJob (or any other entity that can navigate to User)
- Set up two or more filters, one being "is contained in = active,inactive" to Status field from User
- Go to Configure Fields tab and check that no data is being returned
- Go back to the filters and leave just the Status filter in there, removing all the others
- Data is properly returned
Cause
The database value of the Status field is "t" for active and "f" for inactive. There is a converting logic when using "active" and "inactive" in the $filter that converts these values to "t" and "f" internally, however this converting logic doesn't support parenthesis in the $filter.
When adding more than one filters, Integration Center's internal OData query will add a parenthesis in the $filter separating each filter with an AND operator:
$filter=(userNav/status in 'active','inactive' and startDate gt datetime'1900-12-01T00:00:00Z')
These parenthesis prevent the converting logic to be executed, causing the issue.
Resolution
You will have to change the filter values from "active,inactive" to "t,f":
Since "t" and "f" are the same as the values from the database, they will work even if there are paranthesis in the $filter.
See Also
Keywords
active, inactive, t, f, terminated, ic, integration center, filter, not working, fetching, data, returning, blank, empty, no data, null, empjob, user, usernav , KBA , LOD-SF-INT-INC , Integration Center , Problem
Product
Attachments
Pasted image.png |
Pasted image.png |