Symptom
An error occurs when performing an upsert in the OData API for RBPRule. The targetGroups are ignored and replaced with EVERYONE.
Environment
- SAP SuccessFactors HCM Suite
- ODATA API
Reproducing the Issue
- Perform a GET request: "/odata/v2/RBPRule(the id)?$format=json&$expand=accessGroups,targetGroups,roles".
- Confirm that targetGroups is set to a specific dynamic group (not $EVERYONE$).
- Perform an upsert on RBPRule using the example from the OData V2 reference guide, including targetGroups in the payload.
- Perform a GET on the same rule and observe that targetGroups is now set to $EVERYONE$ instead of the provided group.
Cause
- This is a known issue for the OData API when updating a rule’s target group where the role only has MDF permissions. The target group in the request body is ignored and replaced with the $EVERYONE$ group.
Resolution
- Use the new REST API endpoint to update role assignments, which correctly updates target groups for roles with MDF permissions: PLT RBP Management - updateRoleAssignment.
- Submit the request including the desired target group in the payload.
- Validate that the API returns HTTP 204 with no response body, indicating a successful update.
- Avoid using the OData upsert for updating targetGroups in this scenario until the known issue is resolved.
See Also
- Refer to: PLT RBP Management - updateRoleAssignment
- Refer to: OData V2 reference: RBPRule use case
Keywords
odata v2, rbprule, targetgroups, everyone, dynamic group, upsert, role-based permissions, mdf permissions, rest api, roleassignment, sap successfactors, role assignment, targetgroup, , KBA , LOD-SF-INT-ODATA , OData API Framework , Known Error
Product
SAP SuccessFactors HCM Suite 2511
SAP Knowledge Base Article - Public