SAP Knowledge Base Article - Public

2541688 - Odata - How to Update and Use the Standard internal Field Status from JobApplication Entity as Filter - RCM

Symptom

This articile explains how to update the standard internal field status and also how to use this field as a filter on a query over JobApplication entity.

Here is the field declaration from the Odata Data Dictionary:

field declaration.png

As part of 1811 release, this field is automatically updated when moving the candidate using Odata. It means, if a candidate is moved from any in-progress status to a disqualified status, the internal status will be updated from open to Disqualified automatically.

"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."  

Environment

SuccessFactors Recruiting Management (RCM) - All versions

Resolution

How to use as a filter

The standard field status is a string field. However, when using the field as a filter in a query call, there are some values acceptable by the system. Not all values are accepted for this field.

Here is an example of some data retrieved from the instance. This screen is from the integration center and contains just a few fields from jobApplication entity to illustrate how the field status is retrieved in a query:

call on the field.png

As shown above, when querying over jobApplication, the value for this field is stored as a string, e.g. Open, however, when using this field as a filter, the query has to be built using the associated code for the correspondent status.

Here is the acceptable status and the linked codes:

This numerical value...

is mapped to...

0

"Open"

1

"Disqualified"

2

"Closed"

3

"Withdraw"

4

"Saved"

5

"Non Applied"

6

"Draft Application"

Here is an example:

<HOST URL>/odata/v2/JobApplication?$format=json&$filter=status eq 4

How to update the internal status field

Since 1811 this field is not directly updatable, the system will change the internal status based on the pipeline status the candidate is placed. Here is an example where a candidate has been moved from an in-progress status to a disqualified status usind Odata, we did not include the status field in the payload and it got updatable.

<host URL>/odata/v2/upsert

{

"appStatusSetItemId": "17",

"status":"Open",

"country": "US",

"__metadata":{

"type":"SFOData.JobApplication",

"uri": "JobApplication(application=62857)"

}

}

*"appStatusSetItemId": "17" is a disqualified status in the candidate status pipeline.

Here is part of the information retrieved in JSON format before runing above payload:

can 1.jpg

Here is part of the information retrieved in JSON format after runing above payload:

can2.jpg

Note the payload used in the upsert call does not change the internal status information, it got updated by the system considering the pipeline status the candidate was moved. It was moved from the New Applicant status (appStatusSetItemId = 3) to the disqualified status Do not meet criteria (appStatusSetItemId = 17).

See Also

2571593 - Error when updating candidate status field in Job Application using API - RCM

Keywords

jobApplication Entity; Odata; status; upsert; insert; update;RCM-53034, update internal applicant status, , KBA , LOD-SF-RCM , Recruiting Management , How To

Product

SAP SuccessFactors Recruiting all versions