SAP Knowledge Base Article - Public

2833836 - OData API query for field 'postingStatus' unexpectedly returning 'Expired' postings - Recruiting Mamagement

Symptom

When performing an OData API query for the field postingStatus, it is returning "Expired" postings as well.

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 Recruiting Management

Reproducing the Issue

  1.  Execute a query to return the postingStatus for job requisitions where postingStatus is equal to 1 (1 = Success, see KBA 2726841 for more information on this). For example:
    /odata/v2/JobRequisition?$select=jobReqId,jobReqPostings/postingStatus&$expand=jobReqPostings&$format=json&$filter=jobReqPostings/postingStatus eq '1'
  2. Notice that 'Success' and 'Expired' postings are shown:
    Query result.png

Cause

JobRequisition entity and its child entity JobRequisitionPosting is one-to-many (1:M) releationship.

When we apply $filter on an entity that has one-to-many (1:M) relationship with its children, the child entities are not filtered. For details, please see KBA 2856036.

Resolution

Please use JobRequisitionPosting instead of JobRequisition as the starting entity.

Example: /odata/v2/JobRequisitionPosting?$format=json&$select=jobRequisition/jobReqId,postingStatus&$expand=jobRequisition&$filter=postingStatus eq '1'

See Also

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

KBA 2726841 - How to use filter option on jobReqPostings/postingStatus fields in ODATA API - Recruiting Management

Keywords

Expired, jobReqPostings/postingStatus, postingStatus, OData, filter, 2726841, RCM-62702 , KBA , LOD-SF-RCM-API , Webservices & APIs , Problem

Product

SAP SuccessFactors Recruiting all versions