SAP Knowledge Base Article - Public

3766848 - Odata v2 Upsert for RBPRule replaces targetgroups with Everyone

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

  1. Perform a GET request: "/odata/v2/RBPRule(the id)?$format=json&$expand=accessGroups,targetGroups,roles".
  2. Confirm that targetGroups is set to a specific dynamic group (not $EVERYONE$).
  3. Perform an upsert on RBPRule using the example from the OData V2 reference guide, including targetGroups in the payload.
  4. 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

  1. Use the new REST API endpoint to update role assignments, which correctly updates target groups for roles with MDF permissions: PLT RBP Management - updateRoleAssignment.
  2. Submit the request including the desired target group in the payload.
  3. Validate that the API returns HTTP 204 with no response body, indicating a successful update.
  4. Avoid using the OData upsert for updating targetGroups in this scenario until the known issue is resolved.

See Also

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