You are querying the field logon_user_name from CompoundEmployee to retrieve the username that the employees use to log into SuccessFactors, but you notice that if the user has Global Assignments, the username retrieved from this field is the one from original home contract instead of the username setup as login for the whole account.
This is a expected behavior from Compound Employee.
It's essential to understand the different assignment_class types available in employment information:
- Standard employments and concurrent employments have assignment_class "ST";
- Global assignments have assignment_class "GA".
If a user has only one employment with assignment_class "ST" the user information can be read from users_sysinfo(User object) which is a user based entity.
Once a second "ST" employment is added (this also includes concurrent employments but no global assignments), Compound Employee switches to user_account (UserAccount object) to determine the user information.
The better approach to read the user is the new segment identity_information as it will always expose the attributes from user_account independent of the number of employments.
3206201 - New identity_information segment in Business Integration Builder (BIB) scenarios
2909730 - Explanation of <logon_user_name> and <last_modified_on> fields - SFAPI CompoundEmployee
3050542 - CompoundEmployee: company filter not respected in Global Assignment (job_information)
compound employee, global assingment, logon_user_name, assignment_class, identity_information , KBA , LOD-SF-INT-CE , Compound Employee API , Problem