Symptom
Proxy assignment relationship will be deleted when using API to update user data with parameter "purgeType=record"
Environment
SAP SuccessFactors HXM Suite
Reproducing the Issue
- Grant proxy right to user from proxy management, for example, user B can proxy as user A
- Use API to update user A's data with parameter "purgeType=record"
- After the update, check proxy relationship from proxy management, find this proxy relationship is missing, and B cannot proxy as A anymore.
Cause
This is due to the API request specified parameter "purgeType=record".
For example, https://api15.sapsf.cn:443/odata/v2/upsert?%24format=json&purgeType=record
The "purgeType=record" will trigger a "replace" action, and will always remove the proxy relationship if you don't specify new in the upsert payload.
Once it's replaced, it will set "updateProxy" flag to true regardless what is set in the request. (not just proxy, but also matrix manager, second manager, etc)
When upserting user A's record in json format with "purgeType=record", if proxy field value is not given, all proxy assignments will be removed for user A as account holder.
e.g. when you upsert user A (proxy user) , it will not delete the proxy that A can proxy as B, it will only delete proxy assignment that whoever can proxy as A.
Resolution
This is expected behavior.
Workarounds:
1. Don't use purgeType=record, if it's used on purpose, find alternative ways to achieve the same result.
2. Continue to use purgeType=record, but set the proxy value (you have to read the proxy field first, then fill back in the proxy users , it might be a list of users).
Keywords
proxy management, proxy, missing, account hoder, API, upsert, update user data, purgeType=record, replace, delete, proxy right, proxy relationship, SF, successfactors, INC1860831 , KBA , LOD-SF-PLT-PRX , Proxy , Problem