SAP Knowledge Base Article - Public

2729221 - Integration Center: Non-Effective Dated to Effective Dated Entity Navigation

Symptom

You are creating an integration using Integration Center and when adding a new field, you are prompted with the below message:

"You have used one to many field navigation while adding this field. You have used default field filter with value <first> or not used any field filter.

Do you want to add this field?"

[Yes / No]

Symptom.png

"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

Using Employment Information (EmpEmployment) and Job Information (EmpJob) as an example use case:

  1. Create a simple outbound integration in Integration Center
  2. Choose a non effective-dated starting entity (EmpEmployment)
  3. Add a new simple associated field
  4. Navigate to an effective-dated entity (EmpJob) and choose a field from this entity also

Once you add this field from EmpJob entity, you will see the below message:

Symptom.png

Cause

This message is displayed due to the one-to-many relationship between the chosen entities that you have navigated to/from:

For example:

  • A one-to-many relationship exists between entities Employment Information (EmpEmployment) > Job Information (EmpJob)
  • Such relationships usually involve non effective-dated entity (one) and effective-dated entities (many):
  • In the image below, the one-to-many relationship between EmpEmployment and EmpJob, is displayed 
  • User ID is the business key used to maintain the relationship between EmpEmployment & EmpJob entities

Cause.png

Resolution

There is no resolution needed for this message, this message is in place to inform you that:

  • As you have chosen to retrieve a field from an effective-dated entity, by default, Integration Center will return the first record available for the chosen field.
    i.e. For one EmpEmployment record, there can be Many EmpJob records (one-to-many relationship).
  • This message simply states that, for the chosen field from EmpJob, the first value maintained will be returned, unless otherwise specified.

Navigations to effective dated entities are shown by the multiple boxes located to the left of the navigation field (shown below), symbolizing the navigation to an effective-dated entity:

res3.PNG

If your requirement is to choose a value that is not the first value contained in the field, you can do so via Change Field Association > Field Filters > Choose the desired value from the dropdown as shown below:

res1.png

res2.png


If you set up a Time-Based Filter in your integration, you are able to use the order filters <Last>, <First>, <2nd>, and so on. However, please note that Integration Center runs on OData, and according to OData v2 conventions, the API is not able to put the results of an one-to-many navigation in an order. Due to this, the <Last> and <First> field filters won't always bring the expected results, as the order returned by the API is not predictable and may vary. We recommend you to not depend on the result that may return from these specific filters, as the value generated from them are not guaranteed to always be the same. This is explained in the KBA below:

2856036 - Fields and filters value 1:many are not appearing or are not the expected - SuccessFactors - Integration Center and OData

If you don't have a Time-Based Filter configured in your integration, these specific filters mentioned above won't have any impact in the result as the value returned will be the current active one (as of date=NOW).

To provide a visual example of what the one-to-many navigation on effective dated entities actually does, please refer to below:

  1. We added a data change (jobTitle) in an employee's Job Info and now a new Job Info record exists for this employee
  2. The employee record on Job Info will show a change from Retail Associate > Administrative Assistant, as shown in the below screen shot:

DataChange.png

  1. Leaving the default filter as <First> will return the job title 'Administrative Assistant', as this is the current active record (as of date=NOW):

latest.PNG

If we set up a Time-Based Filter that would include all Job Info record of the employee, like this:

timeBasedFilters.jpg

And we choose <Last> in the Field Filters, it returned the old Job Info record (not the currently active one).

2nd.PNG

However, again please note that Time-Based Filters and Field Filters <First> and <Last> shouldn't be used together due to the order not being predictable, as it was explained above.

Integration Center search field

When you search for the field you want to add in your integration through the Search field, Integration Center will provide you the available Navigation Routes to that specific field:

one_to_many_1.jpg

You can view all the available routes and choose the one that is more suitable to your needs, but note that the navigation routes provided by Integration Center aren't always the only ones available, nor the best ones. In some cases, the navigation path may be much more efficient, if you perform the navigation route manually through the "Entity Tree View" tab.

See Also

Integration Center Guide

Keywords

One-to-many, Non-Effective Dated, Effective Dated, EmpJob, EmpEmployment, Navigation, <first>, <2nd> , KBA , LOD-SF-INT-INC , Integration Center , LOD-SF-INT , Integrations , LOD-SF-INT-ODATA , OData API Framework , How To

Product

SAP SuccessFactors HXM Suite all versions