Professional Documents
Culture Documents
SuccessFactors Foundation
Document Version: Q1 2017 – 2017-03-14
5 Common Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1 Attachment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 CompetencyRating. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
5.3 Country. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.4 Currency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.5 CurrencyConversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
5.6 ExternalUser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.7 ExtPersonalInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.8 ExtPhoneInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.9 ExtEmailInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.10 ExtAddressInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.11 Photo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.12 PickListValueV2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.13 PickListV2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.14 TimeZone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.15 ToDo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.16 User. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Business Rules for API Based File Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.17 Function Imports for Common Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
validateExternalUserIdAndUsername. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
getUserNameFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
validateExternalUserPassword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
getPasswordPolicy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8 Talent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.1 Performance Management Form Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
FormHeader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
FormFolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
FormContent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
FormPMReviewContentDetail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
FormTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
FormObjective. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
FormObjectiveDetails. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
FormUserRatingComment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
FormCompetencySection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
FormCompetency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
FormCustomElement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
FormCustomElementListValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
FormSectionConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
FormItemConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
FormIntroductionSection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
FormUserInformationSection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
FormSummarySection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
FormSignatureSection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
FormSignature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
FormRatingScale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
FormRatingScaleValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
FormCompetencyBehavior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
FormBehaviorRatingComment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
TalentRatings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Import Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.2 Workflow Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
FormRouteMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
9 Recruiting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
9.1 Job Application Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
JobApplication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
JobApplicationComments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
JobApplicationStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
JobApplicationStatusLabel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
JobApplicationAudit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
JobApplicationSnapshot_Education. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
JobApplicationSnapshot_OutsideWorkExperience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
JobApplicationOnboardingData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
JobApplicationOnboardingStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
JobApplicationQuestionResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
11 Onboarding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
11.1 OnboardingCandidateInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
11.2 HRData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
ExpandTags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
FilterFields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
UpdateFields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .395
11.3 ODataAuthentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
12 Goals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
12.1 COTGMObjectiveEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
12.2 COTGMMilestoneEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
12.3 COTGMMLTEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
12.4 COTGMCommentEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
12.5 GoalPlanTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
12.6 SimpleGoal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
15 SuccessStoreContent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
16 Theming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.1 ThemeConfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.2 ThemeTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
16.3 ThemeInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
The most recent changes made to this guide are listed below.
Q1 2017
Table 1: The following table summarizes changes to this guide for the Q1 2017 release
February 10
RBP OData API DynamicGroup Custom A new custom function to query permis ● Custom Functions [page 103]
Function
sion groups that a specific user belongs
to:
● getUserRolesReport
EntitySet All SF extensions have now been re EntitySet [page 20]
placed by SAP extensions. Documenta
tion and sample code has been updated AssociationSet [page 21]
accordingly.
NavigationProperty (Deprecated) [page
22]
OData API version control Here you can exercise version control for OData API Version Control [page 84]
your APIs.
January 27
Removed information about StepCom The StepCompleteHRData API has been N/A
pleteHRData API deprecated.
January 19
Calibration APIs Added the Calibration API OData Enti Calibration [page 253]
ties:
● CalbrationTemplate
● CalibrationSession
● CalibrationSessionSubject
● CalibrationSubjectRank
Added API entity for createPerforman You can use this entity to launch Per createPerformanceReviewForm [page
ceReviewForm, under Talent OData APIs formance Management Forms automati 175]
cally based on different work events.
Removed information about Instance These entities are restricted to internal N/A
Q4 2016
Table 2: The following table summarizes changes to this guide for the Q4 2016 release
December 22
December 9
Instance Synchronization entities Added four new entities and one function (Removed in Q1 2017 update)
import for use with Instance Synchroni
zation use cases.
External user entities and function im Added information about entities for ex ExternalUser [page 44]
validateExternalUserPassword [page
82]
validateExternalUserIdAndUsername
[page 80]
December 2
Execution Manager entities Added four new entities for use with Exe EMEvent [page 450]EMEventAttribute
[page 457]EMEventPayload [page
cution Manager use cases.
460]EMMonitoredProcess [page 462]
November 4
Added API entity for TalentRatings, un Updated the TalentRatings API entity TalentRatings [page 171]
der Talent OData APIs with use-cases
Added the SupporterFeedback entity un The SupporterFeedback entity is used to SupporterFeedback [page 243]
der Talent OData APIs request and provide feedback on CPM
Achievements
Added the HRData API under Onboard HRData is an entity that maintains the HRData [page 381]
ing. candidate’s onboarding information.
Added the ExpandTags medata API un This Entity provides the list and fields of ExpandTags [page 386]
der HRData, Onboarding. all the Data-dictionary that are available
in Onboarding.
Added the FiletFields metadata API un This Entity provides the list of all the In FilterFields [page 390]
der HRData, Onboarding dex fields that can be filtered.
Added the UpdateFields metadata API This Entity provides the list of fields of UpdateFields [page 395]
under HRData Onboarding. under HrDataAPIUpdate Data-diction
ary.
Added the ODataAuthentication API un This is an API to authenticate for other ODataAuthentication [page 397]
der Onboarding. OData API calls. This API call is used to
get the valid token and this token will be
used as authentication in the OData API
Calls to fetch the data.
Q3 2016
Table 3: The following table summarizes changes to this guide for the Q3 2016 release
September 30
We've updated the information about the We've added links to the entities affected Take a look at the sample code to see
date time format changes announced on by the change to the date property, Da these new properties in the sections For
May 20th 2016 in the What's New for teTimeOffSet (FormContent and For mContent [page 116] and FormHeader
Changes to Performance Management mHeader) as well as links to infomation [page 112]
property types about using the DateTimeOffSet. Please
More information about using this date
note that only these two entities have
format is available in Using the DateTi
been updated.
meOffSet Format
September 02
Updated field specific changes in Per Enhanced the field specific changes Performance Management Form Entities
[page 111]
formance Management entities done in Q2 2016. For more information,
refer to Table 2 for Performance Man
agement enhancements.
August 5
Updated the SimpleGoal API entity under Updated the SimpleGoal API entity with SimpleGoal [page 409]
Goals OData API entities use-cases
Added API entities for Continuous Per Added the following API entities: Continuous Performance Management
formance Management, under Talent [page 225]
● ContinuousPerformanceUserPer
OData APIs
mission
● Activity
● ActivityFeedback
● FeedbackFlag
● ActivityStatus
● GoalDetail
● Achievement
RBP OData API DynamicGroup Property A new property in the RBP OData Dy DynamicGroup [page 90]
namicGroup entitiy:
● staticGroup
RBP OData API DynamicGroup Custom A new custom function to query permis Custom Functions [page 103]
Function sion groups that a specific user belongs
to:
● getDynamicGroupsByUser
RBP OData API DynamicGroup Custom A new custom function to query all users Custom Functions [page 103]
Function that belong to a specific permission
group:
● getUsersByDynamicGroup
Table 4: The following table summarizes changes to this guide for the Q2 2016 release
June 22
RCM OData API Entities Added the Required Fields section to the JobApplication [page 265]
following entities under RCM OData API
JobRequisition [page 307]
Entities:
Candidate and CandidateBackground_*
● JobApplication
[page 342]
● JobRequisition
● Candidate JobOffer [page 357]
● JobOffer
RCM OData API Entities Added the following entities under RCM JobReqTemplate_* [page 342]
OData API Entities:
JobAppTemplate_* [page 302]
● JobReqTemplate
● JobAppTemplate
June 03
JobApplicationSnapshot_Education
[page 293]
JobApplicationSnapshot_OutsideWor
kExperience [page 295]
JobApplicationOnboardingData [page
297]
JobApplicationOnboardingStatus [page
298]
JobApplicationQuestionResponse [page
300]
JobReqScreeningQuestionChoice [page
340]
CandidateBackground_Education [page
353]
CandidateBackground_OutsideWorkEx
perience [page 355]
Talent OData API Entities Updated the Permissions section and Performance Management Form Entities
added a separate section for Provision [page 111]
ing Settings in:
Workflow Entities [page 178]
● Performance Management Form
Entities
● Workflow Entities
May 20
Changes to Performance Management The following property names have Performance Management Form Entities
property names changed in all relevant Performance [page 111]
Management entities:
Changes to Workflow property name ● stepDesc is now stepDescription See the Workflow section
Changes to Performance Management The following entity names have Performance Management Form Entities
entity names changed: [page 111]
Changes to Performance Management Data type of following properties is now Take a look at the sample code to see
property (*Date properties) DateTimeOffset: these new properties in the sections For
mContent [page 116] and FormHeader
Entity: FormContent
[page 112]
Properties: lastModifiedDate
More information about using this date
Entity: FormHeader format is available in
Q1 2016
Table 5: The following table summarizes changes to this guide for the Q1 2016 release
Update to User section Explanation that the time to complete User [page 65]
the process of refreshing dynamic
groups is dependent on group size. Con
sequently there may be a delay between
creating a user and that user being able
to login.
Added the following under Talent OData These topics provide information on Tal Performance Management Form Entities
API Entities: ent form APIs that are used to enable in [page 111]
tegration with third party HRIS systems,
● Performance Management Form Workflow Entities [page 178]
which allows you to query and update
Entities.
forms. 360 Multirater Form Entities [page 189]
● Workflow Entities.
Succession OData Entities [page 205]
● 360 Multirater Form Entities.
● Succession OData Entities.
Reorganized guide Reorganized the guide based on product Employee Central Guide.
taxonomy. If you are looking for an entity
that was previously documented here
but now appears to be missing, please
check the Employee Central Guide.
Q4 2015
Table 6: The following table summarizes changes to this guide for the Q4 2015 release
Reorganized guide Reorganized the guide based on product taxonomy. DynamicGroup [page 90]
Updated Endpoint URL in Updated information about data center URLs About HCM Suite OData
APIs [page 16]
formation
Updated Goal Entities Some new Goal entities, GoalPlanTemplate and SimpleGoal were See the Goals section
added. Others were updated.
Updated RCM Entities Some new Recruiting entities were added. Others were updated. See the Recruiting Section
Updated To Do API Explanation about the new subjectId tag has been added/ ToDo [page 59]
The Open Data Protocol (OData) is a standardized protocol for creating and consuming data APIs. OData builds on
core protocols like HTTP, and commonly accepted methodologies like REST. The result is a uniform way to expose
full-featured data APIs. OData provides both a standard for how to represent your data and a metadata method to
describe the structure of your data, and the operations available in your API. SuccessFactors OData API service is
based on OData V2.0.
The HCM Suite OData API is SuccessFactors Web Services API based on OData protocol intended to enable
access to data in the SuccessFactors system. The API is data oriented. This API provides methods for CRUD style
access (Create, Read, Update and Delete). The API is best used for frequent or real time requests for small
amounts of data. Large data requests are better handled by batch FTP processes. This OData API is used to
configure entities. Each SuccessFactors module can be accessed using its own set of entities.
The OData API switch in provisioning is set to enabled by default. The OData API feature is available by default,
unless you manually turn it off in provisioning.
Your endpoint URLs for accessing the OData APIs depend on the data center hosting your SuccessFactors
instance. Your SuccessFactors support representative can tell you the data center location to use for your
instance. Below are the URLs for each of the SuccessFactors data centers:
Table 7:
To get the most out of this guide, you will need to use it in conjunction with the OData API Data Dictionary. The
data dictionary contains the list of entities available in your SuccessFactors Instance. All the properties and
navigation properties for an entity are listed there.
The OData API dictionary also lists the allowed operations, the field (property name), field type and the label. It
also tells you which fields are required and which are not. To view the OData dictionary, go to: Admin Center
Company Settings OData API Data Dictionary .
See the OData Metadata Document [page 19]for more details on the metadata.
The metadata document is a static resource that describes the data model and type system understood by that
particular OData service. You can use the metadata document to learn how to query and navigate between the
entities in the system. Metadata extensions provide additional metadata information on the top of AtomPub, which
gives you access to advanced operations such as data retrieval filtration. To access the SuccessFactors HCM
Suite OData metadata document, go to https://<hostname>/odata/v2/$metadata. This call supports locale
based labels. The default label is "en_US".
The URL will return an XML serialization of the service, including the Entity data model and the service operation
descriptions. The metadata response supports only application/atom+xml type. (For example, the metadata
response cannot be accessed in JSON).
The value of ETag is used to check if the metadata saved in client cache is the same as the one on the server. The
value of max-age in the Cache-Control header is set to the life-cycle of the client metadata cache. If the cache is
valid, no new request is sent to the server. When a client raises a request for metadata the first time, the server
sends back a response with the latest metadata, along with a response header named ETag. The value of ETag is
unique and matches the metadata version. This value is used for “If-None-Match” in the request header the next
time the same request is raised. The server checks the “If-None-Match” value when a new request arrives. If its
value is the same as the latest ETag generated by the server, the server simply sends back a status code of 304
(Not-Modified) instead of resending the entire metadata.
The metadata document describes the capabilities of the API to your SuccessFactors HCM Suite instance. It
contains the details of each Entity that is accessible through the API, including fields, their names and labels, their
data types, and the relationships (associations) between the Entities.
The metadata document also describes the operations available in the API. The OData protocol specifies four basic
data base style operations: Insert, Update, Query and Delete. SuccessFactors has added a fifth operation called
“Upsert” which performs an “Insert or Update” operations. In the future SuccessFactors may add many other
custom operations. Typically custom operations will be perform specific business transactions, especially if a
custom API is easier to manage versus a data base style approach against multiple entities.
Regardless of which operations are used (create, read, update, delete, upsert, or even custom operations),
SuccessFactors HCM Suite will apply the appropriate business logic for each Entity. In other words, even though
Using the metadata document for customized development is optional and considered advanced behavior for API
clients. It can be critical to API client systems that need to write general code which automatically adjusts to the
system configuration. For example, if you are writing a middleware tool that allows runtime discovery of the
SuccessFactors HCM OData system, you can use the metadata document to discover the Entities and fields, and
their data types.
4.1 EntitySet
The OData Metadata document for SuccessFactors HCM Suite contains the following information about the
EntitySet extension.
Example
Sample Code
The OData Metadata document for SuccessFactors HCM Suite contains the following information about
AssociationSet.
Example
<AssociationSet Name="picklistoption_rel_picklistlabel"
sap:insertable ="true" sap:updatable="true" sap:upsertable="true"
Association="SFOData.picklistoption_rel_picklistlabel">
<End EntitySet="PicklistOption" Role="picklistoption" />
<End EntitySet="PicklistLabel" Role="picklistlabel" />
</AssociationSet>
These attributes have been deprecated since 1511 and have now been removed (1608). This is for information only.
Example
The OData Metadata document for SuccessFactors HCM Suite contains the following information about the
NavigationProperty extension.
Note
These attributes have been deprecated since 1511 and removed since (1608). This is for information only.
Example
<NavigationProperty Name="parentPicklistOption"
sf:Insertable="true" sf:Updatable="true" sf:Upsertable="true"
sf:Selectable="true" sf:Sortable="true" sf:Filterable="true"
sf:InlineInsertable="false" sf:InlineUpsertable="false"
Relationship="SFOData.picklistoption_rel_parentpicklistoption"
FromRole="picklistoption" ToRole="parentpicklistoption" />
SAP extensions and their properties for U15 smart controls are described here.
For more information about Extensions Specification in OData, please visit https://scn.sap.com/docs/
DOC-44986 .
Entity Type
Table 12:
sap:content-version No
● vcard
● vevent
● vtodo
● parameters
● aggregate
● variant
sap:label No
sap:is-thing-type No false
Navigation Properties
Table 13:
Function Imports
Table 14:
sap:label No
Schema
Table 15:
sap:content-version No
EntitySet
Table 16:
sap:content-version No
sap:creatable No true
sap:updatable No true
No true
sap:deletable No true
sap:searchable No false
sap:pageable No true
sap:topable No true
sap:subscribable No false
sap:addressable No true
sap:requires-filter No false
sap:label No
sap:semantics No
AssociationSet
Table 17:
sap:content-version No
sap:semantics No
sap:creatable No true
sap:updatable No true
No true
sap:deletable No true
Association
Table 18:
sap:content-version No
sap:semantics No
Table 19:
sap:label No
Table 20:
ValueList No com.sap.vocabularies.Com
mon.v1.ValueList
LineItem No com.sap.vocabula
ries.UI.v1.LineItem
In order to get extra information, such as language labels, picklists, beyond what the standard OData metadata
provides, Successfactors OData exposes metadata as an entity. Take a look a thte sample API calls below to make
the most of this feature.
The following API call shows you how to display a list of entities in your instance:
https://<hostname>/odata/v2
The following API call shows you how to access the entire metadata for your instance:
https://<hostname>/odata/v2/$metadata
The following API call shows you how to access the metadata for only the User entity:
https://<hostname>/odata/v2/Entity('User')?$format=json
Here the entity properties are exposed as a complex type value embedded in the response body of 'Entity'.
Different forms of metadata can thus be exposed without changing the standard OData metadata format. You can
access the new metadata just like you would access a regular entity. In addition, it supports a simple filter to
output metadata of a specific entity or a group of entitie
The following API call shows you how to access the metadata for the User and Photo entities:
https://<hostname>/odata/v2/User,Photo/$metadata
https://<hostname>/odata/v2/User,Photo/User?$format=json&$filter=userId eq ‘cgrant’
5.1 Attachment
This entity provides a single and simple way of uploading the attachment of different modules with various data
elements. For example, the EC module could upload an attachment for workPermitInfo. Regardless of the business
context, the attachment itself can be represented as a common abstraction, which is managed by the platform
attachment framework.
Permissions
There is a permission check for query operation and edit operation, either in the Administrative Domain (in the
traditional permission system) or in the Role Based Permissions (RBP). The Attachment Manager and ODATA API
should be enabled before using this entity.
Table 21:
Permission System Required Setting
Role-based Go to Admin Tools Manage Permission Roles all_perm Permission Manage User .
Select Access to Attachment Export API Admin.
Admin domain Go to Admin Tools Admin privilege Integration Tools . Select Access to Attachment Export
API Admin.
Table 22:
Permission System Required Setting
Role-based Go to Admin Tools Manage Permission Roles all_perm Permission Manage User .
Select Access to Attachment Import API Admin.
Admin domain Go to Admin Tools Admin privilege Integration Tools . Select Access to Attachment Import
API Admin.
Note
Note Attachment navigated from other entities will ignore these permission checks; it will follow the permission
of the source entity.
Table 23:
Operation Description
UPSERT/POST If the attachment record does not exist, insert a new one. Otherwise show message update is not
supported.
Properties
Check the metadata as described in Retrieving metadata [page 27]to see which properties including the
navigational properties are supported by this entity.
Use Cases
Table 24:
API Call Description
GET /odata/v2/Attachment(1L) Query by attachment Id. You can use attachmentId as busi
ness key to query a single attachment entry. Other properties
such as users_sys_id, last_modify, and module can be used to
filter the query result.
GET /odata/v2/Attachment?$filter=module eq Query by filter. The value of module and module category
'EMPLOYEE_PROFILE' would come from the module team who that is calling this API.
POST /odata/v2/Attachment Insert a new attachment. Currently only insert is supported for
attachment entity, replace/merge is not allowed for attach
Sample Payload: ment. The file content should be base64 encoded.
{ "userId" : "admin", "externalId" : 1111,
"fileName" : "f1.jpg", "module" : "CDP",
"description" : "des1", "fileContent" :
"ZHV6aWVsZQ==", "viewable" : true,
"deletable": false }
In order to insert an attachment, you need to provide below info: userId (or externalId), fileName, module,
statusTextSet, fileContent. The file content should be base64 encoded before you calling the insert API. Virus scan
will be implemented before insert operation. Following are constraints for inserting:
Table 25:
ApplicationModuleEnum
DEFAULT
COMPENSATIONCOMPENSATION
GOAL_MANAGEMENT
EMPLOYEE_PROFILE
PM360_REVIEW
PERFORMANCE_MANAGER
RECRUITING
SUCCESSION
VARIABLE_PAY
HRIS
GENERIC_OBJECT
CDP
CALIBRATION
4. . fileContent is required for input, and it should not be null. The size should not exceed the limit of company.
The limit is defined in provisioning, by default 5M.
5. Multiple fields are used to indicate the attachment status, they will finally map to a single database column:
status. The below table depicts the influence of accumulation result of these fields:
Table 26:
StatusEnum Status
VIEWABLE 1
SEARCHABLE 2
DELETABLE 4
DEPRECABLE 8
SOFT_DELETE 16
IMAGE_CONVERT_IN_PROGRESS 32
Note
if VIEWABLE only, the status is 1; if DELETABLE only, the status is 4; if [VIEWABLE, DELETABLE], the status
is 5 (1+4); if [VIEWABLE, SEARCHABLE, DELETABLE], the status is 7 (1+2+4).
6. fileExtension is read from fileName. Valid value list of fileExtension is as below. mimeType is parsed from
fileContent. Valid value list of fileExtension is as below:
Table 27:
AttachmentFileExtension
doc
doc
csv
htm
mle
ppt
xls
gif
png
jpg
jpeg
html
rtf
bmp
xlsx
docx
pptx
txt
7. . moduleCategory is not required for input, but if it is provided, the value should be either null or one of below
values:
Table 28:
AttachmentTypeEnum
UNSPECIFIED
RESUME
COVERLETTER
HRIS_ATTACHMENT
PERFORMANCE_ASSESSMENTS
360_MULTI_RATER_ASSESSMENTS
CERTIFICATIONS
PUBLICATIONS
USER_DEFINED
CANDIDATEHISTORY
ATTACHMENTS
APPLICATION_INTERVIEW_ATTACHMENTS
GENERICOBJECT_ATTACHMENT
Decoding Attachments
The response to a query request to an attachment entity contains a base64 encoded string, which represents the
file content, but it is not readable(as doc or pdf) or visible(as an image). The code example below converts the
base64 encoded string into the original attachment content:
import javax.ws.rs.core.Response;
import org.odata4j.repack.org.apache.commons.codec.binary.Base64;
// the input parameters are from properties of Attachment instance:
// fileContent -> base64String
// mimeType -> mimeType
// fileExtension -> fileExtension
protected Response getFileContent(String base64String, String mimeType, String
fileExtension) {
byte[] bValue = Base64.decodeBase64(base64String);
InputStream inputStream = new ByteArrayInputStream(bValue);
You can simply implement the $value extension for Attachment so that you could get the file content directly with
the expected file type.
Permissions
Table 29:
Permission Setting
Table 30:
Permission Setting
None.
Operations Allowed
UPSERT/POST If the competency rating record does not exist, insert a new
one. Otherwise, update the competency rating record in data
base.
Note
● Only Upsert supports handling multiple records. The rest operations can only handle one record at a time.
● Edit operations are only available for Competency Rating when the rating type is "Individual", the source
type is "Live Profile", and the module is an API.
Navigation Properties
There is a one-to-many association between User and CompetencyRating. For each user there can be one or more
competency ratings, and for each competency rating, there is only one corresponding user.
Table 32:
Use Cases
● The Performance and Learning modules write employees competency ratings into the Feedback table. You
can query this data using CompetencyRating OData API.
● For one time migration, employee ratings from SAP HCM have to be transmitted to SFSF BizX. You can insert
one competency rating record, or insert a batch (upsert) of competency rating data using the
CompetencyRating OData API. You can also update or delete a specific competency rating record.
● You can edit the competency rating type; individual rating (rating = 1), live profile rating source(source = 2),
and module is API (module = 21). Since the internal ID is used as a key, you should always get the ID first for
editing.
/odata/v2/CompetencyRating(211509L)/user Get the user for a given competency rating using the naviga
tion property.
/odata/v2/User('admin')/competencyRating Get the competency rating for a user using the navigation
property.
This entity stores information that is relevant for each country, such as currency and country code..
Permissions
Table 34:
Permission System Required Setting
Role Based Permissions Go to Admin Center Manage Permission Roles Permission Settings
Metadata Framework . Select Read/Write Permission on the metadata
framework for non-admin use, and Import Permission on the metadata frame
work for admin use.
Operations Allowed
Table 35:
Operation Description
Navigation Properties
Table 36:
Navigation Property Related Entity Description
Use Cases
Table 37:
API Call Description
Code Examples
"__metadata":{
"uri":"https://localhost:443/odata/v2/
Country(code='USA',effectiveStartDate=datetime'2010-06-01T00:00:00')",
"type":"SFOData.Country"
},
"effectiveStartDate":"\/Date(1275321600000)\/",
"code":"USA",
"status":"A",
"twoCharCountryCode":"US",
"externalName_en_US":"United States",
"numericCountryCode":"1",
"statusNav":{
"__deferred":{
"uri":"https://localhost:443/odata/v2/
Country(code='USA',effectiveStartDate=datetime'2010-06-01T00:00:00')/statusNav"
}
5.4 Currency
Permissions
Table 38:
Permission System Required Setting
Operations Allowed
Table 39:
Operation Description
Navigation Properties
Table 40:
Navigation Property Related Entity Description
Use Cases
Table 41:
API Call Description
Permissions
Table 42:
Permission System Required Setting
Operations Allowed
Table 43:
Operation Description
Navigation Properties
Table 44:
Navigation Property Related Entity Description
Use Cases
Table 45:
API Call Description
You can use this entity to perform operations on external users. External users are users who are not employees
but nonethless need access to SAP SuccessFactors HCM Suite. Single user upload only and not bulk upload is
supported.
You can get detailed information about supported operations and the entity properties including navigation
properties from the OData API dictionary or by exposing the entity metadata. To do this, use the following query
https://<hostname>/odata/v2/Entity('ExternalUser')?$format=json
Use Cases
Operation POST
URI http://<Hostname>.com/odata/v2/upsert
{
"__metadata": { "uri":
"ExternalUser('external1')" },
"status":"e",
"password":"pwd",
"productName":"LMS",
"defaultLocale":"en_UK",
"timeZone":"PST",
"loginMethod":"PWD",
"extPersonalInfo":{
"firstName":"first1",
"lastName":"second1",
"middleName":"middle1"
},
"extEmailInfo":[{
"emailAddress":"external1@successfacto
rs.com",
"emailType":"P",
"isPrimary":"true"
}],
"extPhoneInfo":[{
"countryCode":"086",
"areaCode":"021",
"phoneNumber":"97654321",
"extension":"9879",
"phoneType":"B",
"isPrimary":"true"
}],
"extAddressInfo":[{
"addressType":"business",
"country":"China",
"province":"Shanghai",
"city":"Shanghai",
"zipCode":"200001",
"address1":"Jinke Road",
},
{
"addressType":"shipping",
"country":"China",
"province":"Shanghai",
"city":"Shanghai",
"zipCode":"200000",
"address1":"Chenhui Road",
}
]
}
Response
Sample Code
{
"__metadata": { "uri": "ExternalUser('external1')" },
"status":"e",
"password":"pwd",
"productName":"LMS",
"defaultLocale":"en_UK",
"timeZone":"PST",
"extPersonalInfo":{
"firstName":"first1",
Operation Upsert
URI http://<Hostname>/odata/v2/upsert
{
"__metadata": { "uri":
"ExternalUser('external1')" },
"status":"e",
"password":"pwd",
"productName":"LMS",
"defaultLocale":"en_UK",
"timeZone":"PST",
"loginMethod":"PWD",
"extPersonalInfo":{
"firstName":"first1",
"lastName":"second1",
"middleName":"middle1"
},
"extEmailInfo":[{
"emailAddress":"external1@successfacto
rs.com",
"emailType":"P",
"isPrimary":"true"
}],
"extPhoneInfo":[{
"countryCode":"086",
"areaCode":"021",
"phoneNumber":"97654321",
"extension":"9879",
"phoneType":"Business",
"isPrimary":"true"
}],
"extAddressInfo":[{
"addressType":"business",
"country":"SampleCountry",
"province":"SampleProvince",
"city":"SampleCity",
"zipCode":"200001",
"address1":"SampleStreet",
},
{
"addressType":"shipping",
"country":"SampleCountry",
"province":"SampleProvince",
"city":"SampleCity"
"zipCode":"200000",
"address1":"SampleRoad",
}
]
}
Response
Sample Code
{
"__metadata": { "uri": "ExternalUser('external1')" },
"status":"e",
"password":"pwd",
"productName":"LMS",
"defaultLocale":"en_UK",
"timeZone":"PST",
"extPersonalInfo":{
"firstName":"first1",
5.7 ExtPersonalInfo
You can use this entity to query personal information about an external user such as first name or last name.
You can get detailed information about supported operations and the entity properties including navigation
properties from the OData API dictionary or by exposing the entity metadata. To do this, use the following query
https://<hostname>/odata/v2/Entity('ExtPersonalInfo')?$format=json
You can use this entity to query information about the phone number of an external user.
You can get detailed information about supported operations and the entity properties including navigation
properties from the OData API dictionary or by exposing the entity metadata. To do this, use the following query
https://<hostname>/odata/v2/Entity('ExtPersonalInfo')?$format=json
5.9 ExtEmailInfo
You can use this entity to query information about the e-mail address of an external user.
You can get detailed information about supported operations and the entity properties including navigation
properties from the OData API dictionary or by exposing the entity metadata. To do this, use the following query
https://<hostname>/odata/v2/Entity('ExtEmailInfo')?$format=json
5.10 ExtAddressInfo
You can use this entity to query information about the address of an external user.
You can get detailed information about supported operations and the entity properties including navigation
properties from the OData API dictionary or by exposing the entity metadata. To do this, use the following query
https://<hostname>/odata/v2/Entity('ExtAddressInfo')?$format=json
The Photo entity allows you to query, import, update, and delete user photos in the system.
Permissions
There is no permission check for query operation. You need to set the following permissions to enable edit
operations like Import,Merge,Replace,Upsert and Delete:
Table 48:
Permission System Required Setting
Role-based Go to Admin Tools Manage Permission Roles Permission Settings Employee Data
User-based Go to Succession Management Import/Export Data Model . Export the file and edit it to grant
write permission on "Photo" element to the correct roles. Import the revised xml file.
Operations Allowed
Table 49:
Operation Description
QUERY The system stores several images for a single user's profile picture in different sizes to be used in
different applications. For example, thumbnail size images are used in the org chart, quick card
and faces page, while larger size images are used in the employee profile. The different photo
types are categorized by the photoType field. You can query for a specified photoType. All photos
with the identified photoType for all active users are returned.
To retrieve photos for a given userId but different photoType, you need to specify the userId in the
query.
To retrieve a single photo for a given userId and photoType, you need to put both of them into
query criteria.
IMPORT When a photo is imported for a user, the system generates several internal images in different
sizes and saves them in the database.
MERGE Updates a photo record in the database with specified photo properties.
DELETE The system removes all the internally generated images when a photo is deleted for a user.
UPSERT/POST If the photo does not exist, inserts a new one. Otherwise updates the photo record in database.
● Only Upsert supports handling multiple records. All other operations can only handle a single record.
● Edit operations are only available for photos of photoType LIVE_PROFILE or USER_EXPRESSIVE_PHOTO.
● When a user inserts a LIVE_PROFILE photo, ORG_CHART, QUICK_CARD, FACE, LIVE_PROFILE_SQUARE_60
and LIVE_PROFILE_SQUARE_30 photos are generated automatically.
● If a LIVE_PROFILE photo is deleted or updated, then ORG_CHART, QUICK_CARD, FACE,
LIVE_PROFILE_SQUARE_60 and LIVE_PROFILE_SQUARE_30 photos are also deleted or updated.
● For the USER_EXPRESSIVE_PHOTO, the system will check and raise an error if the size of the photo is not
980x580.
● When Public Profile view is set to “Expressive”, and user does not specify any background photo, querying
USER_EXPRESSIVE_PHOTO with userId, returns the randomly assigned background photo, or default
background photo according to the admin setting. If no random image is available, then the default
background photo will be returned.
Properties
To retrieve a particular photo you must specify the userId and photoType. These are the business keys for the
Photo entity:
Table 50:
Property Description
lastModifiedDateTime The date and time, with time zone information when the photo was last modified.
The following table lists the various photo types that are available:
Table 51:
Phototype Enu Phototype ID Max Width Max Height Supported Opera Comments
meration tions
We now support the Query operation for a media resource. A media resource is typically a BLOB and is described
by a Media Link Entity (MLE). MLE is special kind of resource that contains metadata about a media resource. In
Sample Code
<Property...
</Property>
...
</EntityType>
Use Cases
Table 52:
API Call Description
The OData User Photo API now returns new http status codes as a part of an upsert response. The newly added
status codes are 200, 201, 400 and 500. Usually, if the item gets inserted, the httpCode is 201, if the item gets
updated, then the httpCode is 204, if we don’t know the exact action, the httpCode is 200. For an error, the
httpCode is 400 for a bad request exception. If the exception is recognized, the httpCode is set to 500.
Table 53:
Error Code Description
400 The photo type is not equals 1(live profile) or 14(expressive) when editing a photo en
tity
403 The photo type is 14(expressive) and public profile is not enabled when editing a photo
entity
403 The photo type is 14(expressive) and expressive mode is not enabled for company
when editing a photo entity
403 The photo type is 14(expressive) and public profile is not in expressive mode for user
when editing a photo entity
403 The photo type is 14(expressive) and uploading of background photo is not allowed in
admin tools when editing a photo entity
400 The photo type is 14(expressive) and edit other user's photo when editing a photo en
tity
{
"d":[{
"key": "test_new_user_001",
"status": "OK",
"editStatus": "INSERTED",
"message": null,
"index": 0,
"httpCode": 201,
"inlineResults": null
},{
"key": "test_existing_user_001",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": 1,
"httpCode": 204,
"inlineResults": null
},{
"key": "upsert_user_0001",
"status": "ERROR",
"editStatus": null,
"message": "Key property (User/userId) doesn't match the key in the __metadata
uri",
"index": 2,
"httpCode": 500,
"inlineResults": null
}]
}
Permissions
Table 54:
Permission System Required Setting
Role-based Go to Admin tools Manage Permission Roles Permission Settings Metadata Framework .
Select Read/Write Permission on the metadata framework for non-admin use, and Import
Permission on the metadata framework for admin use.
Operations Allowed
Table 55:
Operation Description
Navigation Properties
Table 56:
Navigation Property Related Entity Description
Table 57:
API Call Description
5.13 PickListV2
Permissions
Table 58:
Permission System Required Setting
Role-based Go to Admin tools Manage Permission Roles Permission Settings Metadata Framework .
Select Read/Write Permission on the metadata framework for non-admin use, and Import
Permission on the metadata framework for admin use.
Operations Allowed
Table 59:
Operation Description
Navigation Properties
Table 60:
Navigation Property Related Entity Description
Use Cases
Table 61:
API Call Description
Permissions
Table 62:
Permission System Required Setting
Operations Allowed
Table 63:
Operation Description
Navigation Properties
Table 64:
Navigation Property Related Entity Description
Use Cases
Table 65:
API Call Description
5.15 ToDo
This entity represents the list of tasks (Todos') assigned to a user. Todos can be classified into different categories
and map to different functional areas in the HCM Suite.
Following is the list of valid category IDs, their description and display order:
Table 66:
Category ID Mapping Description Display Order
23 EC alert Category 24
24 IT Category 25
25 Deductions Category 26
Operations Allowed
Table 67:
Operation Description
GET Query the ToDo entity to retrieve information about stored ToDos.
Table 68:
Property Description
categoryId A string that identifies the type of Todo. This property can be used as a filter. The
API returns all todos if no categoryId is specified in the API call. You can use the
orderby operation to sort this property.
Todos A list containing all Todos for the currently logged in User.
displayOrder Display order of the given ToDo. This can be either ascending or descending .
e.g.orderby = displayOrder desc
Table 69:
API Call Description
http://<hostname>/odata/v2/Todo? Query by value status not equal to 3. Status of a task can take
$format=json&$filter=status ne '3' the following values:
● 1: Upcoming task
● 2: Active task which is pending for logged in user to take
action
● 3: Completed task.
Code Example
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://ex.successfactors.com:443/odata/v2/Todo('5')",
"type": "SFOData.Todo"
},
"categoryId": "5",
"todos": {
"results": [
{
"categoryId": "5",
"completedDate": null,
"dueDate": "/Date(1391144400000)/",
"dueDateOffSet": -2,
"entries": null,
"entryId": 0,
"name": "Post this job.",
"status": 0,
"statusLabel": null,
"stepDescAlt": null,
"todoItemId": "60",
"url": "https://ex.successfactors.com/sf/recruiting?company=myCompany"
}
]
},
"categoryLabel": "Recruit New Talent"
},
{
"__metadata": {
"uri": "https://ex.successfactors.com:443/odata/v2/Todo('10')",
"type": "SFOData.Todo"
Table 70:
Tag Description
dueDate If applicable, this is the due date for the Todo item.
dueDateOffSet If applicable, this is the number of days until the Todo item is due.
entries This is the list of Todos for one step in route map.
name This is the name of the step or a learning item. For the 'Profile Complete" Todo,
this is set to "Finish Your Profile".
url This is the relevant deeplink URL, if any, for the category.
subjectId For the workflow Todo, the value of this tag is equal to the workflowId of the
workflow item. This value of this tag is null for all other Todo types.
Table 71:
Application To Do Category URL
EC CATEGORY_GENERIC_OBJECT_CHANGE_REQUESTS = /sf/
"17" hrisworkflowapprovelink?
workflowRequestId=V2-FF...
EC CATEGORY_ABSENCE_MANAGEMENT_REQUESTS = /sf/
"18" hrisworkflowapprovelink?
workflowRequestId=V2-FF...
5.16 User
The User Entity represents a user account and contains user demographic and organizational information such as
a user's department, division, location, job code, manager and other details.
The User Entity lets you integrate data between SuccessFactors HCM Suite and your Human Resource
Information System (HRIS) or payroll system. This data-transfer process allows single-source updates of your
To do this integration, you must export the defined data fields. These data can be imported to the tool either
through the API using the User entity, or through a flat file, which is uploaded through the Admin Tools user
interface.
The API can be accessed to upload the data in real time. You can automate thee file-update process can be
automated using a Secure File Transport Protocol (SFTP) process, executed according to your schedule to
maintain synchronized data.
Permissions
Unlike SFAPI, in the OData API there is a separation between User and Admin permissions. It is not required that
users have Admin privileges to query the User Entity. But only users with Admin permission can edit it.
Administrative Permissions
Users with Employee Export permission to the OData API will be able to query all columns of data that they have
permission to access, but row-level restrictions are applied based on the Roll-Based Permissions (RBP) settings
for the user. The RBP settings are the same as row restrictions that can be applied through file-based imports and
exports by specifying a target population in either an Administrative Domain (in the traditional permission system)
or through a target population in the RBP settings. If the user doesn’t have Employee Export permission, row and
field-level permission settings in RBP are followed.
To edit a User Entity, you can use either the Import Employee Data permission or the Employee Import
permission, depending on the following::
● If you have the Effective Dated Data Platform,or Employee Central V2,or EC2MDF features enabled in
provisioning, the Import Employee Data permission is enabled.
● Else, the Employee Import permission is enabled.
The following administrative permissions are required to have admin access the User entity. RBP restrictions take
effect after these basic permissions have been granted.
Table 72:
API Operation Permission Required
DELETE You cannot hard-delete any row in the User entity. You can
only set the status to inactive or
inactive_externall, which is in effect a soft delete. Note
that user data can be purged separately by administrators us
ing the System Data Retention Management feature.
An administrator with Employee Export and Employee Import permission who is not on a RBP system will have all
corresponding query and edit permissions.
Permissions for a user without administrative permissions are controlled by RBP settings for the user. The OData
User Entity honors field and row-level security for your system. For RBP systems, security permission includes
view (query) and edit (not delete) permissions for each field.
For non-RBP systems, user permissions are set in the Succession Data Model that is configured by your
SuccessFactors HCM Suite implementation representative. Users without admin access cannot access the User
Entity. You must have Employee Export or Import Employee Data permission to access the User Entity.
The fields in the User Entity are configured in the system data model, which is called the Succession Data Model.
The Succession Data Model is a shared platform data model configuration framework. It is typically configured by
your SuccessFactors HCM Suite implementation representative in consultation with your organization and
required business practices. It may also be configured by your company SuccessFactors HCM Suite administrator
using the SuccessFactory tool. The User Entity exposes every <standard-element> and <userinfo-
element> field that appears in the Succession Data Model
The User entity has field level permission control. When a user entity is queried, the API checks the permission of
each property taking into account, the authorization of the login user. This information can be used by integration
as needed. For example, a user-interface could display a field as a label if the field is read only, or display it as an
input box if it is mandatory.
The following table lists the values that field permisions can take:
Table 73:
Value Description
https:<hostname>/odata/v2/User('cgrant')?$expand=userPermissionsNav
<entry>
<content type="application/xml">
<m:properties>
<d:userId>cgrant</d:userId>
<d:addressLine1>651 Michigan Ave</d:addressLine1>
...
</m:properties>
</content>
<link href="User('cgrant')/userPermssionsNav"/>
<m:inline>
<feed>
<title type="text">userPermissions</title>
<id>User('cgrant')/userPermissionsNav</id>
<link rel="self" title="userPermissions" href="User('cgrant')/
userPermissionsNav" />
<entry>
<m:properties>
<d:userId>cgrant</d:userId>
<d:addressLine1>1</d:addressLine1>
...
</m:properties>
</entry>
</feed>
</m:inline>
</link>
</entry>
In the example, the permission data for the user 'cgrant' is displayed as an inline structure along with the user data.
The field 'addressline1' is read-only.
There are several differences between importing and exporting of employee data between the OData API and
filebased processes.
Table 74: Differences between file-based processes and OData API for importing/exporting employee data
File-based process OData process
Imports and exports of employee data are managed through All fields in the Basic Employee Import/Export and the Ex
two separate files: tended User Information field are combined into the User En
tity.
● (Basic) Employee Import/Export will access the core em
ployee data fields used to create the user account and the
core organizational fields required for security and core
business processes.
● Extended User Information Import/Export accesses
many extended fields used in additional modules like
Succession, Compensation and Recruiting.
Field names differ from between the OData API User entity See [add xref link to "Business Rules for OData API Based File
and the Basic Employee Import. For details, see [add xref link Transfers" topic]
to "Business Rules for OData API Based File Transfers" topic]
Import of employee data are typically scheduled on a nightly Imports are real time.
basis, so the imports are not real time.
Date-time formats must be mm/dd/yyyy. ● OData API datetime formats are as follows: /
Date(694224000000)/ for JSON and
2000-12-12T12:00 for ATOM
● Some API entities may take a date value tunneled inside a
string datatype.
Imports are unlimited in file size. Imports are subject to the API batch size rules (maximum
batch size of 1000)
1. File-based imports and exports of employee data are managed through two separate files:
1. (Basic) Employee Import/Export will access the core employee data fields used to create the user account
and the core organizational fields required for security and core business processes.
2. Extended User Information Import/Export accesses many extended fields used in additional modules like
Succession, Compensation and Recruiting.
2. In the OData API, all of the fields in the Basic Employee Import/Export AND the Extended User Information
field are combined into the User entity.
3. Field names differ from between the OData API User entity and the Basic Employee Import. These differences
are documented below.
4. . Imports to the User API entity are real time, and are subject to the API batch size rules (maximum batch size
of 1000). File based imports are unlimited in the file size. File based import of employee data can be
scheduled, typically on a nightly basis, so the imports are not real time.
5. Date format differs between file imports and API:
1. File date-time formats must be mm/dd/yyyy.
2. OData API datetime formats are "/Date(694224000000)/" for JSON and “2000-12-12T12:00” for ATOM
3. Some API entities may take a date value tunneled inside a “string” datatype. Please refer to specific entity
documentation for exceptions on date formats.
Note
When updating user information via user import tool, Manage Employee application or using an OData
API call, dynamic groups are refreshed asynchronously, in a separate job. This allows the user import
request to be completed in a timely manner. However, the process of refreshing the dynamic groups
varies in ttime from seconds to minutes. The delay time is dependent on the dynamic group number
and the load of the Job server. This means that when you create a user, the user will not usually get the
login access immediately.
Table 75:
Operation Description
Query You can query the User Entity using keywords or a custom
query.
Upsert The server updates the Entity for which an external id already
exists. A new Entity is inserted if the external id doesn’t exist.
Inline properties of Entities are also updated.
deleteLink You can delete a link from one user instance to another entity
instance using a navigation property.
createLink You can create a link from one user instance to another entity
instance using a navigation property.
Properties
The userId, username, and status properties are usually required. The userId is a business key. Other fields
can be configured as required if needed in your system. Commonly fields are shown in the following table:
Table 76:
Property Description
dateOfPosition
futureLeader
issueComments
lastModifiedDateTime The date and time, with time zone information when the user
information was last modified.
mi User information.
Navigation Properties
Table 77:
Navigation Property Description
Table 78:
API Call Description
This section describes business rules for API based file transfers.
Introduction
● The system has a base set of fields that are required, including the following: externalId, username and status.
In addition to these fields, your system can be configured to require additional fields. These fields can be used
in the system for reporting and managing security.
● If a field will not be populated, do not include that field in the API feed or the import file. If a field is included in
either the API or the import file, and the field is blank (or if it is listed as null in the API) it will wipe out what is
already in the database. Omit the field if you don't want to update it.
● All String field values are case sensitive. For example, if the username uses mixed case letters, the logon
process will require that it be entered in mixed case.
● Data placed in the Department,Division , and Location fields are string values. They may contain a code
or text name. The value entered will appear in drop-down menus.
● Field label values are limited to 100 characters. Field labels in the API are viewed through the describeEx()
metadata, and are presented in the locale of the API user. In the file imports orexports, the field label values
are presented as the second line header row. The field label values cannot be modified through the API or
through the file feeds. The field label values are localizable, and are configured through a separate system
setup process.
● Most string field data values are limited to 255 characters.
● The username field must use a unique name of each user. The name is used as the logon ID value and is visible
in a variety of places to all end users. Because of its visibility, username must not contain confidential data,
such as a social security number. Unlike externalUserId, this value can be updated if needed, (for example,
a name change) , provided the name is unique. Most customers choose to use the same username they use
for their local network or email application.
● The externalId field must be unique for each user, and is used as a system field to link records. Its value is
visible in a variety of places to all end users. Because of its visibility, externalId must not contain
confidential data, such as social security number. This value must be passed with each employee data record
during each upload. Take care in selecting this value because it this is a permanent decision. This value cannot
be changed once set.
● Because the jobCode field is a string and is case sensitive, it must match exactly the case sensitivity of job
codes designated for job roles. In Admin Tools, see Families and Roles -Managing Competencies and
Skills. The jobCode determines competency mapping, which allows competencies to be populated on forms
and worksheets based on the value in the jobCode field. If the company is using job profiles, the value entered
in this column will determine what set of competencies will be displayed on the appraisal form for that
employee. This value may be the actual job code from the HRIS or a derived code. Many customers will choose
to combine job codes into broad employee groups to make it easier to administrate competency sets that are
common across roles in the same group. This decision should be made by the implementation team and
based on the process involved.
● The hireDate field is used in for display purposes and to initiate an automatic form creation for a user. The
value in the hireDate field does not have to be the actual hire date and may be a date derived from the HRIS
system (for example,. hire date + 90 days, last review date - 60 days, and so on), used to determine when a
new document will be created for this employee. The system can be set to automatically generate a new form
for this employee based on the month/day combination of this field value. For example, if Jim's hire date is
03/02/2002, the system can be set to automatically create a new appraisal form for Jim each March 2nd.
● The "Country" field can determine which of several possible Privacy Consent Statements will be presented to a
new user. If the Privacy Consent feature is enabled, when users log in to the system the very next time, they
will be directed to the data consent page - which can vary depending on the COUNTRY field. Users can then
choose to accept or decline the terms presented. Use the names specified in the Country List at the end of this
document.
● The defaultLocale field is not typically required. If present, defaultLocale will determine the languages
experienced by the users (one language per user). Users can specify their locale preferences in the user
options.
● The timeZone field is recommended for internal time/date stamps used in the User Entity. If a timeZone
value is not loaded, the field will be automatically populated with a default of Eastern Standard Time. Records
may be set to one value (For example, the. time zone for the corporation headquarters) instead of different
zones for each employee. To have the system automatically adjust for daylight savings time, use the time zone
ID from the section on supported time zones instead of the three-letter abbreviation.
● The ability for the employee to edit data that's loaded into the employee record (on the Personal Information
screen) is an option defined during initial set-up. We strongly recommend that edit permissions be disabled for
any values you are importing from your HRIS system. This is necessary to maintain the sync of data with the
There are five user-to-user relationship types that can be used to manage security, workflows, and reporting::
1. The Manager relationship creates the employee hierarchy. Loops are prevented (meaning a manager cannot
report to themselves). Each employee must have a valid manager. Upon data load, the tool checks that each
employee has a valid manager listed in their data record. This validation check is executed against the
employees held within the SuccessFactors HCM Suite database. Therefore, the manager for each user record
must refer to another existing user in the database.
Because this validation is done within a single API batch operation,you can insert new records for both an
employee and their manager in a single API batch call. The manager can be set through two API fields:
○ The managerExternalId field maps to the externalId of the User record for the employee’s manager
○ The managerId field, which maps to the id field of the manager, which is an internal Id value. As a best
practice, for simplicity we suggest using the managerExternalId instead of supplying both values.
2. TheHR Manager relationship lets you apply security settings to allow the HR manager to access the user. The
HR Manager is not enforced as a hierarchy. The HR manager can be set through two API fields:
○ The hrExternalId field maps to the externalId of the HR manager Entity.
○ The hrId field which maps to the id field of the HR manager Entity, which is an internal Id value.
Note
As a best practice, for simplicity we suggest using the hrExternalId instead of supplying both values.
3. The Second Manager relationship is another employee hierarchy, and loops are prevented (a manager cannot
report to himself). This is typically used in compensation planning processes to freeze the hierarchy at a point
1. The Matrix and Custom Manager relationships can also be loaded separately from the User Entity in the
MatrixManager and CustomManager API entities. This is useful to increase performance of the loads by
providing delta updates instead of full load and replace of all relationships.
2. Each of the relationships are highly useful in translating between your HRIS organizational security structures
into the SuccessFactors HCM Suite system, which does not have organizational structures. In the current
security capabilities, your data feeds from the HRIS will typically transfer your organizational security access
into a person-to-person mapping that will be loaded into these structures. For example, if your HRIS has a
department hierarchy where Dept1 contains Dept2 and Dept3, and you want to grant an HR person access to
the Dept1 hierarchy, you can explode out the users that are assigned to the Dept1 HRIS hierarchy and, as the
HR person who needs access to these users, you can assign each of these users to an HR Manager, Matrix
Manager, or Custom Manager .
3. An alternative to using Employee relationships to translate from your HRIS organizational security structures
is to use one of the CUSTOM01-15 fields to contain structural identifiers that can group people into
substructures of your HRIS organizational structures. This is a translation from your HRIS hierarchical
structures into flat identifiers, or tags. For example, if your organizational structure has a hierarchy where
Dept1 contains Dept2, and Dept3, and you grant users access to the Dept1 hierarchy in your HRIS, you can tag
all users in this hierarchy with a value of Dept1-Hierarchy in the CUSTOM01 field , and grant security access
rules through this tag . Then, if Dept4 is added to the HRIS Dept1 hierarchy, your data feed will update the
appropriate users with the Dept1-Hierarchy tag, for those who match your new Dept4 organization. You can, of
course, also assign access directly to the departments field . But if new departments are added later, you will
have to update security settings in SuccessFactors HCM Suite to grant access to them as well. This process
will depend on how your organization is managed.
5.17.1 validateExternalUserIdAndUsername
You can use this function import to check if the user ID and user name entered for the external user ID are valid
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/
validateExternalUserIdAndUsername ?
userId='<userId>'&username='<username>'&lo
cale='<locale>'
Description Checks if the user ID and user name entered for the external
user ID are valid. Locale is used by the message in the re
sponse.
Related Information
5.17.2 getUserNameFormat
You can use this function import to get the user name format that is defined in SAP SuccessFactors HCM Suite for
the external user. Locale is used by the message in the response.
The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Importsfor
getUserNameFormat.
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/
getUserNameFormat?locale='<locale>'
Description Gets the user name format that is defined in SAP SuccessFac
tors HCM Suite for the external user. Locale is used by the
message in the response.
Related Information
5.17.3 validateExternalUserPassword
You can use this function import to check if the password for the external user is valid. Locale is used by the
message in the response.
The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Imports for
validateExternalUserPassword.
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/
validateExternalUserPassword ?
userId='<userId>'&password='<password>'&lo
cale='<locale>'
Description Checks if the password for the external user is valid. Locale is
used by the message in the response.
Related Information
You can use this function import to retrieve the password policy that is defined in SAP SuccessFactors HCM Suite.
The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Imports for
getPasswordPolicy.
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/
getPasswordPolicy?locale='<locale>'
Related Information
In SAP SuccessFactors, you can apply version control to your OData APIs
RBP Access to OData API Version Control Manage Permission Roles then
Versions Control
Non-RBP Access to OData API Version Control Set User Permissions Integration
Tools Access to OData API Version
Control
Once the permissions are assigned, you'll find the OData API Version Control in your Company Settings.
The Role Based Permissions (RBP) APIs are used to enable integration with third party HRIS systems. Permission
to access any of the RBP API entities and custom functions requires the user to have permission to Manage Role-
Based Permissions.
Note
It is important to note that RBP is the only permission model that is available to new customers. New customers
cannot disable RBP to use legacy permissions. Existing customers, new companies of Professional Edition or
free trial are not affected.
A key part of role based permissions are dynamic groups. Dynamic Groups are used to grant roles to users that
are members of the dynamic group and used to define criteria about the users that are part of the group. Role
based permissions also has other mechanisms to grant roles to users, through the employee hierarchy and user to
user relationships like matrix manager or HR manager.
The include and exclude sections can have up to three People Pools. Each People Pool can contain one or more
sets of field criteria by selecting a field from the dropdown labeled “Pick a category…”. The fields here are called
‘filter fields’, and represent attributes about a User in the system. For example, a ‘filter field’ can be “Department”
and criteria can be selected such that the group can include Users whose “Department” matches “Department1”
and “Department2”.
7.1 RBPRole
This entity lists the permitted roles in an Roles Based Permissions (RPB) system. You can use this entity to query
the list of roles that exist in the system. The roles are only created through the user interface. You can use this API
to grant a role to a user.
Permissions
Table 84:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Table 85:
Operation Description
Navigation Properties
Table 86:
Navigation Property Related Entity Description
Use Cases
Table 87:
API Call Description
https:<hostname>/odata/v2/ Query permission roles whose access group includes the given
getUserRolesByUserId?userId=’cgrant1’ user.
This entity represents rules in the Role Based Permissions system. You can use this entity to query the list of rules
for a given role or to list rules across all roles. You can use this entity to insert a new rule or update an existing role.
Permissions
Table 88:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Operations Allowed
Table 89:
Operation Description
QUERY You can query on the RBPRole entity and expand on the RBPRole.rules property to see the
list of rules in a role.
You can query the RBPRule entity to see the list of rules for all of the roles or you can filter the
RBPRule.roles/roleId property to see which roles are limited to a specific RBPRole.
UPSERT/POST You can insert or update a new rule using the upsert operation. You will have to specify the
ruleId for the rule you want to update. If you do not specify a ruleId, a new rule will be cre
ated. Note that you must specify the parent RBPRole through the navigation property
RBPRule.roles/roleId.
DELETE You can delete the RBP rule that is related to a role using the delete operation.
Properties
Table 90:
Property Description
ruleId This is an internal key value is set by the system. It cannot be modified.
accessGroupLevel Allows you to include the managers of the access group, up to the levels specified.
Allowable values are 1,2,3 and 32767 (32767 means all level above)
targetGroupLevel Allows you to include the managers of the access group, up to the levels specified.
Allowable values are 1,2,3 and 32767 (32767 means all level above)
excludeSelf Setting this property to True prevents the user from including him or herself from
the target population of this rule.
includeSelf Setting this property to True allows the user to include him or herself as a part of
the target population of this rule.
myFilter This property allows you to set a rule where the target population criteria is a value
that matches the specified field value of the granted user. For example, you can set
the target user population to all users that match the granted user’s DEPARTMENT
field. Accepted values for myFilter are: DEPARTMENT, DIVISION, LOCATION,
and CUSTOM01-15.
relationRole The property allows you to specify the rule through a pre-defined employee rela
tionship. This property can take the following values:
● EM: Manager
● EH: HR Manager
● EX: Matrix Manager
● EA: Second Manager
● EC: Custom Manager
● GA_HOME: Global Assignment Home Manager
● GA_HOST: Global Assignment Host Manager
● GA_HOME_HR: Global Assignment Home HR Manager
● GA_HOST_HR: Global Assignment Host HR Manager
status The status is set to active by default if a value is not specified when a rule is cre
ated, or the status can be set to inactive. Inactive rules allow you to deactive a rule
without deleting it.
Navigation Properties
Table 91:
Navigation Property Related Entity Description
Use Cases
Table 92:
API Call Description
Upsert a new rule using POST. Sample Request body is shown below:
{
"__metadata": {
"uri": "RBPRule"
},
"accessGroupLevel": 0,
"targetGroupLevel": 0,
"myFilter": "",
"includeSelf": false,
"excludeSelf": false,
"relationRole": "null",
"status": "1",
"accessGroups": {
"__metadata": {
"uri": "DynamicGroup(2679)"
}
},
"targetGroups": {
"__metadata": {
"uri": "DynamicGroup(2679)"
}
},
"roles": {
"__metadata": {
"uri": "RBPRole(1822)"
}
}
}
7.3 DynamicGroup
This entity allows you to query and update information about the DynamicGroup.
Permissions
Table 93:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Table 94:
Operation Description
QUERY Queries directly on the DynamicGroup entity result in a simple list of DynamicGroup definitions in
the system, without having to retrieve the fully expanded group definition structure.
Navigation properties cannot be expanded. You must use the following custom functions to enable
an expanded structure:
● getExpandedDynamicGroupById
● getExpandedDynamicGroupByName
UPSERT You can replace a dynamic group by providing a fully expanded entity that includes a complete dy
namic group definition. The groupType property is mandatory in the POST body of an upsert.
Note
When updating user information via user import tool, Manage Employee application or using an OData API call,
dynamic groups are refreshed asynchronously, in a separate job. This allows the user import request to be
completed in a timely manner.
Properties
Table 95:
Property Description
groupId This is an internal key value that will be set by the system. It cannot be modified.
groupType The supported group types for RBP are "permission" and "ectworkflow (only query
function is supported for this group type). The groupType property is mandatory in
the POST body of an upsert.
activeMembershipCount This is a count of the total active users that match the group definition criteria.
lastModifiedDate This is the The timestamp of the last modification to the group definition.
staticGroup This indicates whether the permission group is Static or Dynamic. Allowed values:
true, false, null. (false and null have the same effect.)
Table 96:
Navigation Property Related Entity Description
Use Cases
Table 97:
API Call Description
Code Examples
Request Body:
{
"__metadata": {
"uri": "DynamicGroup"
},
"groupName": "Division-Industries20",
"groupType": "permission",
"dgIncludePools": {
"__metadata": {
"uri": "DGPeoplePool"
},
"filters": [
{
7.4 DGPeoplePool
Permissions
Table 98:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Table 99:
Operation Description
QUERY Query using the following custom functions and you can get DGPeoplePool in 'Custom Functions'
field:
● getExpandedDynamicGroupById
● getExpandedDynamicGroupByName
● getExpandedDynamicGroupByNameAndSubType
UPSERT(POST) Insert using an expanded insert or a replace operation on the DynamicGroup entity.
Properties
Table 100:
Property Description
peoplePoolId An internal key value that is set by the system. It cannot be modified.
Navigation Properties
Table 101:
Navigation Property Related Entity Description
7.5 DGFilter
Permissions
Table 102:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Table 103:
Operation Description
QUERY Query using the following custom functions and you can get DGFilter in 'Custom Functions' field":
● getExpandedDynamicGroupById
● getExpandedDynamicGroupByName
● getExpandedDynamicGroupByNameAndSubType
UPSERT(POST) Insert using an expanded insert or a replace operation on the DynamicGroup entity.
Properties
Table 104:
Property Description
filterId This is an internal key value that will be set by the system. It cannot be modified.
Navigation Properties
Table 105:
Navigation Property Related Entity Description
This entity represents an expression in the selection criteria for group members.
Permissions
Table 106:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Operations Allowed
Table 107:
Operation Description
QUERY Query using the following custom functions and you can get DGExpression in 'Custom Functions'
field:
● getExpandedDynamicGroupById
● getExpandedDynamicGroupByName
● getExpandedDynamicGroupByNameAndSubType
UPSERT(POST) Insert using an expanded insert or a replace operation on the DynamicGroup entity.
Properties
Table 108:
Property Description
expressionID This is an internal key value that is set by the system. It cannot be modified.
Navigation Properties
Table 109:
Navigation Property Related Entity Description
7.7 DGField
This entity lists fields that are enabled for use as filters when defining dynamic groups.
Permissions
Table 110:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Operations Allowed
Table 111:
Operation Description
Properties
Table 112:
Property Description
name This is an internal key value that is set by the system. It cannot be modified. These
values are typically property names in the User entity. They identify the user prop
erty that is used to filter against.
dataType This is the field data type for this field. The following values are allowed:
● String
● Date
● Number
● Boolean
label This is a localized label for this field, in the locale of the API user.
picklistId If not null, this DGField is picklisted with the id contained in this field. Then the val
ues in DGFieldValue object are ids from the PicklistOption entity.
Navigation Properties
Table 113:
Navigation Property Related Entity Description
Use Cases
Table 114:
API Call Description
7.8 DGFieldValue
Permissions
Table 115:
Permission System Required Setting
Role-based Admin Tools Set User Permissions Manage Role-Based Permission Access
Table 116:
Operation Description
QUERY Query using the following custom functions and you can get DGFieldValue in 'Custom Functions'
field:
● getExpandedDynamicGroupById
● getExpandedDynamicGroupByName
● getExpandedDynamicGroupByNameAndSubType
UPSERT(POST) Insert using an expanded insert or a replace operation on the DynamicGroup entity.
Properties
Table 117:
Property Description
fieldValue This the user supplied field value used in an expression within a filter
Navigation Properties
Table 118:
Navigation Property Related Entity Description
Permissions
Table 119:
Permission System Required Setting
Role-based Admin Tools Set User Permissions Manage Role-Based Permission Access
Operations Allowed
Table 120:
Operation Description
Query using custom functions Query using the following custom functions:
● getExpandedDynamicGroupById
● getExpandedDynamicGroupByName
● getExpandedDynamicGroupByNameAndSubType
Query for allowed operators Query for allowed operators for a field when defining an ex
pression. Query on the DGField enity and expand the
allowableOperators navigation property as follows: /
odata/v2/DGField?$expand=allowableOperators.
Properties
Table 121:
Property Description
token A token to represent the operator. Examples include “=”, “!=”, “<”, “>”, etc.
label A localized label for this operator, in the locale of the API user. Example includes
“equals”, “not equals”, etc.
Permissions
Table 122:
Permission System Required Setting
Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access
Operations Allowed
For query and upsert permissions, only those permissions that exist in the RBP Model and permission table are
supported.
Table 123:
Operation Description
Properties
Table 124:
Property Description
Code Examples
{
"d": {
"__metadata": {
"uri": "https://localhost:443/odata/v2/RBPRole(82L)",
"type": "SFOData.RBPRole"
},
"roleId": "82",
"roleDesc": null,
"lastModifiedBy": "admin",
"lastModifiedDate": "\/Date(1404299328000)\/",
"roleName": "Test Role insert",
"permissions": {
"results": [{
"__metadata": {
"uri": "https://localhost:443/odata/v2/RBPBasicPermission(60L)",
"type": "SFOData.RBPBasicPermission"
},
"permissionId": " 60",
"permissionType": “user_admin”,
"permissionStringValue": “change_info_user_admin”,
"permissionLongValue": -1,
}]
}
}
}
Request: Request:<hostname>/odata/v2/upsert
Post Body:
{
"__metadata": {
"uri": "RBPRole"
},
"roleName": "TestRole",
"roleDesc": "TestRole",
"permissions": {
"__metadata": {
"uri": "RBPBasicPermission(55)"
}
}
}
{
"__metadata": {
"uri": "RBPRole(1941L)"
},
"roleName": "jdm02",
"roleDesc": "",
"permissions": [
{
"__metadata": {
"uri": "RBPBasicPermission(82)"
}
},
{
"__metadata": {
"uri": "RBPBasicPermission(5432)"
}
The RBP APIs provide custom functions for querying and editing the expanded Dynamic Group entities in a single
nested data structure that follows the data model.
The RBP API does not support operations on child entities of the DynamicGroup parent entity, with the exception
of the DGField entity. Instead these entities are accessed in the context of the parent DynamicGroup entity using
custom operations described here.
getExpandedDynamic groupId (Long) DynamicGroup Returns the expanded DynamicGroup child entities for the
GroupById group identified by the groupId. Only groups defined by filters
with fields listed below are supported.
getExpandedDynamic groupName DynamicGroup Returns the expanded DynamicGroup child entities for the
GroupByName (String) group(s) identified by groupName. Note that groupName is
not guaranteed to be unique, so this method can return more
than one DynamicGroup parent object.
getUserRolesByUserId userId (String) Permission Returns permission role list for a specific user.
Roles
upsert Updated or Returns a new or updated Dynamic Group. This is a POST ac
added Dynami tion, with no parameters for this custom function. Data is
cGroup passed in the post body as JSON format, which is the group
definition. Sample group definition is show below:
getExpandedDynamic group permission Returns the expanded permission group child entities for the
¿G&t‰öà†4T¾Q|Øלþ0³Ò–tùGi¨Ð±%XˇQ Name(String) group or ect group identified by the groupName and groupType
Type or group workflow group
Type(String)
updateStaticGroup group Add or remove Creates, removes or updates a static permission group. The
behavior is similar to Delta Update of Import Static Permis
Name(String) a static group.
sion Group Function.
Returns the
action ( takes
number ve https://example.com/odata/v2/
values "add" or
added or re updateStaticGroup?g
"remove"
moved by using roupId=1234L&action=’add’&userIds=’cgrant
UserId list (use the function im 1’
first for dupli port.
cate and ignore https://example.com/odata/v2/
incorrect User updateStaticGroup?g
roupId=1234L&action=’remove’&userIds=’cgr
Id data)
ant1’
checkUserPermission accessUserId Boolean (True Return true/false whether access user have permission or
(String) or False) not.
https://example.com/odata/v2/
checkUserPermissio n?
accessUserId='userA'&permType='user_admin
'&permStringValu
e='reset_account_user_admin'&permLongValu
e=-
1L&targetUserId='TBH1'&includeTBHUser=tru
e
Note
Currently, this function import does not support MDF ob
ject permission
getDynamicGroupsByUser userId (String) A list of all per Returns a list of the permission groups that a specific user be
mission groups longs to.
groupSubType
that one user is
(String) Request Sample:
assigned to.
http://<Hostname>/odata/v2/
getDynamicGroupsByUser?
userId=’quickadd01’&groupSubType=’permiss
ion’
Response Sample:
Sample Code
{
"d": [
{
"groupId": "1476",
"groupName": "$$EVERYONE$$"
},
{
"groupId": "8748",
"groupName": "0707-quickadd01-
permission group"
}
]
}
Note
The custom function getDynamicGroupsByUser parame
ter ‘groupSubType=permission’ is necessary and it returns
users assigned in a permission group as defined in the Ad
min Center's Manage Permission Groups screen.
getUsersByDynamicGroup groupId (Long) A list of all users Returns a list of all the users that belong to a specific permis
in one permis sion group.
sion group.
Request Sample:
http://<Hostname>/odata/v2/
getUsersByDynamicGroup?groupId=7228l
Response Sample:
Sample Code
{
"d": [
{
"firstName": "cgrant_f",
"lastName": "cgrant_l",
"middleName": "cgrant_m",
"userId": "convert_cgrant1",
"userName": "cgrant"
}
]
}
Note
The custom function getUsersByDynamicGroup parame
ter ‘groupId’ only supports Permission Groups as defined
in the Admin Center's Manage Permission Groups screen.
getUserRolesReport userIds String Returns formatted XML content that contains all role and
group details for the requested user.
Request Sample:
http://<Hostname>/odata/v2/
getUserRolesReport?userIds=’rom1,admin’
Response Sample:
Sample Code
{
"d": {
"getUserRolesReport":
"<String value in XML format>"
}
}
Only groups defined by filters with fields listed below are supported. If your group is defined with any other field
filters like Employee Central related fields or team view fields, the OData custom function will raise an error:
username, department, division, location, custom01, custom02, custom03, custom04, ... custom15,
benchStrength, citizenship, city, country, dateOfBirth, dateOfPosition, ethnicity, futureLeader, gender, hireDate,
impactOfLoss, jobCode, keyPosition, married, minority, nationality, newToPosition, reasonForLeaving, riskOfLoss,
state, timeZone, title, zipCode, user
Group with only “username” as a filter field for values of “cgrant” and “athompson”
{
"__metadata": {"uri": "DynamicGroup()"},
"groupId":"123",
"groupName":"Users Carla Grant and Alexander Thompson",
"lastModifiedDate":"\/Date(978307200000)\/",
"lastModifiedBy":"cgrant1",
"activeMembershipCount”:"2",
"includePools":[
{
"__metadata":{"uri": "DGPeoplePool()"},
"filters":[
{
"__metadata":{"uri": "DGFilter()"},
"field": {
"__metadata": {"uri": "DGField()"},
"fieldName":"username",
"fieldDisplayLabel":"Username",
"fieldDataType":"String",
"allowedOperators":[
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"eq",
"fieldOperatorLabel":"="
},
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"gt",
"fieldOperatorLabel":">"
},
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"geq",
"fieldOperatorLabel":">="
},
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"lt",
"fieldOperatorLabel":"<"
},
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"leq",
"fieldOperatorLabel":"<="
},
{
"__metadata":{"uri": "DGFieldOperator"},
Group with “Department” as a filter field with values of “Finance” and “Sales”
{
"__metadata": {"uri": "DynamicGroup()"},
"groupId":"1234",
"groupName":"Finance and Sales Departments",
"lastModifiedDate":"\/Date(978307200000)\/",
"lastModifiedBy":"cgrant1",
"activeMembershipCount:"100",
"includePools":[
{
"__metadata":{"uri": "DGPeoplePool()"},
"filters":[
{
"__metadata":{"uri": "DGFilter()"},
"field": {
"__metadata": {"uri": "DGField()"},
"fieldName":"department",
"fieldDisplayLabel":"Department",
"fieldDataType":"String",
Talent form APIs provide the ability to query and update forms that are created for Performance Management v12
Acceleration (or) 360 reviews.
Normal users can only access the forms in their folders. The users, who have form OData Admin permission, can
access all the forms, even the ones that aren't in their folders. However, update operation is currently not
supported.
If RBP is on, you can also check a user's target population, and make sure he/she can only access the forms,
whose owners are in his/her target population.
Provisioning Settings
In order to use the API features, please ensure that the related module features are activated in Provisioning:
Table 126:
Acceleration
Rater
As long as you have the following Odata API access permissions, you can access your own folders and forms.
Table 127:
If you have the following form OData admin permissions, you can access other users' folders and forms. If RBP is
on, you can only access the folder and forms, whose owner is in your target population.
Table 128:
8.1.1 FormHeader
You can use this entity to list form meta information. For example, form data ID, form start date, end date, due
date. You can use this entity to query meta information for a list of forms.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 129:
Operation Description
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/FormHeader?
$format=json
Response
Sample Code
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormHeader(272L)",
"type": "SFOData.FormHeader"
},
"formDataId": "55348",
"formDataStatus": "1",
"formReviewDueDate": "/Date(1468886399000+0000)/",
"formTemplateId": "849",
"formTemplateType": "Review",
"formReviewStartDate": "/Date(1420070400000+0000)/",
"formOriginator": "TALRAJI",
"formSubjectId": "Testuser3908",
"creationDate": "/Date(1467617058000+0000)/",
"formReviewEndDate": "/Date(1451606399000+0000)/",
"rating": "0",
"isRated": false,
"formLastModifiedDate": "/Date(1467617058000+0000)/",
"formTitle": "1608 for User3908 Test",
"formContents": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/FormHeader(272L)/formContents"
}
},
"formSubject": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/FormHeader(272L)/formSubject"
}
},
"formRouteMap": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/FormHeader(272L)/formRouteMap"
8.1.2 FormFolder
You can use this entity to query the list of user folders. Normally a user can have an inbox, an enroute box, and
complete folders.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 131:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/FormFolder?
$format=json
Sample Code
{
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormFolder(477L)",
"type": "SFOData.FormFolder"
},
"folderId": "477",
"folderName": "\"EMENTESTING\"",
"userId": "hcheng",
"forms": {
"__deferred": {
"uri": "https://<hostname>//odata/v2/FormFolder(477L)/forms"
}
}
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormFolder(27L)",
"type": "SFOData.FormFolder"
},
"folderId": "27",
"folderName": "Completed",
"userId": "hcheng",
"forms": {
"__deferred": {
"uri": "https://<hostname>//odata/v2/FormFolder(27L)/forms"
}
}
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormFolder(26L)",
"type": "SFOData.FormFolder"
},
"folderId": "26",
"folderName": "En Route",
"userId": "hcheng",
"forms": {
"__deferred": {
"uri": "https://<hostname>//odata/v2/FormFolder(26L)/forms"
}
}
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormFolder(25L)",
"type": "SFOData.FormFolder"
},
"folderId": "25",
"folderName": "To-Do",
"userId": "hcheng",
"forms": {
"__deferred": {
"uri": "https://<hostname>//odata/v2/FormFolder(25L)/forms"
}
}
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormFolder(383L)",
"type": "SFOData.FormFolder"
8.1.3 FormContent
You can use this entity to query the basic information for form content, that is, form data id, form content id, last
modified data, status. This API is the major extension point for different form type, that is, PM v12 Acceleration,
MTR. It will have a navigation property for each form type. You can also access the details of form content for
specific form type through the navigation.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 133:
Operation Description
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/FormContent?
$format=json
URI http://<hostname>/odata/v2/ /
FormContent(formContentId=527L,formDataId=
170L)?$format=json
Response
Sample Code
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormContent(formContentId=1029L,formDataId=272L)",
"type": "SFOData.FormContent"
},
"formContentId": "1029",
"formDataId": "272",
"status": "-1",
"lastModifiedDate": "/Date(1242323761000+0000)/",
"folders": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormContent(formContentId=1029L,formDataId=272L)/folders"
}
},
"pmReviewContentDetail": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormContent(formContentId=1029L,formDataId=272L)/pmReviewContentDetail"
}
},
"formHeader": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormContent(formContentId=1029L,formDataId=272L)/formHeader"
}
}
8.1.4 FormPMReviewContentDetail
You can use this entity to get the basic information of different sections available for PM v12 Acceleration forms.
The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 135:
Operation Description
GET Query basic information of different sections available for PM v12 Acceleration forms. formDataId
and formContentId are required in query to identify different sections of a specific form.
UPSERT formDataId and formContentId are mandatory for upsert operation. Other than these values, you
need key property values and comment/rating key values of entities to be saved.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormPMReviewContentDetail
(formContentId=17617L,formDataId=7182L)?
$format=json
URI http://<hostname>/odata/v2/
FormPMReviewContentDetail
(formContentId=17617L,formDataId=7182L) ?
$format=json&$expand=
introductionSection,userInformationSection
, signatureSection
URI http://<hostname>/odata/v2/
FormPMReviewContentDetail
(formContentId=17617L,formDataId=7182L) ?
$format=json&$expand=
objectiveSections,competencySections,
summarySection
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"formContentId": "17617",
"formDataId": "7182",
"summarySection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)/summarySection"
}
},
"signatureSection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)/signatureSection"
}
},
"introductionSection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)/
introductionSection"
}
},
"competencySections": {
"__deferred": {
Operation UPSERT
URI http://<hostname>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17549L,formDataId=7182L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"competencySections": [
{
"__metadata": {
"uri":
"FormCompetencySection(formContentId=17549L,formDataId=7182L,sectionIndex=4)",
"type": "SFOData.FormCompetencySection"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17549L,formDataId=7182L,itemId=-1L,ratingType
='na',sectionIndex=4,userId=user1)",
Response
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17549,FormPMReviewContentDetail/formDataId=7182",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
You can use this entity to query basic information for a form template, that is, template Id, template name.
Currently, it supports PMV12 acceleration form and 360 review form.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 138:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/FormTemplate?
$format=json
URI http://<hostname>/odata/v2/FormTemplate
(116L)?$format=json
Sample Code
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormTemplate(116L)",
"type": "SFOData.FormTemplate"
},
"formTemplateId": "116",
"formTemplateType": "Review",
"formTemplateName": "AYT-6039",
"associatedForms": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/FormTemplate(116L)/
associatedForms"
}
}
}
8.1.6 FormObjective
You can use this entity to describe the basic information of objectives for PM v12 Acceleration forms. The data of
this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 140:
Operation Description
GET Query to identify a specific objective in a specific form. formDataId, formContentId, sectionIndex
and itemId are required to query a specific objective in a specific form.
UPSERT formDataId, formContentId, sectionIndex and itemid are mandatory for upsert operation. Other
than these values, you will need key property values and comment or rating key values of entities
to be saved.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDat
aId=7153L,itemId=4930L,sectionIndex=2)?
$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)",
"type": "SFOData.FormObjective"
},
"sectionIndex": 2,
"formContentId": "17476",
"itemId": "4930",
"formDataId": "7153",
"weight": null,
"done": "0.0",
"state": null,
"stateColor": null,
"category": "Customer",
"metric": "dsd",
"name": "d",
"weightKey": null,
"officialRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
officialRating"
}
},
"tasks": {
"__deferred": {
Operation UPSERT
URI http://<hostname>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17534L,formDataId=7176L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"objectiveSections": [
{
"__metadata": {
"uri":
"FormObjectiveSection(formContentId=17534L,formDataId=7176L,sectionIndex=2)",
"type": "SFOData.FormObjectiveSection"
},
"objectives": [
{
"__metadata": {
"uri":
"FormObjective(formContentId=17534L,formDataId=7176L,itemId=4872L,sectionIndex=2)"
,
"type": "SFOData.FormObjective"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17534L,formDataId=7176L,itemId=4872L,ratingTy
pe='na',sectionIndex=2,userId='manager1')",
"type": "SFOData.FormUserRatingComment"
},
"ratingKey": "wf_sect_2_o_0_cmt_manager1_",
"rating": "4.0",
"commentKey": "wf_sect_2_o_0_cmt_manager1_c",
"comment": "TGM goal Manager comment"
}
},
{
"__metadata": {
"uri":
"FormObjective(formContentId=17534L,formDataId=7176L,itemId=4928L,sectionIndex=2)"
,
"type": "SFOData.FormObjective"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17534L,formDataId=7176L,itemId=4928L,ratingTy
pe='na',sectionIndex=2,userId='manager1')",
Response
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17534,FormPMReviewContentDetail/formDataId=7176",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
8.1.7 FormObjectiveDetails
You can use this entity to describe the customized information of objective for PM v12 Acceleration forms. The
data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Table 143:
Operation Description
GET Query to identify a specific objective detailed info in a specific form, mainly used by $expand. for
mDataId, formContentId, sectionIndex, itemId and type are required to identify a specific objective
detailed info in a specific form.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/FormObjective
(formContentId=728L,formDataId=955L,
sectionIndex=2,itemId=502L)?$expand=
objectiveDetails,targets,mlts,tasks,milest
ones
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)",
"type": "SFOData.FormObjective"
},
"sectionIndex": 2,
"formContentId": "17476",
"itemId": "4930",
"formDataId": "7153",
"weight": null,
"done": "0.0",
You can use this entity to describe ratings and comments of objective/competency/custom/signature/summary
sections and items for PM v12 Acceleration forms. The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 145:
Operation Description
GET Query to identify a specific user’s rating or comment in a specific form, mainly used by $expand.
FormDataId, formContentId, sectionIndex, item id, user id, and rating type are required in query to
identify a specific user’s rating or comment.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormUserRatingComment
(formContentId=17617L,formDataId=7182L,ite
mId=7L,ratingType='na',sectionIndex=4,user
Id='user1')?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormUserRatingComment(formContentId=17617L,formDataId=7182L,itemId=7L,ratingType='
na',sectionIndex=4,userId='user1')",
"type": "SFOData.FormUserRatingComment"
},
"sectionIndex": 4,
"formContentId": "17617",
"userId": "user1",
"ratingType": "na",
"itemId": "7",
"formDataId": "7182",
"ratingPermission": "write",
"commentLabel": "Managers Comments",
"lastName": "LN",
"commentKey": "wf_sect_4__c7_cmt_user1_c",
"textRating": "Select a rating...",
"ratingKey": "wf_sect_4__c7_cmt_user1_",
"ratingLabel": "Self Rating",
"rating": "-1972.0",
"fullName": "User 1",
"commentPermission": "write",
"firstName": "FN",
"comment": ""
}
}
Operation UPSERT
Payload
Sample Code
{
"__metadata": {
"uri":
"FormPMReviewContentDetail(formContentId=31902L,formDataId=28701L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"objectiveSections": [
{
"__metadata": {
"uri":
"FormObjectiveSection(formContentId=31902L,formDataId=28701L,sectionIndex=3)",
"type": "SFOData.FormObjectiveSection"
},
"objectives": [
{
"__metadata": {
"uri":
"FormObjective(formContentId=31902L,formDataId=28701L,itemId=351L,sectionIndex=3)"
,
"type": "SFOData.FormObjective"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=31902L,formDataId=28701L,itemId=351L,ratingTy
pe='na',sectionIndex=3,userId='manager1')",
"type": "SFOData.FormUserRatingComment"
},
"ratingKey": "wf_sect_1_o_2_r",
"rating": "1.0",
"commentKey": "wf_sect_3_o_1_cmt_manager1_c",
"comment": "obj 601 added by api
wf_sect_3_o_1_cmt_manager1_c"
}
}
]
}
]
}
Response
Sample Code
8.1.9 FormCompetencySection
You can use this entity to get the basic information of competency sections for PM v12 Acceleration forms. The
data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 148:
Operation Description
GET Query to identify a specific competency section in a specific form. formDataId, formContentId and
sectionIndex are required to query a specific competency section.
UPSERT formDataId, formContentId and sectionIndex are mandatory for upsert operation. Other than
these values, you will need key property values and comment/rating key values of entities to be
saved.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormCompetencySection(formContentId=17476L
,formDataId=7153L,sectionIndex=3)?
$format=json
URI http://<hostname>/odata/v2/
FormCompetencySection
(formContentId=17534L,formDataId=7176L,sec
tionIndex=3) ?$format=json&
$expand=competencies,sectionConfiguration
URI http://<hostname>/odata/v2/
FormCompetencySection
(formContentId=17534L,formDataId=7176L,sec
tionIndex=3) ?$format=json&$expand=
selfRatingComment, othersRatingComment
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=17476L,formDataId=7153L,sectionIndex=3)",
"type": "SFOData.FormCompetencySection"
},
"sectionIndex": 3,
"formContentId": "17476",
"formDataId": "7153",
"sectionDescription": "",
"sectionWeightKey": "wf_sect_3_sectionWeight",
"sectionWeight": "30.0",
"sectionName": "Competencies",
"sectionConfiguration": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=17476L,formDataId=7153L,sectionIndex=3)/
sectionConfiguration"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=17476L,formDataId=7153L,sectionIndex=3)/
selfRatingComment"
}
Operation UPSERT
URI http://<hostname>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17549L,formDataId=7182L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"competencySections": [
{
"__metadata": {
"uri":
"FormCompetencySection(formContentId=17549L,formDataId=7182L,sectionIndex=4)",
"type": "SFOData.FormCompetencySection"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17549L,formDataId=7182L,itemId=-1L,ratingType
='na',sectionIndex=4,userId='manager1')",
"type": "SFOData.FormUserRatingComment"
},
"commentKey": "wf_sect_4_sc_manager1_c",
"comment": "Section comment for role specific competencies by
Manager"
}
Response
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17549,FormPMReviewContentDetail/formDataId=7182",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
8.1.10 FormCompetency
You can use this entity to get the basic information of competencies for PM v12 Acceleration forms. The data of
this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 151:
Operation Description
GET Query to identify a specific competency item in a specific form. formDataId, formContentId, sec
tionIndex and itemId are required to query a specific competency section.
UPSERT formDataId, formContentId, sectionIndex and itemId are mandatory for upsert operation. Other
than these values, you will need key property values and comment/rating key values of entities to
be saved.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/FormCompetency
(formContentId=17617L,formDataId=7182L,sec
tionIndex=4,itemId=7) ?$format=json
URI http://<hostname>/odata/v2/FormCompetency
(formContentId=17617L,formDataId=7182L,sec
tionIndex=4,itemId=7) ?$format=json&
$expand= itemConfiguration,customElement
URI http://<hostname>/odata/v2/FormCompetency
(formContentId=17617L,formDataId=7182L,sec
tionIndex=4,itemId=7) ?$format=json&
$expand= officialRating,selfRatingComment
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)",
"type": "SFOData.FormCompetency"
},
"sectionIndex": 4,
"formContentId": "17617",
Operation UPSERT
URI http://<hostname>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17534L,formDataId=7176L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"competencySections": [
{
"__metadata": {
"uri":
"FormCompetencySection(formContentId=17534L,formDataId=7176L,sectionIndex=3)",
"type": "SFOData.FormCompetencySection"
},
"competencies": [
{
"__metadata": {
"uri":
"FormCompetency(formContentId=17534L,formDataId=7176L,itemId=12L,sectionIndex=3)",
"type": "SFOData.FormCompetency"
},
"customElement": [
{
"__metadata": {
"uri":
"FormCustomElement(formContentId=17534L,formDataId=7176L,itemId=12L,sectionIndex=3
,elementKey='ele_0')",
"type": "SFOData.FormCustomElement"
},
"valueKey": "wf_sect_3__c12_ele_00",
"value": "T3"
},
{
"__metadata": {
"uri":
"FormCustomElement(formContentId=17534L,formDataId=7176L,itemId=12L,sectionIndex=3
,elementKey='ele_1')",
"type": "SFOData.FormCustomElement"
},
"valueKey": "wf_sect_3__c12_ele_11",
"value": "My text elm value"
}
]
},
{
Response
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17534,FormPMReviewContentDetail/formDataId=7176",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
8.1.11 FormCustomElement
You can use this entity to get the basic information of custom elements added to objectives or competencies for
PM v12 Acceleration forms. The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 154:
Operation Description
GET Query to identify a specific custom element item in a form. formDataId, formContentId, sectionIn
dex, itemId and elementKey are required to query a specific custom element item in a form.
UPSERT formDataId, formContentId, sectionIndex, itemid and elementKey are mandatory for upsert opera
tion. Other than these values, you will need key property values and key values of entities to be
saved.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormCustomElement(formContentId=17628L,for
mDataId=7176L,itemId=14L,sectionIndex=3,el
ementKey='ele_0')?$format=json&$expand=
elementListValues
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormCustomElement(elementKey='ele_0',formContentId=17628L,formDataId=7176L,itemId=
14L,sectionIndex=3)",
"type": "SFOData.FormCustomElement"
},
"sectionIndex": 3,
"elementKey": "ele_0",
"formContentId": "17628",
"itemId": "14",
"formDataId": "7176",
"valueKey": "wf_sect_3__c14_ele_00",
"name": "CE3 List",
"minimumValue": "0.0",
"value": "T3",
"writingAssistant": true,
"type": "LIST",
"required": false,
"textMaximumLength": -1,
"checked": false,
"editable": true,
"maximumValue": "0.0",
"elementListValues": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCustomElement(elementKey='ele_0',formContentId=17628L,formDataId=7176L,itemId=
14L,sectionIndex=3)/elementListValues"
}
}
}
}
Operation UPSERT
URI http://<hostname>/odata/v2/upsert?
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17628L,formDataId=7176L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"competencySections": [
{
"__metadata": {
"uri":
"FormCompetencySection(formContentId=17628L,formDataId=7176L,sectionIndex=3)",
"type": "SFOData.FormCompetencySection"
},
"competencies": [
{
"__metadata": {
"uri":
"FormCompetency(formContentId=17628L,formDataId=7176L,itemId=14L,sectionIndex=3)",
"type": "SFOData.FormCompetency"
},
"customElement": [
{
"__metadata": {
"uri":
"FormCustomElement(formContentId=17628L,formDataId=7176L,itemId=14L,sectionIndex=3
,elementKey='ele_0')",
"type": "SFOData.FormCustomElement"
},
"valueKey": "wf_sect_3__c12_ele_00",
"value": "T3"
},
{
"__metadata": {
"uri":
"FormCustomElement(formContentId=17628L,formDataId=7176L,itemId=14L,sectionIndex=3
,elementKey='ele_1')",
"type": "SFOData.FormCustomElement"
},
"valueKey": "wf_sect_3__c12_ele_11",
"value": "My text elm value"
}
]
}
]
}
]
Response
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17628,FormPMReviewContentDetail/formDataId=7176",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
8.1.12 FormCustomElementListValue
You can use this entity to get the basic information of custom element list values added to a custom element
linked to any competency or objective. The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 157:
Operation Description
GET Query to identify a specific custom element list item in a form. formDataId, formContentId, sectio
nIndex, itemId and elementKey are required to query a specific custom element list item in a form.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/
FormCustomElementListValue(elementKey='ele
_0',formContentId=17628L,formDataId=7176L,
itemId=14L,name='T2',sectionIndex=3) ?
$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormCustomElementListValue(elementKey='ele_0',formContentId=17628L,formDataId=7176
L,itemId=14L,name='',sectionIndex=3)",
"type": "SFOData.FormCustomElementListValue"
},
"sectionIndex": 3,
"elementKey": "ele_0",
"formContentId": "17628",
"name": "",
"itemId": "14",
"formDataId": "7176",
"selected": false,
"value": "T1",
"listIndex": -1
}
}
You can use this entity to get the configuration details associated with objective/competency/custom/summary
sections of PM v12 Acceleration forms. The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 159:
Operation Description
GET Query to identify a section configuration in a specific form. formDataId, formContentId, sectionIn
dex and itemId are required to query a section configuration in a specific form.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/
FormSectionConfiguration(formContentId=176
17L,formDataId=7182L,sectionIndex=4)
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormSectionConfiguration(formContentId=17617L,formDataId=7182L,sectionIndex=4)",
"type": "SFOData.FormSectionConfiguration"
},
"sectionIndex": 4,
"formContentId": "17617",
"formDataId": "7182",
"sectionWeightPermission": "write",
"sectionCommentRequired": false,
"hasItemComment": true,
"addItem": false,
"ratingOption": 2,
"weightTotal": "-1.0",
"enforceRTECharacterLimit": false,
"enforcePlainTextCharacterLimit": false,
"rateByBehavior": false,
"hasSectionComment": true,
"behaviorModeOption": 0,
"formRatingScale": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSectionConfiguration(formContentId=17617L,formDataId=7182L,sectionIndex=4)/
formRatingScale "
}
},
" formBehaviorRatingScale": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSectionConfiguration(formContentId=17617L,formDataId=7182L,sectionIndex=4)/
formBehaviorRatingScale"
}
}
}
}
8.1.14 FormItemConfiguration
You can use this entity to get the configuration details associated with objective or competency items of PM v12
Acceleration forms. The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Table 161:
Operation Description
GET Query to identify item configuration in a specific form. formDataId, formContentId, sectionIndex
and itemId are required to query item configuration in a specific form.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormItemConfiguration(formContentId=17546L
,formDataId=7181L,sectionIndex=5,itemId=43
)
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormItemConfiguration(formContentId=17546L,formDataId=7181L,itemId=43L,sectionInde
x=5)",
"type": "SFOData.FormItemConfiguration"
},
"sectionIndex": 5,
"formContentId": "17546",
"itemId": "43",
"formDataId": "7181",
"suppressItemComments": false,
"suppressItemCommentsLabel": false,
"itemWeightRequired": false,
"itemRatingRequired": false,
8.1.15 FormIntroductionSection
You can use this entity to describe the basic information of introduction section for PM v12 Acceleration forms.
The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 163:
Operation Description
GET Query the basic information of introduction section in a specific form. formDataId and formCon
tentId are required to query introduction section in a specific form.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormIntroductionSection(formContentId=17639L,formDataId=7221L)",
"type": "SFOData.FormIntroductionSection"
},
"formContentId": "17639",
"formDataId": "7221",
"sectionDescription": "This is form introduction details.",
"sectionIndex": 0,
"sectionName": "Introduction"
}
}
8.1.16 FormUserInformationSection
You can use this entity to query user information section details about the subject user in a form.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 165:
Operation Description
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases:
Operation GET
URI http://<hostname>/odata/v2/
FormUserInformationSection?$format=json
URI http://<hostname>/odata/v2/
FormUserInformationSection (formContentId=
17476L,formDataId=7153L)?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormUserInformationSection(formContentId=17476L,formDataId=7153L)",
"type": "SFOData.FormUserInformationSection"
},
"formContentId": "17476",
"formDataId": "7153",
"section Description ": "",
"sectionIndex": 0,
"sectionName": "Employee Information",
"userInformationElements": {
"__deferred": {
"uri": "https:// <hostname>/odata/v2/
FormUserInformationSection(formContentId=17476L,formDataId=7153L)/
userInformationElements"
}
}
}
}
You can use this entity to get the basic information of summary section for PM v12 Acceleration forms. The data of
this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 167:
Operation Description
GET Query to identify summary section in a specific form. formDataId and formContentId are required
to query the basic information of summary section.
UPSERT formDataId, formContentId and sectionIndex are mandatory for upsert operation. Other than
these values, you will need key property values and comment/rating key values of entities to be
saved.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormSummarySection
(formContentId=17628L,formDataId=7176L)?
$format=json
URI http://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,fo
rmDataId=7176L)?$format=json&$expand=
summaryListing/items
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)",
"type": "SFOData.FormSummarySection"
},
"formContentId": "17628",
"formDataId": "7176",
"sectionDescription": "",
"sectionIndex": 4,
"sectionName": "Performance Summary",
"overallAdjustedRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)/overallAdjustedRating"
}
},
"sectionConfiguration": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)/sectionConfiguration"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)/selfRatingComment"
}
},
"calculatedFormRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)/calculatedFormRating"
}
},
"overallFormRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)/overallFormRating"
}
Use Cases: Upsert self rating and overall rating values of form
Operation UPSERT
URI http://<hostname>/odata/v2/upsert?
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17628L,formDataId=7176L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"summarySection": {
"__metadata": {
"uri": "FormSummarySection(formContentId=17628L,formDataId=7176L)",
"type": "SFOData.FormSummarySection"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17628L,formDataId=7176L,itemId=0L,ratingType=
'na',sectionIndex=4,userId='user1')",
"type": "SFOData.FormUserRatingComment"
},
"commentKey": "wf_sect_4_sc_user1_c",
"comment": "summary section comment - added"
},
"overallFormRating": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17628L,formDataId=7176L,itemId=0L,ratingType=
'overall',sectionIndex=4,userId='user1')",
"type": "SFOData.FormUserRatingComment"
},
"ratingKey": "wf_sect_4_rating",
"rating": "4.0"
}
}
Response
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17628,FormPMReviewContentDetail/formDataId=7176",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
8.1.18 FormSignatureSection
You can use this entity to get the basic information of signature section for PM v12 Acceleration forms. The data of
this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 170:
Operation Description
GET Query to identify signature section in a specific form. formDataId, formContentId and sectionIndex
are required to query the basic information of signature section.
UPSERT formDataId, formContentId, sectionIndex and stepid are mandatory for upsert operation. Other
than these values, you will need key property values and comment/rating key values of entities to
be saved.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormSignatureSection(formContentId=17629L,
formDataId=7181L,sectionIndex=9)?
$format=json
URI http://<hostname>/odata/v2/
FormSignatureSection(formContentId=17629L,
formDataId=7181L,sectionIndex=9)?
$format=json&$expand= signatures
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormSignatureSection(formContentId=17629L,formDataId=7181L,sectionIndex=9)",
"type": "SFOData.FormSignatureSection"
},
"sectionIndex": 9,
"formContentId": "17629",
"formDataId": "7181",
"sectionDescription": "Employee signature does not imply agreement or
disagreement, only the acknowledgement that the discussion occurred.",
"sectionName": "Signatures",
"signatures": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSignatureSection(formContentId=17629L,formDataId=7181L,sectionIndex=9)/
signatures"
}
}
}
}
Operation UPSERT
URI http://<hostname>/odata/v2/upsert?
Payload
Sample Code
{
"__metadata": {
"uri": "FormPMReviewContentDetail(formContentId=17629L,formDataId=7181L)",
"type": "SFOData.FormPMReviewContentDetail"
},
"signatureSection": {
"__metadata": {
"uri":
"FormSignatureSection(formContentId=17629L,formDataId=7181L,sectionIndex=9)",
"type": "SFOData.FormSignatureSection"
},
"signatures": [
{
"__metadata": {
"uri":
"FormSignature(formContentId=17629L,formDataId=7181L,sectionIndex=9,stepId='154992
821696258')",
"type": "SFOData.FormSignature"
},
"comment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17629L,formDataId=7181L,itemId=0L,ratingType=
'na',sectionIndex=9,userId=user1)",
"type": "SFOData.FormUserRatingComment"
},
"commentKey": "wf_sect_9_sc_user1_c",
"comment": "Signature comment by user1-updated"
}
}
]
}
}
Sample Code
{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17629,FormPMReviewContentDetail/formDataId=7181",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
8.1.19 FormSignature
You can use this entity to get the basic information of signature entity for PM v12 Acceleration forms. The data of
this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 173:
Operation Description
GET Query to identify signature comments of each signature entity present in a specific form. formDa
taId, formContentId, sectionIndex and stepId are required to query the basic information of form
signature.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormSignature(formContentId=17629L,formDat
aId=7181L,sectionIndex=9,stepId='154992821
696258')?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormSignature(formContentId=17629L,formDataId=7181L,sectionIndex=9,stepId='1549928
21696258')",
"type": "SFOData.FormSignature"
},
"sectionIndex": 9,
"formContentId": "17629",
"stepId": "154992821696258",
"formDataId": "7181",
"signedBy": "User1",
"status": "current",
"signedDate": null,
"roleType": "Employee:",
"actionInformation": null,
"stepOrder": 0,
"comment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSignature(formContentId=17629L,formDataId=7181L,sectionIndex=9,stepId='1549928
21696258')/comment"
}
}
}
}
You can use this entity to get the basic information for a form rating scales associated with the competencies,
objectives or summary section.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 175:
Operation Description
GET Query to get rating scale in a form section. formDataId, formContentId and sectionIndex are re
quired to get rating scale in a form section.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/
FormRatingScale(formContentId=17628L,formD
ataId=7176L, sectionIndex=2)?$format=json
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormRatingScale(formContentId=17628L,formDataId=7176L,sectionIndex=2)",
"type": "SFOData.FormRatingScale"
},
"sectionIndex": 2,
"formContentId": "17628",
"formDataId": "7176",
"showValue": true,
"scaleId": "2005b",
"scaleType": "STAR",
"name": "2005b",
"reverseScale": false,
"ratingScaleList": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormRatingScale(formContentId=17628L,formDataId=7176L,sectionIndex=2)/
ratingScaleList"
}
}
}
}
8.1.21 FormRatingScaleValue
You can use this entity to get the basic information for a form rating scale value associated with the competencies,
objectives or summary section.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 177:
Operation Description
GET Query to identify different sections of a specific form. formDataId, formContentId, sectionIndex,
scaleId and value are required to identify different sections of a specific form.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/
FormRatingScaleValue(formContentId=17628L,
formDataId=7176L,scaleId='2005b',sectionIn
dex=2,value='2.0')?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormRatingScaleValue(formContentId=17628L,formDataId=7176L,scaleId='2005b',section
Index=2,value='2.0')",
"type": "SFOData.FormRatingScaleValue"
},
"sectionIndex": 2,
"scaleId": "2005b",
"formContentId": "17628",
"value": "2.0",
"formDataId": "7176",
"description": "Needs Development",
"longDescription": null
}
}
You can use this entity to get the basic information of competency behavior for PM v12 Acceleration forms. The
data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 179:
Operation Description
GET Query to identify a specific competency behavior item in a specific form. formDataId, formConten
tId, sectionIndex, itemId and behaviorId are required to query a specific competency behavior
item.
UPSERT formDataId, formContentId,sectionIndex, itemid and behaviorId are mandatory for upsert opera
tion. Other than these values, you will need key property values and comment/rating key values of
entities to be saved.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormCompetencyBehavior
(formContentId=17536L,formDataId=
7178L,sectionIndex=4,itemId=7,behaviorId=4
6051) ?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetencyBehavior(behaviorId=46051L,formContentId=17536L,formDataId=7178L,ite
mId=7L,sectionIndex=4)",
"type": "SFOData.FormCompetencyBehavior"
},
"sectionIndex": 4,
"formContentId": "17536",
"behaviorId": "46051",
"itemId": "7",
"formDataId": "7178",
"category": null,
"weight": null,
"description": "",
"behaviorName": "Maintains customer commitments",
"weightKey": null,
"expectedRating": null,
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetencyBehavior(behaviorId=46051L,formContentId=17536L,formDataId=7178L,ite
mId=7L,sectionIndex=4)/selfRatingComment"
}
},
"officialRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetencyBehavior(behaviorId=46051L,formContentId=17536L,formDataId=7178L,ite
mId=7L,sectionIndex=4)/officialRating"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetencyBehavior(behaviorId=46051L,formContentId=17536L,formDataId=7178L,ite
mId=7L,sectionIndex=4)/othersRatingComment"
}
}
}
}
Operation UPSERT
URI http://<hostname>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetency(formContentId=17536L,formDataId=7178L,itemId=7L,sectionIndex=4)",
"type": "SFOData.FormCompetency"
},
"competencyBehaviors": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetencyBehavior(behaviorId=46051L,formContentId=17536L,formDataId=7178L,ite
mId=7L,sectionIndex=4)",
"type": "SFOData.FormCompetencyBehavior"
},
"selfRatingComment": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormBehaviorRatingComment(behaviorId=46051L,formContentId=17536L,formDataId=7178L,
itemId=7L,ratingType='na',sectionIndex=4,userId='user1')",
"type": "SFOData.FormBehaviorRatingComment"
},
"commentKey": "wf_sect_4__c7_46051_br",
"comment": "Five Star - Updated from API "
}
}
]
}
}
Response
Sample Code
{
"d": [
{
8.1.23 FormBehaviorRatingComment
You can use this entity to describe ratings and comments of competency behavior for PM v12 Acceleration forms.
The data of this entity comes from form content XML.
Permissions
For more information on permissions, refer Performance Management Form Entities [page 111].
Operations Allowed
Table 182:
Operation Description
GET Query to identify a specific user’s rating/comment in a specific form, mainly used by $expand. for
mDataId, formContentId, sectionIndex, item id, user id, rating type and behaviorId are required to
query a specific user’s rating/comment.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormBehaviorRatingComment
(formContentId=17536L,formDataId=7178L,ite
mId=7L,ratingType='na',sectionIndex=4,user
Id='user1')?$format=json
URI http://<hostname>/odata/v2/FormObjective
(formContentId=17536L,formDataId=7178L,
sectionIndex=4,itemId=7L?
$expand=officialRating
URI http://<hostname>/odata/v2/
FormObjectiveSection
(formContentId=17536L,formDataId=7178L,sec
tionIndex=4) ?$expand=othersRatingComment
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormBehaviorRatingComment(behaviorId=46051L,formContentId=17536L,formDataId=7178L,
itemId=7L,ratingType='na',sectionIndex=4,userId='user1')",
"type": "SFOData.FormBehaviorRatingComment"
},
"sectionIndex": 4,
"formContentId": "17536",
"userId": "user1",
"ratingType": "na",
"behaviorId": "46051",
"itemId": "7",
"formDataId": "7178",
"ratingPermission": "write",
"commentLabel": "Subjects Comments",
"lastName": "User LN",
"commentKey": "wf_sect_4__c46051_cmt_user1_c",
"textRating": "4.0 - 4",
"ratingKey": "wf_sect_4__c46051_cmt_user1_",
"ratingLabel": "Rating",
"rating": "4.0",
"fullName": "User Name",
"commentPermission": "write",
"firstName": "User FN",
"comment": "Five Star - Updated from API Testing"
}
Operation UPSERT
URI http://<hostname>/odata/v2/upsert
Payload
Sample Code
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetency(formContentId=17536L,formDataId=7178L,itemId=7L,sectionIndex=4)",
"type": "SFOData.FormCompetency"
},
"competencyBehaviors": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormCompetencyBehavior(behaviorId=46051L,formContentId=17536L,formDataId=7178L,ite
mId=7L,sectionIndex=4)",
"type": "SFOData.FormCompetencyBehavior"
},
"selfRatingComment": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
FormBehaviorRatingComment(behaviorId=46051L,formContentId=17536L,formDataId=7178L,
itemId=7L,ratingType='na',sectionIndex=4,userId='user1')",
"type": "SFOData.FormBehaviorRatingComment"
},
"commentKey": "wf_sect_4__c7_46051_br",
"comment": "Five Star - Updated from API "
}
}
]
}
}
Sample Code
{
"d": [
{
"key": " FormCompetency /formContentId=17536, FormCompetency /
formDataId=7178, FormCompetency /sectionIndex=4, FormCompetency/ itemId=7",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}
8.1.24 TalentRatings
You can use this entiy to query feedback details for a given form with specific criteria.
This entity returns formDataID, feedback type, rating value, rating label etc. User can access this entity directly or
as navigation property in other entities. Currently it supports PM module type only. Later it shall be extended to
other module types.
Permissions
As long as the user has OData API access permission as below, he/she can access talent ratings entity.
Once the user has OData API access permission, he/she can view the entity based on the following 2 permissions.
● If user wants to access this entity directly, then user should have “Admin Access to Talent Rating OData API”
permission.
● If user wants to expand the Ratings entity as a navigation property from a parent entity, then user should also
have permission to the parent entity.
Operations Allowed
Table 187:
Operation Description
GET Query feedback details for a given form with specific criteria.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Case 1
URI http://<Hostname>/odata/v2/TalentRatings?
$format=json&$filter=formDataId eq 1459L&
$orderBy=formContentId desc
Sample Code
{
{
results" : [
{
"__metadata" : {
"uri" : "https://<hostname>/odata/v2/TalentRatings(34913L)", "type" :
"SFOData.TalentRatings"
}, "feedbackId" : "34913", "feedbackModule" : 1, "feedbackSource" : 1,
"feedbackRatingLabel" : "Satisfactory with Commendation", "formContentId" :
"3490", "feedbackScaleMinimum" : "1", "feedbackType" : 2, "employeeId" : "user1",
"feedbackScaleMaximum" : "5", "feedbackRating" : "4", "feedbackName" : "Increase
Referencability of Customer in my Territory", "formDataId" : "1459",
"feedbackWeight" : "20"
}, {
"__metadata" : {
"uri" : "https://<hostname>/odata/v2/TalentRatings(34912L)", "type" :
"SFOData.TalentRatings"
}, "feedbackId" : "34912", "feedbackModule" : 1, "feedbackSource" : 1,
"feedbackRatingLabel" : null, "formContentId" : "3490", "feedbackScaleMinimum" :
"3", "feedbackType" : 11, "employeeId" : "user11", "feedbackScaleMaximum" :
"-1972", "feedbackRating" : "-1972", "feedbackName" : "Individual Goals",
"formDataId" : "1459", "feedbackWeight" : "50"
}, {
"__metadata" : {
"uri" : "https://<hostname>/odata/v2/TalentRatings(34911L)", "type" :
"SFOData.TalentRatings"
}, "feedbackId" : "34911", "feedbackModule" : 1, "feedbackSource" : 1,
"feedbackRatingLabel" : "Meets Expectations", "formContentId" : "3490",
"feedbackScaleMinimum" : "1", "feedbackType" : 1, "employeeId" : "user1",
"feedbackScaleMaximum" : "5", "feedbackRating" : "3", "feedbackName" : "Listening
Skills", "formDataId" : "1459", "feedbackWeight" : "15"
}, {
"__metadata" : {
"uri" : "https://<hostname>/odata/v2/TalentRatings(34910L)", "type" :
"SFOData.TalentRatings"
}, "feedbackId" : "34910", "feedbackModule" : 1, "feedbackSource" : 1,
"feedbackRatingLabel" : "Satisfactory with Commendation", "formContentId" :
"3490", "feedbackScaleMinimum" : "1", "feedbackType" : 1, "employeeId" : "user1",
"feedbackScaleMaximum" : "5", "feedbackRating" : "4", "feedbackName" :
"Leadership", "formDataId" : "1459", "feedbackWeight" : "15"
},
, {
"__metadata" : {
"uri" : "https://<hostname>/odata/v2/TalentRatings(34929L)", "type" :
"SFOData.TalentRatings"
}, "feedbackId" : "34929", "feedbackModule" : 1, "feedbackSource" : 1,
"feedbackRatingLabel" : "Meets Expectations", "formContentId" : "3490",
"feedbackScaleMinimum" : "1", "feedbackType" : 8, "employeeId" : "user1",
"feedbackScaleMaximum" : "5", "feedbackRating" : "3", "feedbackName" : null,
"formDataId" : "1459", "feedbackWeight" : "-1972"
}
]
}
}
URI http://<Hostname>/odata/v2/TalentRatings?
$format=json&$filter=formDataId eq 7831L&
$orderBy=formContentId desc&
$select=employeeId,formDataId,
feedbackRatingLabel,feedbackType,feedbackR
ating,feedbackName,feedbackWeight
Response
Sample Code
{
{
"results" : [
{
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441439L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : null, "feedbackType" : 1, "employeeId" : "user11",
"feedbackRating" : "-1972", "feedbackName" : "Leadership", "formDataId" : "6841",
"feedbackWeight" : "15"
}, {
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441438L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : null, "feedbackType" : 1, "employeeId" : "user11",
"feedbackRating" : "-1972", "feedbackName" : "Integrity/Ethics", "formDataId" :
"6841", "feedbackWeight" : "33"
}, {
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441437L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : "Select one...", "feedbackType" : 10, "employeeId" :
"user1", "feedbackRating" : "-1972", "feedbackName" : "Competency Feedback",
"formDataId" : "6841", "feedbackWeight" : "-1972"
}, {
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441436L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : null, "feedbackType" : 30, "employeeId" : "user1",
"feedbackRating" : "-1972", "feedbackName" : null, "formDataId" : "6841",
"feedbackWeight" : "-1972"
}, {
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441435L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : null, "feedbackType" : 21, "employeeId" : "user1",
"feedbackRating" : "-1972", "feedbackName" : null, "formDataId" : "6841",
"feedbackWeight" : "-1972"
}, {
Related Information
8.1.25.1 createPerformanceReviewForm
You can use this function import to launch Performance Management Forms automatically based on different
work events.
This API is implemented to provide customers with the flexibility to launch forms within the processes.
Note
● Only Performance Management V12 Acceleration form type is supported.
● Only Launch Now option is supported to launch forms immediately.
Note
The review start date, end date, and due dates should be configured in the template settings tool for the
selected template, prior to launching forms.
Note
Launching mass forms are not supported.
Note
If the user has, create permission but selected template ID, which is not in his permitted list, forms will not be
launched.
Permissions
Only users who have permission to create forms will be allowed to launch forms using this API.
Caution
If the user has “Permission to Create Forms”, but selected template ID, which is not in his permitted list, then
form will not be created. If form is not created, then API will return formDataId value as -1. Permission name is
same for both RBP and Non-RBP instances.
Parameters
Table 190:
Parameter Description Type
Customers should be able to launch forms automatically for the following use case:
Example: odata/v2/createPerformanceReviewForm?formSubjectId=’wsown1’&
formTemplateId=391L&sendEmail=true&enRouteCopy=false
URI Description
http://<Hostname>/odata/v2/ Launches form for user ’wsown1’ using form template ID 391,
createPerformanceReviewForm? an email is sent to the user ’wsown1’ when the form is
formSubjectId=’wsown1’&
launched. Note that an en route copy will not be created.
formTemplateId=391L&sendEmail=true&enRoute
Copy=false
Sample Response:
Successful Response:
<d:CreatePerformanceReviewFormResponse
m:type="SFOData.CreatePerformanceReviewFormResponse" xmlns:d="http://
schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://
schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<d:formDataId m:type="Edm.Int64">7894</d:formDataId>
<d:status>SUCCESS</d:status>
<d:statusCode m:type="Edm.Int64">200</d:statusCode>
</d:CreatePerformanceReviewFormResponse>
Failure Response:
<d:CreatePerformanceReviewFormResponse
m:type="SFOData.CreatePerformanceReviewFormResponse">
<d:formDataId m:type="Edm.Int64">-1</d:formDataId>
<d:status>FAILURE</d:status>
<d:statusCode m:type="Edm.Int64">500</d:statusCode>
</d:CreatePerformanceReviewFormResponse>
Error Codes
Table 192:
Error Code Server Response/ Description
200 SC_OK/ Error code (200) indicates that the request suc
ceeded and a new Performance Review got created.
Talent form workflow APIs provide the ability to query and update the form workflow. Currently they support only
PM v12 Acceleration forms.
● Query form route map details. You can query route map, route step and route step details.
● Move the form to next step (C Step, I Step and Single Step send)
● Sign form (Single Step Only)
● Reject form (Single Step Only)
Provisioning Settings
In order to use the API features, please ensure that the related module features are enabled in Provisioning:
Acceleration
Permissions
8.2.1 FormRouteMap
You can use this entity to query Route Map of form content based on specific criteria. This entity is used when you
want to see route map of your form and your manager wants to view his direct reports Route Map.
Permissions
Operations Allowed
Table 195:
Operation Description
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/FormRouteMap
(formDataId=7219L)?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormRouteMap(7219L)",
"type": "SFOData.FormRouteMap"
},
"formDataId": "7219",
"routeId": -1,
"routeName": "",
"routeStep": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/FormRouteMap(7219L)/routeStep"
}
}
}
}
You can use this entity to query form Route Step and its sub step details.
Permissions
Operations Allowed
Table 197:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<hostname>/odata/v2/
FormRouteStep(formDataId=7219L,stepOrder=0
)?$format=json
Response
Sample Code
8.2.3 FormRouteSubStep
You can use this entity to query form sub step details of Route Step.
Permissions
Operations Allowed
Table 199:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<hostname>/odata/v2/
FormRouteSubStep(formDataId=7219L,stepOrde
r=0,subStepOrder=2)?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormRouteSubStep(formDataId=7219L,stepOrder=0,subStepOrder=2)",
"type": "SFOData.FormRouteSubStep"
},
"subStepOrder": 2,
"formDataId": "7219",
"stepOrder": 0,
"entryUser": false,
"currentStep": false,
"userRole": "HR Rep.",
"userFullName": "Lorna Okamoto",
"exitUser": true
}
}
Function imports modify an entity. You use them as you would use any OData API.
All the above mentioned APIs return complex type object CORouteFormStatusBean.
8.2.4.1 signForm
You can use this entity to sign and send the form to next step in route map.
Operations Allowed
Table 202:
Operation Description
Parameters
Table 203:
Parameter Description Type
Use Case
Table 204:
API Call Description
<d:CORouteFormStatusBean xmlns:d="http://schemas.microsoft.com/ado/2007/08/
dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/
metadata" m:type="SFOData.CORouteFormStatusBean">
<d:status>Success</d:status>
</d:CORouteFormStatusBean>
Error Codes
Table 205:
Error Code Description
TWF_INCORRECT_PARAMETER_ERROR You may get this error message due to following reasons:
Related Information
You can use this entity to send the form to next step in route map.
Operations Allowed
Table 206:
Operation Description
Parameters
Table 207:
Parameter Description Type
Use Case
Table 208:
API Call Description
https://<hostname>/odata/v2/ sendToNextStep? formDa Move the form to next step for document id 1234L
taId =1234L &comment='my comment'
https://<hostname>/odata/v2/ sendToNextStep? formDa Send form to inner current I step with form data id as 1234L
taId =1234L & innerStepUserId =’user1' and inner step user id as user1.
https://<hostname>/odata/v2/ sendToNextStep? formDa Send form to next step and specify which user can first receive
taId =1234L & nextIStepEntryUser =’user2' it if next step is I step with form data id as 1234L and next I
Step entry user as user2.
<d:CORouteFormStatusBean xmlns:d="http://schemas.microsoft.com/ado/2007/08/
dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/
metadata" m:type="SFOData.CORouteFormStatusBean">
<d:status>Success</d:status>
</d:CORouteFormStatusBean>
Error Codes
Table 209:
Error Code Description
TWF_MISS_REQUIRE_PARAMETER_ERROR If the current step is I step and innerStepUserId has not been
given.
TWF_INCORRECT_PARAMETER_ERROR You may get this error message due to following reasons:
Related Information
Operations Allowed
Table 210:
Operation Description
Parameters
Table 211:
Parameter Description Type
Use Case
Table 212:
API Call Description
Code Examples
<d:CORouteFormStatusBean xmlns:d="http://schemas.microsoft.com/ado/2007/08/
dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/
metadata" m:type="SFOData.CORouteFormStatusBean">
<d:status>Success</d:status>
</d:CORouteFormStatusBean>
Table 213:
Error Code Description
TWF_INCORRECT_PARAMETER_ERROR You may get this error message due to following reasons:
Related Information
360 Form OData APIs enables you to access form contents of a 360 form.
Permissions
Note
Selecting the Enable Graphic Report(360) option also enables you to choose the named view or anonymous
view for the send copy employees.
8.3.1 Form360ReviewContentDetail
You can use this entity to query basic information about different sections present in a 360 form. The data for this
entity comes from form content XML.
Permissions
For more information on permissions, refer 360 Multirater Form Entities [page 189].
Table 218:
Operation Description
GET Query to identify a specific form content. formContentId and formDataId are required to query a
specific form content.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<
?>,formDataId=<?>)?$format=json
URI https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<
?>,formDataId=<?>)/summarySection?
$format=json
URI https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<
?>,formDataId=<?>)/raterListSection?
$format=json
URI https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<
?>,formDataId=<?>)/compSections?
$format=json
URI https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<
?>,formDataId=<?>)/objSections?
$format=json
URI https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<
?>,formDataId=<?>)/form360RaterSection?
$format=json
Response
Sample Code
Query basic information of the 360 form:
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.Form360ReviewContentDetail"
},
"formContentId": "4779",
"formDataId": "2303",
"subjectUserName": "Wilma Sown",
"originatorUserId": "cgrant1",
"subjectUserId": "wsown1",
"originatorUserName": "Charles Grant",
"formTitle": "Multi-Rater for Wilma Sown",
"summarySection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<?>,formDataId=<?>)/summarySection"
}
},
"raterListSection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<?>,formDataId=<?>)/raterListSection"
}
},
"compSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<?>,formDataId=<?>)/compSections"
}
},
"form360RaterSection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<?>,formDataId=<?>)/form360RaterSection"
}
},
"objSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360ReviewContentDetail(formContentId=<?>,formDataId=<?>)/objSections"
}
}
}
}
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.FormSummarySection"
},
"formContentId": "4779",
"formDataId": "2303",
"sectDesc": "",
"sectIndex": 5,
"sectName": "Overall Average Rating",
"overallAdjustedRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/overallAdjustedRating"
}
},
"sectConfig": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/sectConfig"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/selfRatingComment"
}
},
"calculatedFormRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/calculatedFormRating"
}
},
"overallFormRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/overallFormRating"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/othersRatingComment"
}
}
}
}
Sample Code
Query the rater list of the 360 form:
{
d: {
results: [{
__metadata: {
Sample Code
Query basic information of the competency sections:
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>L,sectIndex=2)",
"type": "SFOData.FormCompetencySection"
},
"sectIndex": 2,
"formContentId": "34066",
"formDataId": "<?>",
"sectDesc": "<font color=#000055 size=4><b>Competency
Feedback</b></font>",
"sectWeightKey": "wf_sect_2_sectweight",
"sectWeight": null,
"sectName": "Competency Feedback",
"sectionConfig": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>L,sectIndex=2)/
sectionConfig"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>L,sectIndex=2)/
selfRatingComment"
}
},
"competencies": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>L,sectIndex=2)/competencies"
}
},
"othersRatingComment": {
"__deferred": {
Sample Code
Query basic information of the objective sections:
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveSection(formContentId=<?>,formDataId=<?>,sectIndex=5)",
"type": "SFOData.FormObjectiveSection"
},
"sectIndex": 5,
"formContentId": "34066",
"formDataId": "46047",
"sectDesc": "",
"sectWeight": null,
"sectName": "Objective",
"objectives": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveSection(formContentId=<?>,formDataId=<?>,sectIndex=5)/objectives"
}
},
"sectionConfig": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveSection(formContentId=<?>,formDataId=<?>,sectIndex=5)/sectionConfig"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveSection(formContentId=<?>,formDataId=<?>,sectIndex=5)/
selfRatingComment"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveSection(formContentId=<?>,formDataId=<?>,sectIndex=5)/
othersRatingComment"
}
}
}
]
}
}
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
Form360RaterSection(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.Form360RaterSection"
},
"formContentId": "34066",
"formDataId": "46047",
"formStatus": 3,
"formRating": "0.0/5.0",
"formStatusDesc": "Completed",
"form360Raters": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360RaterSection(formContentId=<?>,formDataId=<?>)/form360Raters"
}
}
}
}
8.3.2 Form360RaterSection
You can use this entity to query information about Raters and Ratings given in a 360 form. You can access this
entity only after the modify stage.
Permissions
For more information on permissions, refer 360 Multirater Form Entities [page 189].
Operations Allowed
Table 220:
Operation Description
GET Query basic information about Raters and Ratings given in a 360 form. formContentId and for
mDataId are required to query the objective section of a specified form content.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/
Form360RaterSection(formContentId=<?
>,formDataId=<?>)?$format=json
URI https://<hostname>/odata/v2/
Form360RaterSection/
form360Raters(formContentId=<?
>,formDataId=<?>)?$format=json
Response
Sample Code
Query basic information of the rater section.
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
Form360RaterSection(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.Form360RaterSection"
},
"formContentId": "34066",
"formDataId": "46047",
"formStatus": 3,
"formRating": "0.0/5.0",
"formStatusDesc": "Completed",
"form360Raters": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360RaterSection(formContentId=<?>,formDataId=<?>)/form360Raters"
}
}
}
}
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
Form360Rater(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.Form360Rater"
},
"formContentId": "34066",
"formDataId": "46047",
"internalOrExternal": "internal",
"mail": "ckim@successfactors.com",
"manager": "athompson1",
"department": "dept 81",
"cellPhone": "",
"participantRatingStatus": "Completed",
"participantID": "cgrant1",
"category": "Manager",
"participantName": "Carla Grant",
"division": "ACE Software",
"company": "qacandrot_PLT7056",
"participantRating": "",
"jobCode": "VP-SALES",
"jobTitle": "Boutique Coffee Specialist",
"summarySection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360Rater(formContentId=<?>,formDataId=<?>)/summarySection"
}
},
"compSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360Rater(formContentId=<?>,formDataId=<?>)/compSections"
}
},
"objSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Form360Rater(formContentId=<?>,formDataId=<?>)/objSections"
}
}
}
]
}
}
You can use this entity to query information about Raters and Rating details given in a 360 form.
Permissions
For more information on permissions, refer 360 Multirater Form Entities [page 189].
Operations Allowed
Table 222:
Operation Description
GET Query basic information about Raters and Ratings given in a 360 form. formContentId and for
mDataId are required to query the objective section of a specified form content.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/
Form360Rater(formContentId=<?
>,formDataId=<?>)?$format=json
URI https://<hostname>/odata/v2/
Form360Rater(formContentId=<?
>,formDataId=<?>)/summarySection?
$format=json
URI https://<hostname>/odata/v2/
Form360Rater(formContentId=<?
>,formDataId=<?>)/compSections?
$format=json
Response
Sample Code
Query basic information of raters in a 360 Form.
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
Form360Rater(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.Form360Rater"
},
"formContentId": "14829",
"formDataId": "7069",
"internalOrExternal": "",
"mail": "",
"manager": "",
"department": "",
"cellPhone": "",
"participantRatingStatus": "Pending",
"participantID": "",
"category": "Direct Report",
"participantName": "Anonymous",
"division": "",
"company": "",
"participantRating": "",
"jobCode": "",
"jobTitle": "",
"summarySection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Form360Rater(formContentId=<?>,formDataId=<?>)/summarySection"
}
},
"compSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Form360Rater(formContentId=<?>,formDataId=<?>)/compSections"
}
},
"objSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Form360Rater(formContentId=<?>,formDataId=<?>)/objSections"
}
}
}
}
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.FormSummarySection"
},
"formContentId": "34066",
"formDataId": "46047",
"sectDesc": "<font color=#000055 size=4><b>Overall Rating Cong Test
Summary</b></font>",
"sectIndex": 4,
"sectName": "Overall Rating",
"overallAdjustedRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/overallAdjustedRating"
}
},
"sectConfig": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/sectConfig"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/selfRatingComment"
}
},
"groupMatrix": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/groupMatrix"
}
},
"calculatedFormRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/calculatedFormRating"
}
},
"overallFormRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/overallFormRating"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/othersRatingComment"
}
},
"summaryListing": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=<?>,formDataId=<?>)/summaryListing"
}
}
}
Sample Code
Query competency sections of the rater.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>,sectIndex=2)",
"type": "SFOData.FormCompetencySection"
},
"sectIndex": 2,
"formContentId": "34066",
"formDataId": "46047",
"sectDesc": "<font color=#000055 size=4><b>Competency
Feedback</b></font>",
"sectWeightKey": "wf_sect_2_sectweight",
"sectWeight": null,
"sectName": "Competency Feedback",
"sectionConfig": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>,sectIndex=2)/sectionConfig"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>,sectIndex=2)/
selfRatingComment"
}
},
"competencies": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>,sectIndex=2)/competencies"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>,sectIndex=2)/
othersRatingComment"
}
}
}
]
}
}
Sample Code
Query objective sections of the rater.
{
"d": {
"results": [
{
"__metadata": {
8.3.4 FormRaterListSection
You can use this entity to describe a list of raters in a 360 Form. This API allows an employee or a manager to
modify the participants in modify stage. So this API entity is only available in modify stage.
Permissions
For more information on permissions, refer 360 Multirater Form Entities [page 189].
Table 224:
Operation Description
GET Query the rater list section of a specified form content. formContentId and formDataId are re
quired to query the rater list section of a specified form content.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<Hostname>/odata/v2/
FormRaterListSection(formContentId=<?
>,formDataId=<?>)?$format=json
Note
You must input "formContentId" and "formDataID" to access this entity. You can use the following URL to pick a
360 Form, view the details, and get the value for the two IDs: "https://<hostname>/odata/v2/FormHeader?
$format=json&$filter= formTemplateType eq '360'"
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormRaterListSection(formContentId=<?>,formDataId=<?>)",
"type": "SFOData.FormRaterListSection"
OData APIs from Succession enable customers to build custom extensions on standard SuccessFactors
application Succession Planning.
The most common need for customers is the ability to create alternate visualizations on top of the succession
data. To allow customers to do that, OData APIs in Succession Planning should expose:
● Successor data
● Incumbent data
● Position data
● Talent Flag info
● Icon / gradient configuration from the XML
● Trend data
You can access successors in both MDF-Position and Legacy-Position only when you have succession planning
permission for those positions. Also you can access all members and individual nomination details in a talent pool
when it’s permitted.
Once you have the following access permission, you can access succession planning information about positions,
incumbent, and talent pools. To access succession OData API, enable the following feature settings in your
instance:
User based Go to Admin Center, and select Admin access to OData API
Note
Please confirm that Admin access to MDF OData API has
been enabled
● Secured: Yes
● Permission Category: Miscellaneous Permissions
● Secured: Yes
● Permission Category: Miscellaneous Permissions
8.4.1 LegacyPositionEntity
You can use this entity to describe basic information of a Legacy position used in succession planning.
Permissions
For more information on permissions, refer Succession OData Entities [page 205].
Table 232:
Operation Description
GET Query to identify legacy position. positionId is the identifier of a legacy position.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json
URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json&
$expand=successorNav
URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json&
$expand=incumbentNav
URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json&
$expand=talentPoolNav
URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json&$top=1&
$expand=parentNav
Sample Code
Query basic information of LegacyPositionEntity.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(1L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "1",
"positionCode": "1",
"title": "Sr. Manager, Analytics",
"createDate": "/Date(1189534002000)/",
"incumbent": "TBH_USER_477",
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/successorNav"
}
},
"parentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/parentNav"
}
},
"incumbentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/incumbentNav"
}
}
}
]
}
}
Sample Code
Query basic information of LegacyPositionEntity and its successor list.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(1L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "1",
"positionCode": "1",
"title": "Sr. Manager, Analytics",
"createDate": "/Date(1189534002000)/",
"incumbent": "TBH_USER_477",
"successorNav": {
"results": []
},
"parentNav": {
Sample Code
Query basic information of LegacyPositionEntity and its incumbent.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(1L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "1",
"positionCode": "1",
"title": "Sr. Manager, Analytics",
"createDate": "/Date(1189534002000)/",
"incumbent": "TBH_USER_477",
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/successorNav"
}
},
"parentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/parentNav"
}
},
"incumbentNav": null
}
]
}
}
Sample Code
Query the record in the list of LegacyPositionEntity and its talent pool.
{
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(4L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "4",
"positionCode": "4",
Sample Code
Query basic information of LegacyPositionEntity and its parent position.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(1L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "1",
"positionCode": "1",
"title": "Sr. Manager, Analytics",
"createDate": "/Date(1189534002000)/",
"incumbent": "aaaa",
"parentNav": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(96L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "96",
"positionCode": "96",
"title": "Director, HR Operations",
"createDate": "/Date(1189534002000)/",
"incumbent": "jtong1",
"parentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(96L)/parentNav"
}
}
}
}
]
}
8.4.2 NominationTarget
You can use this entity to describe basic information of nomination in succession planning module.
Permissions
For more information on permissions, refer Succession OData Entities [page 205].
Operations Allowed
Table 234:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/
NominationTarget?$format=json
URI https://<hostname>/odata/v2/
NominationTarget?$format=json&
$filter=nominationType eq '1'&
$expand=successorNav
URI https://<hostname>/odata/v2/
NominationTarget?$format=json&
$filter=nominationType eq '1'&$expand=
legacyPositionNav
URI https://<Hostname>/odata/v2/restricted/
NominationTarget?$format=json&
$filter=nominationType eq '5'&$expand=
positionNav
Response
Sample Code
Query basic information of NominationTarget.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(183L)",
"type": "SFOData.NominationTarget"
},
"nominationId": "183",
"nominationType": 1,
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(183L)/successorNav"
}
},
"legacyPositionNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(183L)/legacyPositionNav"
}
}
}
]
}
}
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(183L)",
"type": "SFOData.NominationTarget"
},
"nominationId": "183",
"nominationType": 1,
"successorNav": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
Successor(314L)",
"type": "SFOData.Successor"
},
"id": "314",
"rank": null,
"status": "SUCCESSION_REMOVED_STATUS_LB",
"readinessLabel": "Ready Now",
"readiness": 3,
"note": null,
"userNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
restricted/Successor(314L)/userNav"
}
}
}
]
},
"legacyPositionNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(183L)/legacyPositionNav"
}
}
}
]
}
}
Sample Code
Query basic information of NominationTarget whose nominationType is ‘6’and its talent pool detail.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(880L)",
"type": "SFOData.NominationTarget"
},
"nominationId": "880",
"nominationType": 6,
Sample Code
Query basic information of NominationTarget whose nominationType is ‘5’and its mdf postion detail.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(1000L)",
"type": "SFOData.NominationTarget"
},
"nominationId": "1000",
"nominationType": 5,
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(1000L)/successorNav"
}
},
"positionNav": {
"__metadata": {
8.4.3 Successor
You can use this entity to describe basic information of Successor in succession planning module.
Permissions
For more information on permissions, refer Succession OData Entities [page 205].
Operations Allowed
Table 236:
Operation Description
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/Position?
$format=json&$expand=successorNav
URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json&
$expand=successorNav
Response
Sample Code
Query basic information of MDF PositionEntity and Its successor list.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')",
"type": "SFOData.Position"
},
"effectiveStartDate": "/Date(1443398400000)/",
"code": "testyingwen",
"positionControlled": null,
"transactionSequence": "1",
"mdfSystemObjectType": "Position",
"externalName_pt_BR": null,
"externalName_pt_PT": null,
"externalName_ru_RU": null,
"lastModifiedDateTime": "/Date(1443420790000+0000)/",
"effectiveStatus": "A",
"successorNav": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
Successor(1910L)",
"type": "SFOData.Successor"
Sample Code
Query basic information of LegacyPositionEntity and its successor list.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(1L)",
"type": "SFOData.LegacyPositionEntity"
},
"positionId": "1",
"positionCode": "1",
"title": "Sr. Manager, Analytics",
"createDate": "/Date(1189534002000)/",
"incumbent": "TBH_USER_477",
"successorNav": {
"results": []
},
"parentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/parentNav"
}
},
"incumbentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/incumbentNav"
}
8.4.4 TalentGraphicOption
You can use this entity to describe icons and images used in Succession org Chart.
Permissions
For more information on permissions, refer Succession OData Entities [page 205].
Operations Allowed
Table 238:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/
TalentGraphicOption?$format=json
Sample Code
Query the detail for TalentGraphicOption.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
TalentGraphicOption(dataIndex='1',optionKey='riskOfLoss')",
"type": "SFOData.TalentGraphicOption"
},
"optionKey": "riskOfLoss",
"dataIndex": "1",
"optionName": "GradientOption",
"dataImage": null,
"optionLabel": "Risk of Loss",
"optionTarget": null,
"optionIndex": 1,
"dataShortLabel": null,
"dataLabel": "Low",
"gradientBackgroundColor": "2B9600",
"dataValue": "1.0",
"optionType": "namegradient",
"optionScaleId": null
}
]
}
}
8.4.5 TalentPool
You can use this entity to describe basic information of Talent Pool.
Permissions
For more information on permissions, refer Succession OData Entities [page 205].
Table 240:
Operation Description
GET Query basic information of Talent Pool. Code and effectiveStartDate are the composite identifiers
of a TalentPool.
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<hostname>/odata/v2/TalentPool?
$format=json&$expand=nominationNav
Response
Sample Code
Query basic information of TalentPool and its Nomination Target details.
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
TalentPool(code='product
manager',effectiveStartDate=datetime'2015-09-09T00:00:00')",
"type": "SFOData.TalentPool"
},
"effectiveStartDate": "/Date(1441756800000)/",
"code": "product manager",
"name_ko_KR": null,
"mdfSystemLastModifiedDate": "/Date(1445586985000)/",
"transactionSequence": "1",
"mdfSystemObjectType": "TalentPool",
"name_iw_IL": null,
The Continuous Performance Management OData APIs enable you to perform the CRUD operations, viz. Create,
Update and Delete operations for the Continuous Performance Management related entities.
Permissions
Apart from the permissions needed for using Continuous Performance Management in the application, you do not
need any additional permissions to use the Continuous Performance Management related API entities.
Table 242:
Provisioning None
8.5.1 ContinuousPerformanceUserPermission
Operations Allowed
Table 243:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Use Case 1: Fetch all the permissions w.r.t. Continuous Performance Management entities for the
current user
Table 244: Request Information
Operation GET
URI http://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission?
$format=JSON
Response
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "Activity",
"permStringValue": "VIEW"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "Activity",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "Achievement",
"permStringValue": "VIEW"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "Achievement",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "OtherTopic",
"permStringValue": "VIEW"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
Use Case 2: Fetch all the permissions w.r.t. Continuous Performance Management entities for a
specific User "emp1"
Table 245: Request Information
Operation GET
URI http://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission?
targetUserId=emp1&$format=JSON
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": true,
"permType": "Activity",
"permStringValue": "VIEW"
},
{
"__metadata": {
Use Case 3: Fetch all the permissions w.r.t. Continuous Performance Management entities for a
specific User "emp1" on entity "Activity"
Table 246: Request Information
Operation GET
URI http://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission?
permType=Activity&targetUserId=emp1&
$format=JSON
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": true,
"permType": "Activity",
"permStringValue": "VIEW"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": true,
"permType": "Activity",
"permStringValue": "EDIT"
}
]
}
}
The Activity entity enables you to query the Activities in Continuous Performance Management and to create,
update and delete Activity records. This entity also enables Managers to view the Activities of their direct reports.
Operations Allowed
Table 247:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/Activity
{
"activityName":"cgrant_activity1",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"activityStatusNav":{"__metadata":
{"uri":"ActivityStatus('high')"}}
}
Operation PUT
URI http://<Hostname>/odata/v2/Activity('1')
Payload
Sample Code
{
"activityName":"cgrant_activity1",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"activityStatusNav":{"__metadata":
{"uri":"ActivityStatus('medium')"}}
}
Operation DELETE
URI http://<Hostname>/odata/v2/Activity('1')
Operation GET
URI http://<Hostname>/odata/v2/Activity?
$format=JSON&$top=1
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/Activity(11129L)",
"type": "SFOData.Activity"
},
"activityId": "11129",
"lastModifiedDateTime": "/Date(1467125566000+0000)/",
"activityStatus": "medium",
"subjectUserId": "cgrant1",
"lastModifiedDateWithTZ": "/Date(1467125566000+0000)/",
"createdDate": "/Date(1467124437000)/",
"snapshot": false,
"activityState": null,
"activityPriority": null,
"createdBy": "cgrant1",
"createdDateTime": "/Date(1467124437000+0000)/",
"lastModifiedBy": "cgrant1",
"lastModifiedDate": "/Date(1467125566000)/",
"activityName": "Activity",
"achievements": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(11129L)/achievements"
}
},
"feedbacks": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(11129L)/feedbacks"
}
},
"devGoalDetailList": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(11129L)/
devGoalDetailList"
}
},
"goalDetailList": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(11129L)/goalDetailList"
}
}
}
Operation GET
URI http://<Hostname>/odata/v2/Activity?
$format=JSON&$filter=activityStatus eq
'high'&$top=1
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/Activity(921L)",
"type": "SFOData.Activity"
},
"activityId": "921",
"mdfSystemEffectiveEndDate": "/Date(253402214400000)/",
"mdfSystemObjectType": "Activity",
"mdfSystemVersionId": null,
"lastModifiedDateTime": "/Date(1459178434000+0000)/",
"mdfSystemTransactionSequence": "1",
"mdfSystemRecordId": "AB8CEB87863B4CFB853668793834CC7F",
"mdfSystemEntityId": "83D3B0AE34E34FDAB64DBE5D80542596",
"activityStatus": "high",
"mdfSystemStatus": "A",
"subjectUserId": "cgrant1",
"lastModifiedDateWithTZ": "/Date(1459178434000+0000)/",
"createdDate": "/Date(1450120344000)/",
"mdfSystemRecordStatus": "N",
"snapshot": false,
"activityState": null,
"activityPriority": null,
"createdBy": "cgrant1",
"createdDateTime": "/Date(1450120344000+0000)/",
"lastModifiedBy": "cgrant1",
"lastModifiedDate": "/Date(1459178434000)/",
"mdfSystemEffectiveStartDate": "/Date(-2208988800000)/",
"activityName": "Work with the marketing group to develop slick new pitch
decks",
"achievements": {
"__deferred": {
8.5.3 GoalDetail
The GoalDetail entity contains basic information about the GoalDetail linked to an activity for a specific user. You
can create and edit GoalDetail entities linked to an Activity.
Operations Allowed
Table 253:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
You need to use two Goal Management related public OData APIs, 'getDefaultGoalPlanTemplateId' and
'GoalPlanTemplate' for fetching the goal IDs required for "goalDetailList":[{"goalId":"xxx"}.
At first, you need to fetch the ID of the default Goal Plan using '/odata/v2/getDefaultGoalPlanTemplateId'. You
can then fetch the goal IDs by passing the default Goal Plan template ID to the GoalPlanTemplate entity.
Request: https://<Hostname>/odata/v2/GoalPlanTemplate(11)?$format=json&
$expand=goals&userId=cgrant&$select=goals
Response:
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<Hostname>/odata/v2/restricted/GoalPlanTemplate(11L)",
"type": "SFOData.GoalPlanTemplate"
},
"goals": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/restricted/SimpleGoal(3876L)",
"type": "SFOData.SimpleGoal"
},
"id": "3876",
"flag": 0,
"userId": "cgrant",
"name": "Complete sales compensation plan by (date)",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/restricted/SimpleGoal(3877L)",
"type": "SFOData.SimpleGoal"
},
"id": "3877",
"flag": 1,
"userId": "cgrant",
"name": "Develop and implement a strategy to increase sales in
___________ (region) by __% by (date)",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/restricted/SimpleGoal(3880L)",
"type": "SFOData.SimpleGoal"
},
"id": "3880",
"flag": 1,
"userId": "cgrant",
"name": "Increase overall sales revenue __% by (date)",
"type": "user"
}
]
}
}
Operation POST
URI http://<Hostname>/odata/v2/Activity
Payload
Sample Code
{
"activityName":"Activity",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant1')"}},
"activityStatusNav":{"__metadata":
{"uri":"ActivityStatus('medium')"}},
"goalDetailList":
[{"goalId":"260004088"}]
}
Operation POST
URI http://<Hostname>/odata/v2/GoalDetail
Payload
Sample Code
{
"goalId":"260004088",
"Activity_activityId":"11125"
}
The ActivityFeedback entity enables you to add, edit, or delete feedback on your Activities in Continuous
Performance Management.
Operations Allowed
Table 256:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/
ActivityFeedback
{
"commentContent":"New update
feedback",
"feedbackFlagNav":{"__metadata":
{"uri":"FeedbackFlag('Red')"}},
"Activity_activityId":"1"
}
Operation PUT
URI http://<Hostname>/odata/v2/
ActivityFeedback(Activity_activityId=1,act
ivityFeedbackId=2)
Payload
Sample Code
"commentContent":"modifiedcomment1"
}
Operation DELETE
URI http://<Hostname>/odata/v2/
ActivityFeedback(Activity_activityId=1,act
ivityFeedbackId=2)
The Achievement entity enables you to perform CRUD operations on Continuous Performance Management
Achievements, viz. create, update and delete them, and it enables you to query the Achievements. This entity also
enables Managers to view their direct reports' Achievements.
Operations Allowed
Table 260:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation POST
URI http://<Hostname>/odata/v2/Achievement
{
"parentExternalId":"1",
"parentTypeEnum":"ACTIVITY",
"achievementName":"activity_achievemen
t",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant1')"}}
}
Operation PUT
URI http://<Hostname>/odata/v2/Achievement(3)
Payload
Sample Code
{
"achievementName":"comment233"
}
Operation DELETE
URI http://<Hostname>/odata/v2/Achievement(3)
Operation GET
URI http://<Hostname>/odata/v2/Achievement?
$format=JSON
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/Achievement(11144L)",
"type": "SFOData.Achievement"
},
"achievementId": "11144",
"achievementDate": "/Date(1467158400000)/",
"lastModifiedDateTime": "/Date(1467181584000+0000)/",
"achievementName": "11111",
"reviewed": null,
"subjectUserId": "cgrant1",
"lastModifiedDateWithTZ": "/Date(1467181584000+0000)/",
"createdDate": "/Date(1467181584000)/",
"parentExternalId": "11141",
"snapshot": null,
"createdBy": "cgrant1",
"lastModifiedBy": "cgrant1",
"createdDateTime": "/Date(1467181584000+0000)/",
"lastModifiedDate": "/Date(1467181584000)/",
"parentTypeEnum": "ACTIVITY",
"subjectUserIdNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Achievement(11144L)/
subjectUserIdNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Achievement(11144L)/wfRequestNav"
}
},
"parentTypeEnumNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Achievement(11144L)/
parentTypeEnumNav"
}
}
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/Achievement(10623L)",
8.5.6 SupporterFeedback
Permissions
User based NA
Operations Allowed
Table 266:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Case 1: Create a request for an update on Achievement (Id 613) from a
supporting colleague
Operation POST
URI http://<Hostname>/odata/v2/
SupporterFeedback
Payload
Sample Code
{
"parentExternalId":"613"
"parentTypeEnum":"ACHIEVEMENT",
"requesterIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"recipientIdNav":{"__metadata":
{"uri":"User('emp1')"}},
"requestText_defaultValue":"Since
you have worked with me on \"NoLink
to Activity\", I'd like to get your
feedback on our interactions. Could
you please let me know what you think
went well and provide one
constructive suggestion on where I
can do better?\n\nBest Regards,
\ncgrant c",
}
It is an update operation.
Operation PUT
URI http://<Hostname>/odata/v2/
SupporterFeedback( 616L )
Payload
Sample Code
{
"requestText_localized": "Since
you have worked with me on \"NoLink
to Activity\", I'd like to get your
feedback on our interactions. Could
you please let me know what you think
went well and provide one
constructive suggestion on where I
can do better?\n\nBest Regards,
\ncgrant c",
"responseText": "Great Job.
Feedback provided for cgrant user",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"recipientIdNav":{"__metadata":
{"uri":"User('emp1')"}},
"requesterIdNav":{"__metadata":
{"uri":"User('cgrant')"}}
}
Use Case: List all the SupporterFeedback provided on Achievements for a user
‘cgrant’
<Your input>
Operation GET
URI http://<Hostname>/odata/v2/Achievement?
$format=json&$expand=supporterFeedbacks&
$filter=subjectUserId%20eq%20%27cgrant%27
Sample Code
{
"d": {
"__metadata": {
"uri": "https://localhost:port/odata/v2/Achievement(613L)",
"type": "SFOData.Achievement"
},
"achievementId": "613",
"achievementDate": "/Date(1468368000000)/",
"lastModifiedDateTime": "/Date(1468421483000+0000)/",
"achievementName": "NoLink to Activity",
"reviewed": null,
"subjectUserId": "cgrant",
"lastModifiedDateWithTZ": "/Date(1468421483000+0000)/",
"createdDate": "/Date(1468428683000)/",
"parentExternalId": null,
"snapshot": null,
"lastModifiedBy": "cgrant",
"createdDateTime": "/Date(1468421483000+0000)/",
"lastModifiedDate": "/Date(1468428683000)/",
"parentTypeEnum": null,
"subjectUserIdNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/Achievement(613L)/
subjectUserIdNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/Achievement(613L)/
wfRequestNav"
}
},
"supporterFeedbacks": {
"results": [
{
"__metadata": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)",
"type": "SFOData.SupporterFeedback"
},
"feedbackId": "615",
"requesterId": "cgrant",
"lastModifiedDateTime": "/Date(1471609677000+0000)/",
"requestText_en_DEBUG": null,
"responseDateTime": "/Date(1471609677000+0000)/",
"subjectUserId": "cgrant",
"lastModifiedDateWithTZ": "/Date(1471609677000+0000)/",
"createdDate": "/Date(1471616074000)/",
"parentExternalId": "613",
"requestText_localized": "Since you have worked with me on
\"NoLink to Activity\", I'd like to get your feedback on our interactions. Could
you please let me know what you think went well and provide one constructive
suggestion on where I can do better?\n\nBest Regards,\ncgrant c",
"requestDateTime": "/Date(1471608873000+0000)/",
"responseText": "This is a feedback on cgrant",
"requestText_de_DE": null,
"recipientId": "emp1",
"requestText_en_GB": null,
"requestText_defaultValue": "Since you have worked with me on
\"NoLink to Activity\", I'd like to get your feedback on our interactions. Could
you please let me know what you think went well and provide one constructive
suggestion on where I can do better?\n\nBest Regards,\ncgrant c",
Additional Information
Related Links
The APIs available for Development facilitate the integration of Continuous Performance Management with the
Development goal plan. This integration allows users to link their CPM activities and achievements to their
development goals and to see them in their goal plan.
8.6.1 DevGoalPlanTemplate
This entitity is used to provide the development goal plan template with a template ID.
Permissions
Operations Allowed
Table 271:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Case: Get all development goal plans for one development goal plan
template with a given template ID
Operation Query
URI http://<Hostname>/odata/v2/
DevGoalPlanTemplate(2002L)?
$expand=devgoals&$format=json
Response
Sample Code
{
"d" : {
"__metadata" : {
"uri" : "https://localhost:443/odata/v2/restricted/DevGoalPlanTemplate(2002L)",
"type" : "SFOData.DevGoalPlanTemplate"
}, "id" : "2002", "startDate" : "\/Date(1262304000000)\/", "parentPlanId" : "-1",
"description" : "Development Goals - Basic", "name" : "Development Goals -
WithCommentTaskFields", "displayOrder" : "1", "dueDate" : "\/
Date(1293753600000)\/", "devgoals" : {
"results" : [
{
"__metadata" : {
"uri" : "https://localhost:443/odata/v2/restricted/SimpleDevGoal(12051L)",
"type" : "SFOData.SimpleDevGoal"
}, "id" : "12051", "flag" : 0, "userId" : "jlo1", "name" : "Test Dev Objective1",
"type" : "development"
}
]
}
}
}
Response
Sample Code
{
"d" : {
"getDefaultDevGoalPlanTemplateId" : "2002"
}
}
Related Links
Related Information
8.6.2 SimpleDevGoal
Permissions
Table 275:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
URI http://<Hostname>/odata/v2/
SimpleDevGoal(12051L)?$format=json
Response
Sample Code
{
"d" : {
"__metadata" : {
"uri" : "https://localhost:443/odata/v2/restricted/SimpleDevGoal(12051L)",
"type" : "SFOData.SimpleDevGoal"
}, "id" : "12051", "flag" : 0, "userId" : "jlo1", "name" : "Test Dev Objective1",
"type" : "development"
}
}
Related Links
8.7 Calibration
The Calibration OData APIs enable you to query the Calibration related entities.
Permissions
Apart from the permissions needed for using Calibration in the application, you must enable the following role-
based permissions to access the Calibration related API entities.
Table 277:
8.7.1 CalibrationTemplate
The CalibrationTemplate entity is used to get basic information from the calibration template table.
Operations Allowed
Table 278:
Operation Description
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI https://<Hostname>/odata/v2/
CalibrationTemplate(3261)?$format=json&
$expand=executiveReviewerList
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<Hostname>/odata/v2/CalibrationTemplate(3261L)",
"type": "SFOData.CalibrationTemplate"
},
"templateId": "3261",
"startDate": "/Date(1476748800000)/",
"createdBy": "admin",
"status": 1,
"lastModifiedBy": "admin",
"createdDateTime": "/Date(1476760756000+0000)/",
"endDate": "/Date(1477872000000)/",
"lastModifiedDateTime": "/Date(1478515304000+0000)/",
"templateName": "B1611 C Step",
"executiveReviewerList": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')",
"type": "SFOData.User"
},
"userId": "mmmm",
"custom02": null,
8.7.2 CalibrationSession
The CalibrationSession entity is used to get basic session information from calibration session table.
Operations Allowed
Table 280:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Case: Get a calibration session details, and expand its calibration template
Operation GET
URI http://<Hostname>/odata/v2/
CalibrationSession(1081)?$format=json&
$expand=calTemplate
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<Hostname/odata/v2/CalibrationSession(1081L)",
"type": "SFOData.CalibrationSession"
},
"sessionId": "1081",
"sessionDate": null,
"sessionName": "PMT stack ranker",
"status": 1,
"sessionLocation": null,
"lastModifiedBy": "admin",
"lastModifiedDateTime": "/Date(1477294252000+0000)/",
"activationDate": null,
"ownerList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/CalibrationSession(1081L)/
ownerList"
}
},
"participantList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/CalibrationSession(1081L)/
participantList"
}
},
"subjectList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/CalibrationSession(1081L)/
subjectList"
}
},
"calTemplate": {
"__metadata": {
"uri": "https://<Hostname/odata/v2/CalibrationTemplate(541L)",
8.7.3 CalibrationSessionSubject
The CalibrationSessionSubject entity is used to get information about the subjects in a calibration session.
Operations Allowed
Table 282:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Operation GET
URI http://<Hostname>/odata/v2/
CalibrationSessionSubject(10236)?
$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://<Hostname/odata/v2/CalibrationSessionSubject(10236L)",
"type": "SFOData.CalibrationSessionSubject"
},
"sessionSubjectId": "10236",
"authorizedBy": null,
"pmFormOwnerId": null,
"reasonId": null,
"status": 0,
"calibratedFlag": false,
"pmFolderMapId": null,
"lastModifiedDateTime": "/Date(1470734402000+0000)/",
"createdBy": "dcortez1",
"pmFormDataId": null,
"externalComments": null,
"userId": "sagrawal1",
"createdDateTime": "/Date(1470734402000+0000)/",
"lastModifiedBy": "dcortez1",
"calSessionId": "5462",
"comments": null,
"rankList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/
CalibrationSessionSubject(10236L)/rankList"
}
},
"pmRatingList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/
CalibrationSessionSubject(10236L)/pmRatingList"
}
},
"calSession": {
8.7.4 CalibrationSubjectRank
The CalibrationSubjectRank entity is used to get information about the subject rank in a calibration session.
Operations Allowed
Table 284:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<Hostname>/odata/v2/
CalibrationSubjectRank(102)?$format=json
Sample Code
{
"d": {
"__metadata": {
"uri": "https://Hostname/odata/v2/restricted/
CalibrationSubjectRank(102L)",
"type": "SFOData.CalibrationSubjectRank"
},
"subjectRankId": "102",
"rank": 1,
"dataType": 10,
"ratingValue": "1",
"calSessionSubject": {
"__deferred": {
"uri": "https://Hostname/odata/v2/restricted/
CalibrationSubjectRank(102L)/calSessionSubject"
}
}
}
}
9.1.1 JobApplication
The job application entity contains core application data consisting of system, standard, and custom fields.
The metadata of this entity shows the standard and custom fields configured in all the active templates. If a field
(standard or custom) is not configured in any of the active templates, then it it will not display in the metadata and
is not a part of the OData query. However, the system and calculated fields are always displayed.
Note
1. The entity cannot be filtered or sorted by these non-reportable custom fields. Reportable custom fields
should be available within the entity and the entity can be sorted/filtered using the reportable custom fields.
2. If the same field (custom or standard) has been configured as different types (say text in one and picklist in
another) in separate application templates, then the field shows up as String in the metadata. In this case,
OData query will return the Option Id for the picklist field of the job requisition which was created using the
template having the field configured as picklist.
3. If two custom fields with the same field Id are defined in two different templates, then the metadata shows
the following:
○ One field in the metadata if the default label and field type are the same.
○ One field in the metadata with 2 labels that are comma separated, if the default labels are different.
4. The system fields will always show up in the metadata irrespective of the template definition.
5. As of 1511 release the Batch operation is supported.
6. Applications can be created for both Internal and External Candidates.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Company Settings Recruiting Enable Onboarding Integration BizX Onboarding Integration BizX
Onboarding must be enabled.
Table 286:
Permission System Required Setting
Operations Allowed
Table 287:
Operation Description
POST Update or insert operation for the Job Application entity is supported in the Q4 2015 release.
Required Fields
Properties
Note
For this entity, non-reportable custom fields are stored as CLOB data. The field, customField in the entity
represents non-reportable custom fields in key and value pairs. This entity cannot be filtered or sorted by these
non-reportable custom fields. Reportable custom fields should be available within the entity and the entity can
be sorted/filtered using the reportable custom fields.
Standard and custom fields will show up based on the template definitions. Please refer to OData API Data
Dictionary for the latest information on the entities.
address Address
applicationId Application Id
candidateId Candidate Id
city City
comments Comments
ethnicity Ethnicity
exportedOn Exported On
gender Gender
hiredOn Hired On
mainContact mainContact
owner Owner
race Race
rating Rating
reference Reference
referredBy Referred By
source Source
zip Zip
jobAppGUId Application GU Id
userSysId User Id
Table 289:
Navigation Property Related Entity Description
Use Cases
[If necessary, add any supplementary information about the use cases here]
Table 290:
API Call Description
../odata/v2/JobApplication('12333')? Get the application along with the attachments where applica
$expand= multiAttachmentSelection tionId is 12333
../odata/v2/JobApplication? Get the top 2 applications with cellphone 650 645 2000
$filter=cellPhone eq '650 645 2000'&$top=2
../odata/v2/JobApplication
{
"relativesEmployed":
{"id":"381"},
"convicted": {"id":"380"},
"candidateSource":{"id":"1515"},
"candidateId": "901",
"homePhone": "00004",
"jobReqId": "621",
"applicationTemplateId": "792",
"appStatusSetItemId": "21",
"firstName":"José",
"lastName":"Mourinho",
"resume":
{
"__metadata":{
"type":"SFOData.Attachment"
},
"userId":"admin",
"module":"RECRUITING",
"moduleCategory":"ATTACHMENTS",
"fileContent":"XXXXXXXXXXXX",
"fileName":"Attach2.doc"
}
}
../odata/v2/JobApplication
{
"candidateId": "1001",
"jobReqId": "1022",
"applicationTemplateId": "792",
"appStatusSetItemId": "21",
"ssn": null,
"cellPhone": "000005",
"homePhone": "0001",
"city": "test Map",
"middleName": "test Map",
"lastName": "test Map",
"referenceComments": "test Map",
"status": "0",
"countryCode": "BR",
"relativesRelationship": "test
Map",
"dateOfBirth": "/
Date(1440509843000+0000)/",
"referralName": "test Map",
"noticePeriod": "test Map",
"questionResponse": "[]",
"referredBy": "test Map",
"agencyInfo": "test Map",
"faxNumber": "01",
"relativesDept": "test Map",
"convictedYes": "Yes",
"statusComments": "test Map",
"firstName": "test Map",
"zip": null,
"contactEmail":
"testMap@asdsa.com",
"nonApplicantStatus": "0",
"reference": "test Map",
"source": "1",
"address": "test Map",
"formerEmployee": false,
"rating": "0",
"candidateSource": { "id":
"1516"},
"convicted": { "id": "381"},
"relativesEmployed": { "id":
"381"},
"resume":{
"__metadata":{
"type":"SFOData.Attachment"
},
"userId":"admin",
"module":"RECRUITING",
"moduleCategory":"RESUME",
"fileContent":"XXXXXXAAAAA",
"fileName":"TesteResume.doc"
}
}
../odata/v2/Upsert
[{
"__metadata":{
"type":"SFOData.JobApplication",
"uri":"JobApplication"
},
"candidateId": "1001",
"jobReqId": "902",
"applicationTemplateId": "792",
"appStatusSetItemId": "21",
"status": "0",
"countryCode": "BR",
"questionResponse": "[]",
"faxNumber": "01",
"convictedYes": "Yes",
"zip": null,
"nonApplicantStatus": "0",
"source": "1",
"rating": "0",
"candidateSource": { "id":
"1516"},
"convicted": { "id": "381"},
"relativesEmployed": { "id":
"381"}
},{
"__metadata":{
"type":"SFOData.JobApplication",
"uri":"JobApplication"
},
"candidateId": "1001",
"jobReqId": "901",
"applicationTemplateId": "792",
"appStatusSetItemId": "21",
"status": "0",
"countryCode": "BR",
"questionResponse": "[]",
"faxNumber": "01",
"convictedYes": "Yes",
"zip": null,
"nonApplicantStatus": "0",
"source": "1",
"rating": "0",
"candidateSource": { "id":
"1516"},
"convicted": { "id": "381"},
"relativesEmployed": { "id":
"381"}
}]
../odata/v2/Upsert
[{
"__metadata":{
"type":"SFOData.JobApplication",
"uri":"JobApplication(583)"
},
"candidateId": "1001",
"jobReqId": "902",
"applicationTemplateId": "792",
"appStatusSetItemId": "21",
"status": "0",
"countryCode": "BR",
"JobApplicationQuestionResponse":
"[]",
"faxNumber": "01",
"convictedYes": "Yes",
"zip": null,
"nonApplicantStatus": "0",
"source": "1",
"rating": "0",
"candidateSource": { "id":
"1516"},
"convicted": { "id": "381"},
"relativesEmployed": { "id":
"381"}
},{
"__metadata":{
"type":"SFOData.JobApplication",
"uri":"JobApplication(584)"
},
"candidateId": "1001",
"jobReqId": "901",
"applicationTemplateId": "792",
"appStatusSetItemId": "21",
"status": "0",
"countryCode": "BR",
"jobApplicationQuestionResponse":
"[]",
"faxNumber": "01",
"convictedYes": "Yes",
"zip": null,
"nonApplicantStatus": "0",
"source": "1",
"rating": "0",
"candidateSource": { "id":
"1516"},
"convicted": { "id": "381"},
"relativesEmployed": { "id":
"381"}
}]
/odata/v2/JobApplication(12333)? Get the application along with its Audit information where ap
$expand=jobApplicationAudit plicationId is 12333
/odata/v2/ Get the job application snapshot education where the snap
JobApplicationSnapshot_Education(346L) shot_educationId is 346
/odata/v2/JobApplication(741)? Get the application along with its snapshot education where
$expand=education applicationId is 741
/odata/v2/JobApplication(601L)/ Get the offer approver list from Offer Approval 191 from Appli
offerApproval(191)/approvers cationid 601
/odata/v2/initiateOnboarding? Initiate the Onboarding process for the applicant related with
applicationId=723L the specified application
/odata/v2/JobApplication(601L)/ Get the list of all onboarding portlets required from applicatio
jobApplicationOnboardingData nId 601 (with errors or not)
{
"candidateId": "1421",
"jobReqId": "1489",
"appStatusSetItemId": "34",
"candidateSource": { "id": "528"},
"convicted": { "id": "380"},
"relativesEmployed": { "id":
"380"},
"jobApplicationQuestionResponse" : [
{
"order": "1",
"answer": "Motivated"
},
{
"order": "4",
"answer": "Unsatisfactory"
}
]
}
{
"__metadata":{
"type":"SFOData.JobApplication",
"uri":"JobApplication(905L)"
},
"jobApplicationQuestionResponse" : [
{
"order": "1",
"answer": "Very Motivated"
},
{
"order": "2",
"answer": "4"
},
{
"order": "3",
"answer": "this is a text
2"
},
{
"order": "4",
"answer": "Outstanding"
}
]
}
[
{
"__metadata":{
"type":"SFOData.JobApplicationQuestion
Response",
"uri":"JobApplicationQuestionResponse"
},
"order": "1",
"answer": "Very Motivated",
"applicationId" : "882"
},
{
"__metadata":{
"type":"SFOData.JobApplicationQuestion
Response",
"uri":"JobApplicationQuestionResponse"
},
"order": "4",
"answer": "Outstanding",
"applicationId": "882"
}
]
Table 291:
Permission not enabled(not a specific code) Recruiting OData API is not enabled in provisioning.
Edit permission not enabled(not a specific code) OData API Application <editType> permission in Admin Cen
ter is not enabled.
SCA error(not a specific code) Unable to insert application due to a SCA Error.
Database batch error(not a specific code) Database error when executing application batch operations.
Unexpected batch error(not a specific code) Unexpected error occurred when executing application batch
operations.
Override error(not a specific code) Override not allowed for Candidate Id = <candidateId> and job
requisition = <jobReqId>
Error updating candidates(not a specific code) Error updating candidates for job application batch operation
Entity Metadata
<EntityType Name="JobApplication">
<Key>
<PropertyRef Name="applicationId"/>
</Key>
<Property Name="address" Type="Edm.String" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
This entity represents the comments entered for the job application.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 292:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
Operations Allowed
Table 293:
Operation Description
POST Update or insert operation for the JobApplicationComments entity is supported in the Q4 2015 re
lease.
Table 294:
Property Description
associatedId Associated Id
commentId Comment Id
commentator Commentator
content Content
refId Reference Id
Navigation Properties
Table 295:
Navigation Property Related Entity Description
Entity Metadata
<EntityType Name="JobApplicationComments">
<Key>
<PropertyRef Name="commentId"/>
</Key>
<Property Name="associatedCommentId" Type="Edm.Int64" sf:Filterable="false"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Associated Comment Id</String>
</Annotation>
</Property>
<Property Name="associatedId" Type="Edm.String" sf:Filterable="false"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Associated Id</String>
</Annotation>
</Property>
<Property Name="commentId" Type="Edm.Int64" sf:Filterable="false"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="false">
<Annotation Term="label">
<String>Comment Id</String>
</Annotation>
9.1.3 JobApplicationStatus
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 296:
Permission System Required Setting
Operations Allowed
Table 297:
Operation Description
POST Update or insert operation for the JobApplicationStatus entity is supported in 1511 release
Properties
Table 298:
Property Description
Navigation Properties
Table 299:
Navigation Property Related Entity Description
<EntityType Name="JobApplicationStatus">
<Key>
<PropertyRef Name="appStatusSetId"/>
</Key>
<Property Name="appStatusId" Type="Edm.Int64" sf:Filterable="true"
sf:Sortable="true" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Application Status Id</String>
</Annotation>
</Property>
<Property Name="appStatusName" Type="Edm.String" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="false">
<Annotation Term="label">
<String>Application Status Name</String>
</Annotation>
</Property>
<Property Name="appStatusSetId" Type="Edm.Int64" sf:Filterable="false"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="false">
<Annotation Term="label">
<String>Applicaiton Status Set Id</String>
</Annotation>
</Property>
<Annotation Term="label">
<String>JobApplicationStatus</String>
</Annotation>
</EntityType>
9.1.4 JobApplicationStatusLabel
This entity represents the job application status labels in different supported languages (for internationalization).
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 300:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
Operations Allowed
Table 301:
Operation Description
POST Update or insert operation for the JobApplicationStatusLabel entity is supported in the Q4 2015
release.
Properties
Table 302:
Property Description
locale Locale
Table 303:
Navigation Property Related Entity Description
Entity Metadata
<EntityType Name="JobApplicationStatusLabel">
<Key>
<PropertyRef Name="appStatusId"/>
</Key>
<Property Name="appStatusId" Type="Edm.Int64" sf:Filterable="true"
sf:Sortable="true" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="false">
<Annotation Term="label">
<String>Application Status Id</String>
</Annotation>
</Property>
<Property Name="locale" Type="Edm.String" sf:Filterable="false"
sf:Sortable="true" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="false">
<Annotation Term="label">
<String>Locale</String>
</Annotation>
</Property>
<Property Name="statusLabel" Type="Edm.String" sf:Filterable="true"
sf:Sortable="true" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="false">
<Annotation Term="label">
<String>Application Status Label</String>
</Annotation>
</Property>
<Annotation Term="label">
<String>JobApplicationStatusLabel</String>
</Annotation>
</EntityType>
9.1.5 JobApplicationAudit
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 304:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 305:
Operation Description
Properties
Table 306:
fieldId Field ID
source Source
Navigation Properties
Table 307:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 308:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 309:
Operation Description
POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re
lease.
Table 310:
backgroundElementId Entity Id
degree Degree id
applicationId Application Id
major Major id
Navigation Properties
Table 311:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 312:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 313:
Operation Description
Table 314:
backgroundElementId Entity Id
applicationId Application Id
Navigation Properties
Table 315:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 316:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 317:
Operation Description
Table 318:
onboardingId Onboarding Id
submittedOn Submitted On
applicationId Application Id
submittedBy Submitted By
Navigation Properties
Table 319:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.1.9 JobApplicationOnboardingStatus
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 320:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 321:
Operation Description
Properties
Table 322:
type Type
name Name
status Status
message Message
url Url
Navigation Properties
Table 323:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.1.10 JobApplicationQuestionResponse
Note
If the corresponding JobReqScreeningQuestion is updated, the property "expectedAnswer" will be null, because
this information is stored in the Job Requisition. So, after a candidate has applied to the Job Requisition, it is not
recommended to update the JobReqScreeningQuestions.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 324:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 325:
Operation Description
POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re
lease.
Properties
Table 326:
applicationId Application Id
highLow When defining the expected answer for a question, user can
select between HIGHER and LOWER than a desired value. For
example, when the applicant needs to answer with a numeric
value that is equal to or higher than 4.
question Question
Navigation Properties
None.
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.1.11 JobAppTemplate_*
For each job application template available, an entity is created. This is to help you check which fields are required
on a specific template when you are creating a job application through the Odata API. These entities do not
support any operation and are only available on the metadata and in the Admin Center under the "Odata API
Dictionary" page. The entity is named using the “JobAppTemplate_” prefixed to the name of the template (For
example, JobAppTemplate_Custom).
You can use this entity to query or post a background check request for Job Applications.
Permissions
Note
Although this entity is available in the production environment, you can currently only use this entity in the
preview environment and not in the production envionment.
You must have the Background Check feature enabled in Provisioning. To enable the Background Check feature
contact SAP Cloud Support.
Operations Allowed
Table 328:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Case 1: Querying the background check request for Job Application.
Operation GET
URI http://<Hostname>/odata/v2/
JobApplicationBackgroundCheckRequest
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://localhost:443/odata/v2/
JobApplicationBackgroundCheckRequest(1L)",
"type": "SFOData.JobApplicationBackgroundCheckRequest"
},
"requestId": "1",
"responseCode": "1",
"vendor": "VI",
"jobApplicationId": "921",
"createdDateTime": "/Date(1276855363000+0000)/",
"lastModifiedDateTime": "/Date(1276855363000+0000)/",
"vendorOrderNo": null,
"orderStatus": "OK",
"createdByUser": "adminadmin",
"jobApplication": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
JobApplicationBackgroundCheckRequest(1L)/jobApplication"
}
}
}
]
}
}
Use Case 2: Updating the background check request for Job Application.
Operation POST
URI http://<Hostname>/odata/v2/
obApplicationBackgroundCheckRequest
{
"createdByUser": "adminadmin",
"createdDateTime": "/
Date(1276855363000+0000)/",
"jobapplicationId": "123",
"lastModifiedDateTime": "/
Date(1276855363000+0000)/",
"orderStatus": "OK",
"vendor": "VI"
}
9.1.13 JobApplicationBackgroundCheckResult
You can use this entity to query or post a background check result for Job Applications.
Permissions
Note
Although this entity is available in the production environment, you can currently only use this entity in the
preview environment and not in the production envionment.
You must have the Background Check feature enabled in Provisioning. To enable the Background Check feature
contact SAP Cloud Support.
Table 332:
Operation Description
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Use Case 1: Querying the background check result status for Job Application.
Table 333: Request Information
Operation GET
URI http://<Hostname>/odata/v2/
JobApplicationBackgroundCheckResult
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://localhost:443/odata/v2/
JobApplicationBackgroundCheckResult(21L)",
"type": "SFOData.JobApplicationBackgroundCheckResult"
},
"statusId": "21",
"finalStep": "0",
"stepStatus": "Fail",
"reportUrl": "http://www.sf-vi.com",
"createdDateTime": "/Date(1278317802000+0000)/",
"stepMessage": "Hello1",
"stepName": "Education",
"backgroundCheckRequest": {
"__deferred": {
"uri": "https://localhost:443/odata/v2/
JobApplicationBackgroundCheckResult(21L)/backgroundCheckRequest"
Use Case 2: Updating the background check result status for Job Application.
Table 334: Request Information
Operation POST
URI http://<Hostname>/odata/v2/
JobApplicationBackgroundCheckResult
Payload
Sample Code
{
"stepMessage": "Hello",
"stepName": "Education",
"reportUrl": "http://www.sf-
vi.com",
"statusId": "21",
"finalStep": "0",
"stepStatus": "Fail"
}
9.2.1 JobRequisition
The job requisition entity contains core application data consisting of system, standard and custom fields. The
metadata will show the standard and custom fields configured in all the active templates. If a field (standard or
custom) is not configured in any of the active template, then it will not show up in the metadata and not be a part of
OData query.
Note
The Batch operation, Job Profile Builder and Recruiting Groups features are not supported as of 1511 release.
The entity cannot be filtered or sorted by these non-reportable custom fields. Reportable custom fields should
be available within the entity and the entity can be sorted/filtered using the reportable custom fields.
If the same field (custom or standard) has been configured as different types (say text in one and picklist in
another) in separate requisition templates, then the field shows up as String in the metadata. In this case,
OData query will return the Option Id for the picklist field of the job requisition which was created using the
template having the field configured as picklist.
● One field in the metadata if the default label and field type are the same.
● One field in the metadata with two labels (comma separated) if the default labels are different.
● For now, the fields of type “JobCode” will show up as type string in the metadata.
The system and calculated fields will always show up in the metadata irrespective of the template definition.
openings. Filled is an example of calculated field.
Permissions
Table 335:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Operations Allowed
Table 336:
Operation Description
POST Update or insert operation for the JobRequisition entity is supported in the Q4 2015 release.
Required Fields
Specify the jobReqId for Job Requisition Entity as the business key.
Properties
Table 337:
templateId Template Id
Commission Commission
Options Options
Currency Currency
Stock Stock
stockPackage StockPackage
Industry Industry
City City
Country Country
package Id Package Id
Facility Facility
Brand Brand
Age Age
isDeleted Is Deleted
Table 338:
Use Cases
Table 339:
API Call Description
../odata/v2/JobRequisition('1234')? Gets the job requisition along with the hiringManager where jo
$expand=hiringManager bReqId is 1234
../odata/v2/JobRequisition
{
"country":"US",
"jobCode":"PM",
"jobGrade":"1",
"defaultLanguage": "en_US",
"department":"Product Management
(PM)",
"jobLevel":"1",
"division":"Industries (IND)",
"location":"San Mateo, CA",
"statusSetId": "21",
"appTemplateId": "792",
"templateId": "1251",
"jobReqLocale": {
"jobTitle": "Teste API"
},
"recruiter": {
"userName": "lokamoto"
},
"hiringManager": {
"userName": "lokamoto"
}
}
Update jobReqId 1234 on its location and adding a new title for
../odata/v2/upsert a different locale and a document on the interview guide.
{
"__metadata":{
"type":"SFOData.JobRequisition",
"uri":"JobRequisition(1234)"
},
"location":"San Matao, CA",
"jobReqLocale": {
"jobTitle": "bbbb",
"locale": "en_GB"
},
"interviewGuide":{
"module":"RECRUITING",
"fileContent":"XXXXXXXXXXXAAAAA",
"fileName":"Test.doc"
}
}
../odata/v2/JobRequisition(1186)/? Get the job requisition where jobReqId is 1186 with its corre
$format=json&$expand=jobReqPostings sponding Job Postings.
../odata/v2/JobRequisition(1186)/? Get the job requisition where jobReqId is 1186 with Job Requi
$format=json&$expand=jobReqLocale sition Locale entity that shows multiple languages
…/odata/v2/JobRequisition(581)? Get the Job Requisition and expand details of forwarded candi
$format=json&$expand=jobReqFwdCandidates/ dates.
candidate
…/odata/v2/JobRequisition(581)? Get the currentOwner of the JobReq, i.e., the user that is “Cur
$expand=currentOwner rently With” the JobReq.
…/odata/v2/JobRequisition(581)? (GET) Send JobReq to the previous step. The user performing
$expand=currentOwner the GET request must be the “currentOwner” of the JobReq
…/odata/v2/sendToNextStep? (GET) Send JobReq to the next step must be performed by the
formDataId=7536L&comment=’test comment’…/ “Currently With” user. The formDataId is the same as “Docu
odata/v2/sendToNextStep? ment ID”. On C-Step, all users in step must perform this ac
formDataId=7536L&innerStepUserId='lokamoto tion. On I-Step, innerStepUserId is the id of the recipient user,
nextIStepEntryUser is the id of the recipient user in next I step
'&comment=’test comment’ …/odata/v2/
if next step is I step.
sendToNextStep?
formDataId=7536L&innerStepUserId='lokamoto
'&nextIStepEntryUser='athompson1'&comment=
’test comment’
…/odata/v2/signForm?formDataId=7536L (GET) Sign JobReq Form in the Signature Stage. The formDa
taId is the same as “Document ID” on the UI. Must be per
formed by the “Currently With” user.
…/odata/v2/signForm?formDataId=7536L (GET) Reject JobReq form in the Signature Stage. The for
mDataId is the same as “Document ID” on the UI. Must be per
formed by the “Currently With” user.
"type":"SFOData.JobReqFwdCandidates",
"uri":"JobReqFwdCandidates"
},
"jobReqId": 1205,
"candidateId" : 468,
"status" : "Default"
},
{
"__metadata":{
"type":"SFOData.JobReqFwdCandidates",
"uri":"JobReqFwdCandidates"
},
"jobReqId": 1203,
"candidateId" : 642,
"status" : "Forwarded"
}
]
"questionName" : "This is
multi choice question",
"questionType" :
"QUESTION_MULTI_CHOICE",
"choices" : [
{
"optionLabel" :
"Yes 2"
},
{
"optionLabel" : "No
2"
}
]
}
]
}
Error Codes
Table 340:
Permission not enabled(not a specific code) Recruiting OData API is not enabled in provisioning.
Edit permission not enabled(not a specific code) OData API Job Requisition <editType> permission in Admin
Center is not enabled.
System field not allowed to edit(not a specific code) System field <field> not editable.
Field invalid for template(not a specific code) Field <field> invalid for templateId <templateId>.
Locale not supported(not a specific code) Locale <locale> is not supported for templateId <templateId>
Channel required(not a specific code) Property channelId must be informed when posting type is
agency.
SCA error(not a specific code) Unable to insert job requisition due to a SCA Error.
Job Req not found(not a specific code) Job Requisition <jobReqId> was not found
Min days posting error(not a specific code) This job must be posted for a minimum of <days> day(s).
Start date after end date error(not a specific code) JobRequisitionPosting/postStartDate must be before JobRe
quisitionPosting/postEndDate
Invalid channel id(not a specific code) Field channelId <channelId> is not valid for boardId <boardId>
Insert OK(not a specific code) Job Requisition has been inserted successfully
Update OK(not a specific code) Job Requisition has been updated successfully
Delete OK(not a specific code) Job Requisition has been deleted successfully
Batch has erros(not a specific code) Batch was aborted due to an error on another requisition
Database batch requisition error(not a specific code) Database error when executing requisition batch operations
Unexpected batch requisition error(not a specific code) Unexpected error ocurred when executing requisition batch
operations
Error inserting batch requisition(not a specific code) Failed to batch insert requisition
Error updating batch requisition(not a specific code) Failed to batch update requisition
Reassigning job requisition OK(not a specific code) The job requisition has been reassigned
Reassigning job requisition error(not a specific code) Failed to reassign the job requisition
Reassigning sca error(not a specific code) Unable to reassign the Job Requisition due to a SCA Error
Reassigning no operators(not a specific code) At least one valid operator should be informed
Modifier successfully added(not a specific code) Modifier has been successfully added.
Add Modifier Job Req error(not a specific code) Failed to add Modifier to the job requisition.
Add Modifier sca error(not a specific code) Unalble to add Modifier to the Job Requisition due to an SCA
Error.
User not found(not a specific code) User <user> was not found.
Add Modifier not allowed(not a specific code) Can’t add Modifier, Form Settings don’t allow to add a Modi
fier.
Job Req not in modification stage(not a specific code) Can’t add Modifier. The Job Requisition is not in Modification
stage.
Send Job Req Previous Step Success The job requisition has been sent to previous step.
Send Job Req Previous Step Missing JobReqId The job requisition Id has not been given.
Send Job Req Previous Step Not Enabled Send to previous step is not enabled for job requisition tem
plate <templateId>
Send Job Req Previous Step Invalid Status Incorrect job requisition status. Job requisition should be at
modify/rejected stage.
Send Job Req Previous Step Comment Not Enabled Comment routing is not enabled for job requisition template
<templateId>
Send Job Req Previous Step User Error No job requisition step found for user <user>.
Send Job Req Previous Step Error Job requisition <jobReqId> cannot be sent to previous step.
Invalid Locale for JobReq Error Invalid locale <locale> for JobRequisition
Invalid question order Error Invalid order value for question order(s)=<orders>.
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in job requisition template found in provisioning: ../odata/v2/$metadata
This entity represents the data about external/internal job description header, footer, external or internal title,
external or internal description, status in different locale.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 341:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 342:
Operation Description
POST Update or insert operation for the JobRequisitionLocale entity is supported in the Q4 2015 release.
Table 343:
locale Locale
Navigation Properties
Table 344:
Navigation Property Related Entity Description
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
This entity represents the job requisition operator user data which includes user system id, first name, last name,
email, fax and phone number. If an operator is defined in any of the job requisition template, then the operator will
have an entry in JobRequisition entity.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 345:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 346:
Operation Description
POST Update or insert operation for the JobRequisitionOperator entity is supported in the Q4 2015 re
lease.
Table 347:
Navigation Properties
None.
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.2.4 JobRequisitionPosting
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 348:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 349:
Operation Description
POST Update or insert operation for the JobRequisitionPosting entity is supported in the Q4 2015 re
lease.
Properties
Table 350:
Navigation Properties
Table 351:
Navigation Property Related Entity Description
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.2.5 JobReqQuestions
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 352:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 353:
Operation Description
POST Update or insert operation for the JobRequisitionQuestions entity is supported in the Q4 2015 re
lease.
Properties
Table 354:
questionId Question ID
None.
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in job requisition template found in provisioning: ../odata/v2/$metadata
9.2.6 JobReqFwdCandidates
This entity represents the details of the candidates forwarded to a job requisition.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 355:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Table 356:
Operation Description
POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re
lease.
Properties
Table 357:
referralId Referral ID
referredBy Referred By
Navigation Properties
Table 358:
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.2.7 JobReqScreeningQuestion
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 359:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Table 360:
Operation Description
POST Update or insert operation for the JobReqScreeningQuestion entity is supported in the Q4 2015
release.
Properties
Table 361:
Table 362:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.2.8 JobReqScreeningQuestionChoice
This entity represents the answer choices for Job Requisition questions.
Note
For the TEXT_QUESTION and NUMERIC_QUESTION types, this entity is not populated. The API does not read a
single JobReqScreeningQuestionChoice for a question of type QUESTION_MULTI_CHOICE. The only way the
read a single JobReqScreeningQuestionChoice which is of QUESTION_MULTI_CHOICE type, is by expanding
the jobReqScreeningQuestion or jobReqScreeningQuestionChoice property from the Job Requisition.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 363:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 364:
Operation Description
POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re
lease.
Properties
Table 365:
optionId Option Id
None.
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.2.9 JobReqTemplate_*
For each job requisition template available, an entity is created. This is to help you check which fields are required
on a specific template when you are creating a job requisition through the Odata API. These entities do not support
any operation and are only available on the metadata and in the Admin Center under the "Odata API Dictionary"
page. The entity is named using the “JobReqTemplate_” prefixed to the name of the template (For example,
JobReqTemplate_Custom).
These entities represent the candidates in Recruiting module which include core candidate profile data,
attachments (including resume and cover letter), background elements, application status, comments and data
privacy setting information.
The candidate entity contains core application data consisting of system, standard and custom fields. The
metadata will show the standard and custom fields configured in the active template. If a field (standard or
custom) is not configured in the template, then it will not show up in the metadata and not be a part of OData
query. The system fields will always show up. This entity is not effective dated.
Note
1. The entity cannot be filtered or sorted by the non-reportable custom fields. Reportable custom fields should
be available within the entity and the entity can be sorted/filtered using the reportable custom fields.
2. The system fields will always show up in the metadata irrespective of the template definition.
3. Only external candidates can be created (internal can be updated or exported).
CandidateBackground_* entities represent the background elements as defined in the candidate template. For
example:CandidateBackground_Certificate, CandidateBackground_Education etc. These entities are not effective
dated.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 366:
Permission System Required Setting
The following provisioning flag needs to be unchecked: Company Settings Web Services Disable OData
API
Operations Allowed
Table 367:
Operation Description
POST Update or Insert operation for the Candidate entity is supported in the Q3 2015 release.
Properties
Standard and custom fields show up based on the template definitions. Please refer to OData API Data Dictionary
for the latest information on entities.
candidateId Candidate Id
city City
country Country
currency Currency
gender Gender
middleName Middle
state State/Province
associatedId Associated Id
commentId Comment Id
commentator Commentator
content Content
refId Reference Id
label Label
locale Locale
tagId Tag Id
Navigation Properties
Use Cases
Table 373:
"type":"SFOData.Candida
te",
"uri":"Candidate(45417)
"
},
"firstName":"Test",
"minAnnualSal" :
"70000"
}
"type":"SFOData.Candida
te"
},
"firstName":
"Multiattach999",
"lastName": "Test",
"country": "BR",
"cellPhone": "55
51 9999-9999",
"primaryEmail":
"multixx@test.com",
"educationdocs":[
{
"__metadata":{
"type":"SFOData.Attachm
ent"
},
"module":"RECRUITING",
"moduleCategory":"ATTAC
HMENTS",
"fileContent":"uuuuuyyy
yyaaaazzzzz",
"fileName":"TestMulti1.
doc"
},
{
"__metadata":{
"type":"SFOData.Attachm
ent"
},
"module":"RECRUITING",
"moduleCategory":"ATTAC
HMENTS",
"fileContent":"xxxxxxyy
yyyyxxxx”
"fileName":"TestMulti2.
doc"
}
]
}
}
]}
}
“commentId”: “123”,
"content": "comment
one"
},
"tags" : {
“id”:
“999”,
"label" :
"Good"},
}
}
"agreeToPrivacyStatemen
t":"true"
}
Error Codes
Table 374:
Permission not enabled(not a specific code) OData API Candidate <editType> permission in Admin Center
is not enabled.
SCA Error(not a specific code) Unable to insert Candidate due to a SCA Error
DPCS already accepted(not a specific code) User has already accepted Dpcs
Wrapped Ex(not a specific code) Unexpected error occurred and the e-mail to Candidate could
not be sent: <error>
Entity Metadata
In order to see Candidate’s metadata please use the query, ../odata/v2/$metadata. You should find all the
navigation properties along with fields definition that are set in candidate profile template found in provisioning.
9.3.2 CandidateBackground_Education
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 375:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 376:
Operation Description
Properties
Table 377:
backgroundElementId Entity Id
degree Degree id
applicationId Application Id
major Major id
Navigation Properties
Table 378:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.3.3 CandidateBackground_OutsideWorkExperience
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Table 379:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 380:
Operation Description
Properties
Table 381:
backgroundElementId Entity Id
applicationId Application Id
Navigation Properties
Table 382:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.4.1 JobOffer
Note
● The entity cannot be filtered or sorted by the non-reportable custom fields. Reportable custom fields should
be available within the entity and the entity can be sorted or filtered using the reportable custom fields.
● The system fields will always show up in the metadata irrespective of the template definition.
● A JobOffer can only be edited when it is in the “draft” or “rejected” status. It cannot be edited when it is in
the “pending” status. Editing a Job Offer will generate a new version of this entity with a new Id. All versions
of the JobOffer will be listed on query operations without any Id or based only on application Id.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 383:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 384:
Operation Description
POST Update and Insert operations for OfferApproval are supported in the Q2 2016 release.
Table 385:
applicationId Application Id
templateId Template Id
Navigation Properties
Table 386:
Table 387:
/odata/v2/ GET Get the offer approver list from Offer Ap
JobApplication(601L)/ proval 191 from Applicationid 601.
offerApproval(191)/
approvers
Error Codes
Table 388:
Permission not enabled(not a specific code) OData API Candidate <editType> permission in Admin Center
is not enabled.
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
Table 389:
Please Note:
Request Sample:
…/odata/v2/approveOffer?
applicationId=601L&com
ment=”
…/odata/v2/approveOffer?
applicationId=601L&com
ment=’None’
Error expected:
Please Note:
Request Sample:
…/odata/v2/declineOffer?ap
Û|Jê]Ík”b¤·¬Fõ¼·ó�¥èÇ˙$�X•˛pñÛÉ'˝øW¦&£ÍòŒkv
ment=”
…/odata/v2/declineOffer?ap
Û|Jê]Ík”b¤·¬Fõ¼·ó�¥èÇ˙$�X•˛pñÛÉ'˝øW¦&£ÍòŒkv
ment=’Non e’
Error expected:
Please Note:
Request Sample:
…/odata/v2/sendOfferFor
Approval?applicationId=601L
Errors expected:
Note
● The default behavior of the command is when performing an UPDATE action, the approvers on the payload
will entirely substitute the approvers of the offer, meaning that all approvers must be on the UPDATE
payload.
● If the you do not send any approver in the payload and the template has pre-defined approvers, the
approvers from the template will be pulled out and set as current values.
When having pre-defined approvers on the template, the following behaviors must also be considered:
● Based on Role
There must be a user that, on the job requisition related to the offer, performs the role pre-defined on the
template, otherwise, if editInvalidUser is set to true, another user can be sent on the payload with the
approvalStepId of this step; if editInvalidUser is set to false, an error will occur.
This user will be set as an approver on the creation of the offer. This user can be changed on the UPDATE or
INSERT with the redefineTemplateApprovers flag set to true, for another user that performs, on the job
requisition, the role pre-defined on the template.
● Based on Recruiting Group
The INSERT payload must have one user with the approvalStepId set to the mentioned group, and the user
must belong to the group; otherwise, this approver will not be set, and an error will occur.
● Based on User
9.4.2 JobOfferApprover
Note
● A JobOffer can have pre-defined approvers configured in the template file at provisioning.
● The approver order is defined at the moment of creation or when you update the Job Offer. The first
approvers are the pre-defined approvers, the approvers that follow are the ad-hoc approvers, who are
manually defined in the payload. When the redefineTemplateApprovers flag is set to true, then the order in
the payload is respected, as well as in an update.
● The job offer approval action is only approved if all approvers have approved the request.
● The approver can only approve or decline an offer according to the predefined order for approvers.
● If one approver declines the offer, the entity’s status is automatically changed to ‘rejected’. This is
independent of the response of other approvers.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 390:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 391:
Operation Description
Properties
Table 392:
Username Application Id
Navigation Properties
None.
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
9.4.3 JobOfferTemplate_*
For each offer detail template available, an entity is created. This is to help you check which fields are required on a
specific template when you are creating a job offer through the Odata API. These entities do not support any
operation and are only available on the metadata and in the Admin Center under the "Odata API Dictionary" page.
The entity is named using the “JobOfferTemplate_” prefixed to the name of the template (For example,
JobOfferlTemplate_Custom).
9.4.4 OfferLetter
This entity represents the Offer Letter of the application in Recruiting Management, which includes building a letter
from a predefined template, reading it, and sending it to the applicant.
The Offer Letter entity contains core data consisting of system fields. The system fields will always be present in
the metadata.
Note
● To read or export, or create or update an offer letter the API User needs to be granted special permissions
for read operations and create operations in the admin center.
● The Offer Letter entity requires only three fields in the payload to create and send a full offer letter. They
are:
○ "applicationId”: To retrieve data from Candidate, jobRequisition, and jobApplication. The destination
email address comes from candidate email info.
○ "templateId”: To retrieve data from the special template (create exclusively on the UI). This data
contains information about the pre-defined offer body, template Id, and Name and email subject.
○ "sendMode”: The modes are, “email”, “emailaspdf”, “print”, “verbal”, and “pending”. The last mode is a
special mode for a functionality specially made for the API (if events occur that differ from UI behavior).
When the “pending” mode is selected, the offer letter creation command is prevented from
automatically sending an email.
● If an offer letter is created with the sendMode as “pending” then, the offer letter is stored on the database
normally. The you can read this offer letter, revise it, and if it is ready to be sent, you can use the function
import "sendMailOfferLetter" to send it
● Sending an OfferLetter will generate a new version of this entity with a new Id. All versions of the OfferLetter
will be listed on query operations without a specific Id.
● If you use the function import "sendMailOfferLetter" to send the OfferLetter, the current version will be
updated. This action affects some fields, like sendDate and sendMode.
Company Settings Web Services Disable OData API Please confirm this setting is NOT checked. OData
APIs will be available by default – you will have to request them to be disabled.
Permissions
Table 393:
Permission System Required Setting
Role-based
Integration Tools Admin access to OData API
User-based
Integration Tools Admin access to OData API
Operations Allowed
Table 394:
Operation Description
GET Read OfferLetter operation for the above entities is supported in the Q2 2016 release.
POST Insert operations for OfferLetter are supported in Q2 2016 release. For this entity, the update oper
ation does not apply.
Required Fields
Specify the offerLetterId for Offer Approval Entity as the business key.
Table 395:
rcmOfferId Offer Id
applicationId Application Id
status Status
createdBy Created By
Locale Locale
templateId Template Id
Navigation Properties
Table 396:
Attachments Properties
Table 397:
source Source
attributeId Attribute Id
attachmentId Attachment Id
createdBy Created By
Use Cases
Table 398:
/odata/v2/OfferLetter GET Get all offer letters sent for all job appli
cation.
Table 399:
Export permission not enabled(not a specific code) Recruiting OData API Offer Letter Export Permission in Admin
Center is not enabled
Create Permission not enabled(not a specific code) Recruiting OData API Offer Letter Create Permission in Admin
Center is not enabled
Table 400:
Please Note:
Request Sample:
…/odata/v2/sendMailOffer
Letter?offerLet
Zìvín³dkÚY�×OÔ�ƒ-Šâ¬¤*¯g«IQIÿ“Ÿ¬Ç
Mode=’email’
…/odata/v2/sendMailOffer
Letter?offerLet
Zìvín³dkÚY�×OÔ�ƒ-Šâ¬¤*¯g«IQIÿ“Ÿ„ı«xiał#xìs²Ł…¾EõqÝþ?
Zìvõn·djÚ`�×ôƒƒ=Š±¬⁄*íg¡I`Iô“‚„§«{id»V
Zìvín³dPÚt�”JÔ®ƒ*Š�¬Î*ëg·IPIè“°„¸‰
cale=’en_US’
Error expected:
Entity Metadata
In order to see the metadata please use the following query. You should find all the navigation properties along
with fields definition that are set in the template found in provisioning: ../odata/v2/$metadata
You can get information about Employee Central entities in the dedicated guide, Employee Central OData API
Reference Guide.
Related Information
11.1 OnboardingCandidateInfo
OnboardingCandidateInfo is an MDF entity that maintains metadata about a candidate’s onboarding activity. This
entity can be used for querying onboarding activities by metadata.
Permissions
Table 401:
Permission System Required Setting
Role-based None.
In provisioning account company settings, Onboarding Application feature must be turned ON.
Operations Allowed
Table 402:
Operation Description
Table 403:
Property Description
applicantID The external code for this entity. In RX-OB integration flow,
this is set to the application-id of the candidate. In external-
ATS – OB integration, this is generated using the rcm_job_ap
plication_seq sequence counter.
hired Whether or not the candidate has been hired. Default is false.
In OB – EC flow this is set to true when candidate is hired.
division Division
department Department
location Location
fromExternalATS Whether or not the candidate is from an external ATS (i.e, not
from RX/RMK). In RX – OB flows, this is set to false otherwise
it is true.
Table 404:
Navigation Property Related Entity Description
Use Cases
Table 405:
API Call Description
HRData is an entity that maintains the onboarding information of a candidate. This entity can be used to filter
candidate information based on criteria and to update the candidate information.
Permissions
Operations Allowed
Table 407:
Operation Description
Properties
There are separate Metadata API provided to the list of fields which can be queried:
To obtain detailed information about the entity (HRData) properties from the OData API dictionary or to expose
the entity metadata, use the following query:
https://<hostname>/<partnername>/odata/v2/$metadata
Note
You must use an Onboarding hostname in all the queries.
Operation GET
URI https://<Hostname>/<PartnerName>/odata/v2/
HRData?$filter=<Filter_Condition>&
$select=<Fields>&$expand=<Tag Names>&
$top=<Number of Records>&$skip=<Elements
to skip>
Description Filter API to query for HR Data by querying on the fields of the
HR Data.
Payload No
Example:
Response
Sample Code
{
"odata.metadata":"https://<HostName>/<PartnerName>/odata/v2/$metadata#HRData/
@Element",
"hrdata":[
{
"hrDataId":"f6c71e0f-f7ce-44ab-a6f9-dae5ee9171b3","HrdataDetails":[
{
"Key":"FirstName","Value":"Johnathan"
},{
"Key":"LastName","Value":"Smith"
}
]
},{
"hrDataId":"1407e0f8-5a73-44dd-997b-ceba7cb57251","HrdataDetails":[
{
"Key":"FirstName","Value":"Trevor"
},{
"Key":"LastName","Value":"Smith"
}
]
“nextLink” will point to next Page to further links. If this value is null, then it means no further pages are available.
Get operation is used to filter on the list of candidate using the Filter fields and also passing the fields which needs
to be returned in the response.
Example:
In the above query, fields which are filtered are Last Name = ‘Smith’. The above will return the First Name and Last
Name fields. Apart from this it will return all the fields present in tag EC and Offboarding. With the top 50, it means
50 number will be returned. With skip =100, first 100 records will be skipped.
Operation PUT
URI https://<Hostname>/<PartnerName>/odata/v2/
HRData
Payload Yes
Sample Code
{[
{
"hrDataId": "f6c71e0f-f7ce-44ab-a6f9-dae5ee9171b3",
"HrdataDetails": [
{
"Key": "FirstName",
"Value": "Michael"
}
]
}
]}
The HRData Id is mandatory. The fields, which needs to be updated should be provided in the above format. “Key”
should have the name of the Field and “Value” should be the value of the field which needs to be updated.
Response
Sample Code
{
[
{
"HrDataId":"f6c71e0f-f7ce-44ab-a6f9-dae5ee9171b3",
"Status":"200"
}
]
}
“Status”: Informs whether the particular HRDataId is updated. This is provided for all HRDataId in case of bulk
update. 200 – Success. 400, 403 – Failure
Additional Information
There is a status field available for each record set which indicates the success of the record. A value of 200
indicates a success, and a value of 400 or 403 indicates failure. Generally when the HRDataId/Update Field is
invalid or not available, or if the payload is not in proper format, then 400 will be returned in the response.
Put operation is used to update a HRData for a candidate. The fields provided, will be updated and will be changed
in the HRData of the candidate.
11.2.1 ExpandTags
This Entity provides the list and fields of all the Data-dictionary that are available in Onboarding. This metadata API
provides the information on the data-dictionary.
Permissions
Operations Allowed
Table 411:
Operation Description
GET To get the list of data-dictionary and the fields under it.
Properties
Table 412:
Properties of the Expand Tags.
Property Description
Table 413:
Properties of the Fields under the Tag.
Property Description
Fetch a valid token, from the OData Authentication API, which is mentioned previously.
Use Cases
Use Case: Get the List of Tags (Data – Dictionary) and Fields
When the above request is called, the list of the data-dictionary is returned. With each data-dictionary, a navigation
link is returned. This navigation link, returns the list of fields for the Tag.
URI https://<Hostname>/<PartnerName>/odata/v2/
hrdata/metadata/ExpandTags https://
<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('ApplicationInfo')/
Fields
Description The Odata API will return the list of tag name and a navigation
link to provide the fields under that tag.
Payload No
Sample Code
{
"odata.metadata": "https://<HostName>/<PartnerName>/odata/v2/hrdata/metadata/
$metadata#ExpandTags",
"value": [
{
"TagName": "ApplicationInfo",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('ApplicationInfo')/Fields"
},
{
"TagName": "Base New Employee Data",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('Base New Employee Data')/Fields"
},
{
"TagName": "Direct Deposit",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('Direct Deposit')/Fields"
},
{
"TagName": "EC",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('EC')/Fields"
},
{
"TagName": "EC-CandidateCreated",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('EC-CandidateCreated')/Fields"
},
{
"TagName": "EC-PaperWorkDone",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('EC-PaperWorkDone')/Fields"
},
{
"TagName": "EC-PostPHV",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('EC-PostPHV')/Fields"
},
{
"TagName": "EC-UpdateHireDate",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('EC-UpdateHireDate')/Fields"
},
{
"TagName": "EEO Info",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('EEO Info')/Fields"
},
{
"TagName": "Emergency Contact",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('Emergency Contact')/Fields"
},
{
"TagName": "eWage",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('eWage')/Fields"
},
{
"TagName": "HrDataAPIUpdate",
11.2.2 FilterFields
This entity provides the list of all the Index fields that can be filtered. It returns all the process and the index fields
under the process. This metadata API provides the information on the data-dictionary.
Permissions
Table 416:
Operation Description
Properties
Table 417:
Properties of the Expand Tags.
Property Description
QueryableFields Index fields under the process that can be queried with OData
API.
Fetch a valid token, from the OData Authentication API, which is mentioned previously.
URI https://<Hostname>/<PartnerName>/odata/v2/
hrdata/metadata/FilterFields
Description The Odata API will return the list of processes and the Index
fields in that Processes. The fields returned can be used in the
Filter API as FCode.
Payload No
Response
Sample Code
{
"odata.metadata": "https://<HostName>/<PartnerName>/odata/v2/hrdata/metadata/
$metadata#FilterFields",
"value": [
When the above request is called, the list of the processes and the index fields under each process.
This entity provides the list of fields of under HrDataAPIUpdate Data-dictionary. These are the fields under the
HRData that can be updated using the OData API.
Permissions
Operations Allowed
Table 420:
Operation Description
Properties
Table 421:
Properties of the Expand Tags.
Property Description
Prerequisite:
URI https://<Hostname>/<PartnerName>/odata/v2/
hrdata/metadata/UpdateFieldss
Description The Odata API will return the list of fields present under HrDa
taAPIUpdate tag
Payload No
Response
Sample Code
{
"odata.metadata": “https://<Hostname>/<PartnerName>/odata/v2/hrdata/metadata/
$metadata#UpdateFields/@Element",
"Fields": [
"FirstName",
"LastName"
]
}
When the above request is called, the list of the data-dictionary is returned. With each data-dictionary, a navigation
link is returned. This navigation link returns the list of fields for the Tag.
This is an API to authenticate for other OData API calls. This API call is used to get the valid token and this token
will be used as authentication in the OData API Calls to fetch the data.The user has to set a new Service Login-Set
ODataService, and pass the credentials in the Request Header in the below format.
Permissions
Operations Allowed
Table 424:
Operation Description
Properties
Table 425:
Property Description
ExpiryTimeStamp Time within which the token needs to be used at least once,
else token will be expired.
The Service Login needs to be created Super Admin, under Account -> Service Login. New User Name and
Password needs to be set for the new Service Login Set, ODataService.
Operation GET
URI http://<Hostname>/<PartnerName>/odata/v2/
ODataAuthentication<>
Payload No
Response
Sample Code
{
"odata.metadata": "https://<HostName>/<PartnerName>/odata/
v2/$metadata#ODataAuthentication/@Element",
"Token": "48c3a1ba-c23c-4f25-9570-24f08be8b073",
"ExpiryTimeStamp": "2016-10-07T09:51:56.3886605+05:30"
}
12.1 COTGMObjectiveEntity
COTGMObjectiveEntity represents the goal entity, including all standard fields and customer fields configured in
goal plan templates. It is specified by goal plan id, which means one template has one entity corresponding to it,
such as Goal_1 and Goal_2.
Permissions
Role-based Target population: Admin Tools Manage Permission Roles Choose a permission role
2. Add Target Population Grant select yourself Target Population select target user
User-based Permissions View Goal Plan Permission: Admin Tools Default User Permissions Goal Plan Permissions
Choose one or more goal plan template
Target population: Admin Tools Goals Target Population Choose a user Add Divisions,
Departments, Locations or User to target population
Role-based Target population: Admin Tools Manage Permission Roles Choose a permission role
2. Add Target Population Grant select yourself Target Population select target user
User-based Permissions View Goal Plan Permission: Admin Tools Default User Permissions Goal Plan Permissions
Choose one or more goal plan template
Target population: Admin Tools Goals Target Population Choose a user Add Divisions,
Departments, Locations or User to target population
Role-based Target population: Admin Tools Manage Permission Roles Choose a permission role
1. Go to Permission Goals Goal Plan Permissions All Or Select Others Check New Add
Group Goal Creation
2. Add Target Population Grant select yourself Target Population select target user
User-based Permissions View Goal Plan Permission: Admin Tools Default User Permissions Goal Plan Permissions
Choose one or more goal plan template
Target population: Admin Tools Goals Target Population Choose a user Add Divisions,
Departments, Locations or User to target population
Role-based Target population: Admin Tools Manage Permission Roles Choose a permission role
2. Add Target Population Grant select yourself Target Population select target user
User-based Permissions View Goal Plan Permission: Admin Tools Default User Permissions Goal Plan Permissions
Choose one or more goal plan template
Target population: Admin Tools Goals Target Population Choose a user Add Divisions,
Departments, Locations or User to target population
Role-based Target population: Admin Tools Manage Permission Roles Choose a permission role
1. Go to Permission Goals Goal Plan Permissions All Or Select Others Check New Add
Group Goal Creation
2. Add Target Population Grant select yourself Target Population select target user
User-based Permissions View Goal Plan Permission: Admin Tools Default User Permissions Goal Plan Permissions
Choose one or more goal plan template
Target population: Admin Tools Goals Target Population Choose a user Add Divisions,
Departments, Locations or User to target population
● Provisioning Choose an instance Company Settings Objective Management Suite Total Objective
Management
● Provisioning Choose an instance Company Settings TGM Version 10 UI
● Provisioning Choose an instance Company Settings My Objectives Tab - For V10 and Ultra
Operations Allowed
Table 432:
Operation Description
Properties
Table 433:
Property Description
Id Goal id
start Goal start date - auto-populated with the start date defined in
the <obj-plan-start> template tagformat defined by selected
language pack.
due Goal due date - auto-populated with the due date defined in
the <obj-plan-due> template tag. The format defined by the
selected language pack
rating rating
bizxStrategic bizxStrategic
bizxActual bizxActual
bizxTarget bizxTarget
bizxPos bizxPos
Navigation Properties
Table 434:
Use Cases
Table 435:
API Call Description
Error Codes
Table 436:
Error Code Description
12.2 COTGMMilestoneEntity
COTGMMilestoneEntity represents the milestone based sub goal entities, tasks, milestones and targets. These
entities include all standard fields configured in goal plan templates. Like a goal entity, it is also specified by goal
plan id..
Related Information
COTGMMLTEntity represents the metric lookup sub goal entities, including all standard fields configured in goal
plan templates. Like a goal entity, it is also specified by goal plan id.
Related Information
12.4 COTGMCommentEntity
COTGMCommentEntity represents the comment entities. It is also specified by goal plan id like goal entity.
Properties
Table 437:
Property Description
Id Metriclookup id
objId Goal id
commentator commentator
content content
Related Information
GoalPlanTemplate can be used to access goal plan templates. Currently we are allowing only query operation not
the edit operations.
Permissions
Table 438:
Permission System Required Setting
● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB
● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB
Operations Allowed
Table 439:
Operation Description
Properties
Table 440:
Property Description
Navigation Properties
Table 441:
Navigation Property Related Entity Description
goals SimpleGoal
Use Cases
Table 442:
API Call Description
/odata/v2/GoalPlanTemplate?$expand=goals Query all goal plan templates and expand associated goals
The SimpleGoal entity provides a way to expand all the goals within the Goal Plan of a user.
Permissions
Table 443:
Permission System Required Setting
● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB
● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB
Operations Allowed
Table 444:
Operation Description
GET This entity can be expanded from GoalPlanTemplate entity or queried with goal id. It fetches goal
ID and goal name properties by expanding from GoalPlanTemplate entity..
Properties
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Operation GET
URI http://<Hostname>/odata/v2/
GoalPlanTemplate?$expand=goals
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/GoalPlanTemplate(1L)",
"type": "SFOData.GoalPlanTemplate"
},
"id": "1",
"startDate": null,
"parentPlanId": "-1",
"description": "This is the 2011 objective plan.",
"name": "2011 Objectives",
"displayOrder": "11",
Operation GET
URI http://<Hostname>/odata/v2/
GoalPlanTemplate?$expand=goals&
$format=json&userId=mhoff1&$top=1
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/GoalPlanTemplate(1L)",
"type": "SFOData.GoalPlanTemplate"
},
"id": "1",
"startDate": null,
"parentPlanId": "-1",
"description": "This is the 2011 objective plan.",
"name": "2011 Objectives",
"displayOrder": "11",
"mobileFields": "",
"dueDate": null,
"goals": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3417L)",
"type": "SFOData.SimpleGoal"
},
"id": "3417",
"flag": 0,
"userId": "mhoff1",
"name": "Develop Consistent Process for Lead Management",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3419L)",
"type": "SFOData.SimpleGoal"
},
"id": "3419",
"flag": 0,
"userId": "mhoff1",
"name": "Increase service revenue per account in the NORTHEAST
REGION",
"type": "user"
},
{
"__metadata": {
Operation GET
URI http://<Hostname>/odata/v2/SimpleGoal(2L)
Response
Sample Code
The following is the list of available dashboards. The API currently returns the scorecard and publicprofile
type.
Table 448:
scorecard perfprofile varpayindview notes
13.2 EPProfileView
Permissions
Table 449:
Permission System Required Setting
Role-based and User- The "LIVE_PROFILE" and "V12_PROFILE" permissions must be set in Provisioning. "LIVE_PRO
based FILE_ACCESS" must be set in RBP Permission settings. The API also supports RBP and User-based
permission settings. Please add this information to the Permissions section.
Operations Allowed
Table 450:
Operation Description
Table 451:
Property Description
dashboardId Every dashboard has its own ID. It is auto-generated from the system and is unique for each cus
tomer. The dashboard ID changes when a dashboard is deleted, added, or imported.
dashboardTitle Dashboard title. Set in Admin Tools Configure Employee Files which contains a list of all
the dashboards. You can add a new view, modify the dashboard, or change the dashboard title in
the Dashboard Name form.
Use Cases
Table 452:
API Call Description
13.3 EPProfilePortlet
This entity queries and retrieves the list of user info and background portlets in the dashboard of the currently
logged in user.
Permissions
Table 453:
Permission System Required Setting
Role-based and User- ‹The "LIVE_PROFILE" and "V12_PROFILE" permissions must be set in Provisioning. "LIVE_PRO
based systems FILE_ACCESS" must be set in RBP Permission settings. The API also supports RBP and User-based
permission settings.
Operations Allowed
The EPProfilePortlet entity only returns the user info portlets and background portlets in a dashboard of the
currently logged in user. You cannot query porlet information of other users using this API.
Table 454:
Property Description
portletId In a dashboard, every portlet has its own portlet ID. If a new
portlet is created in a dashboard, it has a new portletId. The
portlet ID is used by the EPProfileUserInfoPortlet query.
Use Cases
Table 455:
API Call Description
This entity queries and retrieves the list of user information and standard element IDs in a userinfo portlet.
Permissions
Table 456:
Permission System Required Setting
Role-based and User- The "LIVE_PROFILE" and "V12_PROFILE" permissions must be set in Provisioning. "LIVE_PRO
based FILE_ACCESS" must be set in RBP Permission settings. The API also supports RBP and user-based
permission settings.
Operations Allowed
The EPProfileUserInfoPortlet entity supports querying the userinfo portlets and standard element Ids in a
dashboard of only the currently logged in user.
Properties
Table 457:
Property Description
portletId In a dashboard, every portlet has its own portlet ID. If a new
portlet is created in a dashboard, it has a new portlet ID. The
portlet ID is used by the EPProfileUserInfoPortlet query.
isPII
isWritable
standardOrUserInfoElementId
Navigation Properties
None.
Table 458:
API Call Description
13.5 EPPublicProfile
This entity provides public profile information that is not already available in other OData APIs. For example,
"About Me" videos, "My Name" audio recordings, and "Introduction" text.
Permissions
Operations Allowed
You can query or update the EPPublicProfile entity based on permision settings for the currently logged in user.
Use Cases
Table 459:
API Call Description
Permissions
Permissions for the BadgeTemplates entity are the same as the permissions for user badges in the
SuccessFactors HCM user interface.
Operations Allowed
Table 460:
Operation Description
Properties
Table 461:
Property Description
userId The owner of user badge template information. The API re
turns templates for the currently logged in user if no userId is
specified.
Navigation properties
None.
Table 462:
API Call Description
13.7 UserBadges
Permissions
Permissions for the UserBadges entity are the same as the permissions for user badges in the SuccessFactors
HCM user interface.
Operations Allowed
Table 463:
Operation Description
DELETE Delete the badges given to the logged in user, or delete badges that the logged in user gave other
users.
Properties
Table 464:
Property Description
userId The unique ID for the badge owner.. The API returns badges
for the currently logged in user if no userId is specified.
lastModified The date and time on which the badge was created.
Navigation Properties
None.
Use Cases
Table 465:
API Call Description
13.8 Background
The background includes several entities, which are based on the Succession Data Model. In most cases, each
background-element tag corresponds with an entity. In some cases, the fields are hardcoded and not configured in
the data model, such as in rating (or “trend“) background elements and the sysLearningHistory element. Each
entity name consists of two parts. The first is a prefix “ Background_“. The second is background-element id which
Note about Limitation: Because we convert the first letter of background-element id to uppercase, if you
configure two background elements and the difference between their background-element id is only the first letter
(for example, "insideWorkExperience" and "InsideWorkExperience), this may cause some problems -- two entities
with same entity name. This would mean that when you query or edit (insert or upsert) operations on this entity,
we can’t make sure that the operation was performed on the correct entity. So if you want to use our API, please
make sure your datamodel does not have two background-elements where the difference between their
background-element id is only the first letter (the letter is same, but one is uppercase and the other is lowercase).
The business keys for each entity are backgroundElementId and userId.
Permissions
As of b1408, this API only supports batch or non-batch QUERY operations. Batch query operation means you can
query multiple users’ background information a time and non-batch query operation means querying single user’s
information .If you want to perform a batch query operation, you should grant “Export Extended User Information”
authorization to the user in admin tools.
ODATA Background API supports both RBP and Non-RBP permission check same as in Employee Profile UI.
Operations Allowed
Table 466:
Operation Description
Note
When we use API to get query operation results for this entity, the order of all properties in each
record has no relationship with order of each field as configured in the data model, or in the web
UI display. If you want to get the column order, please refer to the EPCustomBackgroundPortlet
entity.
1. The API can’t judge which picklist option ID belongs to which picklist ID, parent picklist ID or child picklist.
Properties
Table 467:
Property Description
userId The owner of the background information. This is a required field for insert, update
and delete operations.
backgroundElementId backgroundElementId = 0 for an upsert operation and is its original value for an up
date or delete operation.
bgOrderPos The order of display in the UI for each column. This field is required for an update
operation.
Navigation Properties
None by default. When some properties are configured as picklist, then the entity has some navigation properties.
A developer should add a suffix “Nav” for each of these custom navigation property. For example, if the picklist
property name is “division”, then the navigation property name should be “divisionNav”.
If some properties of this entity are configured as a picklist, then this entity has a one-to-one association with the
PicklistOption entity. Otherwise this entity has no relationship with other entities.
Use Cases
Table 468:
API Call Description
GET odata/v2/ Query one’s background information and sort the result as de
Background_InsideWorkExperience? scending order.
$filter=userId eq 'admin'&
$orderby=bgOrderPos desc&$format=json
HTTP/1
14.1 CompetencyEntity
This enity is a basic library that describes employee competencies, both physical and intellectual. It mapped to a
job role or job family.
Permissions
Table 469:
Operations Allowed
Table 470:
Operation Description
Properties
Table 471:
Property Description
Navigation Properties
Table 472:
Navigation Property Related Entity Description
statusNav statusNav
Use Cases
Table 473:
API Call Description
This entity is the primary classification of a job, which is also known as job family.
Permissions
Table 474:
Permission Model Configuration
Operations Allowed
Table 475:
Operation Description
Properties
Table 476:
Property Description
Table 477:
Navigation Prop Related Entity Description
erty
Use Cases
Table 478:
API Call Description
This entity stores the sections and styling information of a job profile in a Job Description template.. The template
is created for one or more job families.
Permissions
Table 479:
Operations Allowed
Table 480:
Operation Description
Properties
Table 481:
Property Description
createdBy The ID of the person who created the job description template.
createdDate The date on which the job description template was created.
lastModifiedBy The ID of the person who last modified the job description template.
lastModifiedDate The date on which the job description template was modified.
Table 482:
Navigation Property Related Entity Description
Use Cases
The Successfactors module JPB(Job Profile Builder) owns the JobDescTemplate, and will write JobDescTemplate
data into the GENERIC_OBJECT_T table. You can query JobDescTemplate using the JobDescTemplate oData API:
Table 483:
API Call Description
/odata/v2/ Queries the job the profile template with the external
JobDescTemplate(externalCode='1035402')?& Code"1035402". The returned data only includes en_US locale
$format=json& values.
$expand=jdFamilyMappings,sections
This entity stores the detailed profiling information of a job. It inherits all of the competency and skill information
from a job role and describes additional job information, such as education, certification, and physical
requirements.
Permissions
Table 484:
Permission System Required Setting
Role-based Go to search type: Object Definition, search value: Job Profile Take Action: Make correction
Security: change to Yes Permission Category: change to Manage Job & Skill Profile
Visibility . Click Save.
Permission Manage Job & Skill Profile Visibility Job Profile . Select View.
Operations Allowed
Table 485:
Operation Description
Properties
Table 486:
Property Description
draft Indicates that the job profile has not been activated.
subModule Indicates the sub-job profile type, like jobReqProfile which is used in RCM.
Navigation Properties
Table 487:
Navigation Property Related Entity Description
Use Cases
The Successfactors module JPB(Job Profile Builder) owns JobProfile, and will write JobProfile data into the
GENERIC_OBJECT_T table. You can query JobProfile from the JobProfile OData API.
Table 488:
API Call Description
The secondary classification of a job. It usually refers to a particular job title and is also called a job role.
Permissions
Table 489:
Operations Allowed
Table 490:
Operation Description
Properties
Table 491:
Property Description
Navigation Properties
Table 492:
Navigation Property Related Entity Description
Use Cases
The Successfactors HCM module JPB(Job Profile Builder) owns the RoleEntity, and will write RoleEntity data into
the GENERIC_OBJECT_T table. You can query the RoleEntity using the RoleEntity oData API.
Table 493:
API Call Description
/odata/v2/ Queries the role with the externalCode "1003068". The return
RoleEntity(externalCode='1003068')?& data will only include en_US local values.
$format=json&
$select=externalCode,name_en_US,familyNav&
$expand=familyNav,familyNav/
skills,familyNav/competencies
14.6 SkillEntity
This entity is a basic library that is used to describe skills are acquired through training. They are mapped to a job
role or job family.
Permissions
Table 494:
Operations Allowed
Table 495:
Operation Description
Properties
Table 496:
Property Description
Navigation Properties
None.
Use Cases
The SuccessFactors HCM module JPB(Job Profile Builder) owns the SkillEntity, and writes SkillEntity data into the
GENERIC_OBJECT_T table.
Table 497:
API Call Description
/odata/v2/ Queries skills with externalCode "9043". The return data only
SkillEntity(externalCode='9043')? & includes en_US locale values.
$format=json &
$select=externalCode,name_en_US ,libName_e
n_US,category_en_US,group_en_US ,definitio
n_en_US,proLevel1_en_US ,proLevel2_en_US,p
roLevel3_en_US ,proLevel4_en_US,proLevel5_
en_US
This entity is the skill repository for a particular user. Upon creation, it automatically gets the user's skills defined
in the corresponding job profile..
Permissions
Table 498:
Permission System Required Setting
Role-based
Go to Admin Tools Configure Object Definition search type: Object
Operations Allowed
Table 499:
Operation Description
Properties
Table 500:
Property Description
Navigation Properties
Table 501:
Navigation Property Related Entity Description
Use Cases
Table 502:
API Call Description
The SuccessStoreContent provides a single and simple way of accessing the content from the Success Store.
Permissions
Table 503:
Permission System Required Setting
Role-based Same as user permission for the Success Store module being accessed. If no permission is speci
fied, normal provisioning user level permissions are applied.
User-based Same as user permission for the Success Store module being accessed. If no permission is speci
fied, normal provisioning user level permissions are applied.
Operations Allowed
Table 504:
Operation Description
GET Query a SuccessStoreContent entity. This is the only operation that is currently permitted.
Properties
Table 505:
Property Description
contentType This column holds information about the type of content. e.g.
COMPENSATION, REVIEW etc.
bestPractice Whether the content is the best practice content in its cate
gory.
Navigation Properties
None.
Use Cases
Table 506:
API Call Description
Error Codes
Table 507:
Error Code Description
COE_GENERAL_BAD_REQUEST ● Dependent attributes not specified in the query. For example, revisionNo is de
pendent on contentId and it must be specified when querying for revisionNo.
● Invalid content Type or contentId values.
● Required parameter contentType not specified..
16.1 ThemeConfig
The ThemeConfig entity returns details of global style settings that available for theming. This includes all
necessary theming information such as CSS values for color, style definition, and configurations.
Properties
Table 508:
Property Description
Use Cases
‹‹ If necessary, add any supplementary information about the use cases here ››
Table 509:
API Call Description
The ThemeTemplate entity returns current user’s global theme template in escaped HTML format. It also includes
JavaScript, CSS, images, and i18n to build the header and footer
Table 510:
Name Description
useAbsPaths (optional) All urls inside template uses absolute path or relative path. De
fault is true.
Breakdown (optional) If this is on, instead of returning a full template, we will return
header/footer/scripts/styles as 4 separate sections.
template: will return null string. header: the HTML for only the
header of the template. footer: the HTML for only the footer of
the template. scripts: the HTML for all of the <script> tags
needed for the template. This includes script js file and the
html inline scripts. styles: the HTML for all of the <link> and
<style> tags need for the template. This includes css files and
the html inline styles.
Default is false.
Default is false.
Table 511:
API Call Description
16.3 ThemeInfo
The ThemeInfo entity returns key UI properties for the current theme. This includes public css, URL, and
accessibility perferences.
Properties
Table 512:
Property Description
id The ID for a stored theme. This can be a fixed string like" light
GrayPlacematBlueAccentNoTexture" for a pre-defined theme,
or random generated characters for customerized theme.
urls
Use Cases
Table 513:
API Call Description
17.1 EMEvent
You can use this entity to upsert an event for a new process or an existing process. For new processes, you can
upsert the event along with its child entities, EMEventAttribute and EMEventPayload. Once the process is inserted,
further events for this process can be inserted by only passing the URI identifying the particular process to which
this event would belong, identified by its composite key.
Permissions
Role based Go to Admin Center Manage Permission Roles Admin Center Permissions
and grant the Read Execution Manager Events and Read Execution Manager Event
Payload permissions.
Operations Allowed
Table 515:
Operation Description
Properties
The EMEvent entity holds the properties for a particular event, having associations to EMMonitoredProcess,
EMEventAttribute and EMEventPayload. EMMonitoredProcess identifies the process to which a set of events
belong. EMEventAttribute holds a set of attributes for a particular event. EMEventPayload can hold a payload for
any particular event.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
This is the upsertable/insertable entity. Its child entities can be inserted along with upsert/insert of this entity. For
every entity EMEvent being upserted/inserted, a process entity EMMonitoredProcess is required. When an event
is being upserted/inserted for the first time, the process entity has to be passed in an expanded form.
Use Case: Upserting an event for a new process (along with child entities
EMEventAttribute and EMEeventPayload)
Operation GET
Content-Type: application/atom+xml;charset=utf-8
<feed xmlns="http://www.w3.org/2005/
Atom" xmlns:d="http://
schemas.microsoft.com/ado/2007/08/
dataservices" xmlns:m="http://
schemas.microsoft.com/ado/2007/08/
dataservices/metadata"
xml:base="https://localhost:443/
odata/v2/restricted/">
<entry>
<id>https://localhost:443/
odata/v2/EMEvent</id>
<link rel="http://
schemas.microsoft.com/ado/2007/08/
dataservices/related/process"
type="application/atom
+xml;type=entry" title="process"
href="EMEvent/process">
<m:inline>
<entry>
<id>https://
localhost:443/odata/v2/
EMMonitoredProcess</id>
<content
type="application/xml">
<m:properties>
<d:processType>INTEGRATION</
d:processType>
<d:processInstanceId>1902</
d:processInstanceId>
<d:processInstanceName>User Info</
d:processInstanceName>
<d:moduleName>MODULE_ECT</
d:moduleName>
<d:processDefinitionId>1</
d:processDefinitionId>
<d:processDefinitionName>User</
d:processDefinitionName>
<m:properties>
<d:name>frequency</d:name>
<d:value>daily</d:value>
</
m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
<link rel="http://
schemas.microsoft.com/ado/2007/08/
dataservices/related/eventPayload"
type="application/atom
+xml;type=entry" title="eventPayload"
href="EMEvent/eventPayload">
<m:inline>
<entry>
<id>https://
localhost:443/odata/v2/
EMEventPayload</id>
<content
type="application/xml">
<m:properties>
<d:payload
m:type="Edm.Binary">R290IHRoZSBmb2xsb3
dpbmcgZGF0YSANCg0KdXNlcklkOnJjaGF1aGEN
Cm1hbmFnZXI6IEdheWF0aHJpIEJlbGFwdXJrYX
INCkZpcnN0IE5hbWU6IFJvb3BhbmcNCkxhc3Qg
TmFtZTogQ2hhdWhhbg0KRGl2aXNpb246IEVuZw
0KTG9jYXRpb246IEJhbmdhbG9yZQ==</
d:payload>
<d:type>TEXT</d:type>
</
m:properties>
</content>
</entry>
</m:inline>
</link>
<content type="application/
xml">
<m:properties>
<d:eventDescription>Some event
description related to the event
name</d:eventDescription>
Response
Sample Code
The process can now be passed as a URI, identified by its composite key, as shown in this example:
Operation GET
Content-Type: application/atom+xml;charset=utf-8
<feed xmlns="http://www.w3.org/2005/
Atom" xmlns:d="http://
schemas.microsoft.com/ado/2007/08/
dataservices" xmlns:m="http://
schemas.microsoft.com/ado/2007/08/
dataservices/metadata"
xml:base="https://localhost:443/
odata/v2/restricted/">
<entry>
<id>https://localhost:443/
odata/v2/EMEvent</id>
<link rel="http://
schemas.microsoft.com/ado/2007/08/
dataservices/related/process"
type="application/atom
+xml;type=entry" title="process"
href="EMMonitoredProcess(processType='
INTEGRATION',processInstanceId='1',pro
cessDefinitionId='1')" xmlns="http://
www.w3.org/2005/Atom"></link>
<content type="application/
xml">
<m:properties>
<d:eventDescription>Event description
for second event for the same process
which was upserted in the previous
example</d:eventDescription>
Response
Sample Code
Additional Information
Related Information
17.2 EMEventAttribute
You can use this entity to get a list of attributes associated with an event. The attributes are key-value pairs for any
particular event. The key for an event entity EMEvent is its eventId, which is generated when an event is processed
and inserted into the database table. The event is identified by its eventId.
This entity is used to get a list of attributes associated with an event. The attributes are key-value pairs for any
particular event.
Operations Allowed
Table 520:
Operation Description
Properties
The EMEvent entity holds the properties for a particular event, having associations to EMMonitoredProcess,
EMEventAttribute, and EMEventPayload. EMEventAttribute holds a set of attributes for a particular event.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Use Cases
Note
The key for an event entity EMEvent is its eventId, which is generated when an event is processed and inserted
into the database table. The event is identified by its eventId. In the example request below, the eventId=14,
which identifies an event with eventId=14 and sends the payload for that event in the response.
Operation GET
Response
Sample Code
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://localhost:443/odata/v2/EMEventAttribute(23L)",
"type": "SFOData.EMEventAttribute"
},
"id": "23",
"name": "userId",
"value": "5"
},
{
"__metadata": {
"uri": "https://localhost:443/odata/v2/EMEventAttribute(24L)",
"type": "SFOData.EMEventAttribute"
},
"id": "24",
"name": "division",
"value": "1"
}
]
}
}
Additional Information
The EMEventAttribute entity is a child entity. The EMEvent entity is its parent entity.
Related Information
Any data which is specific to an event and cannot be represented as a key-value pair is stored in this entity. The
payload can contain any additional data related to the event. For example, it could be an XML file that is being
processed, or it could be a JSON representation of the object that is being processed, or, in the case of an error
event, it could even be a binary file or stack trace. Payload data is only meant for viewing. It cannot be used for
filtering events or defining any criteria for applying actions.
Permissions
Operations Allowed
Table 523:
Operation Description
Properties
The EMEvent entity holds the properties for a particular event, having associations to EMMonitoredProcess,
EMEventAttribute, and EMEventPayload. EMEventPayload can hold a payload for any particular event.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Note
The key for an event entity EMEvent is its eventId, which is generated when an event is processed and inserted
into the database table. The event is identified by its eventId. In the example request below, the eventId=14,
which identifies an event with eventId=14 and sends the payload for that event in the response.
Operation GET
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://localhost:443/odata/v2/EMEventPayload(13L)",
"type": "SFOData.EMEventPayload"
},
"id": "13",
"payload":
"R290IHRoZSBmb2xsb3dpbmcgZGF0YSANCg0KdXNlcklkOnJjaGF1aGENCm1hbmFnZXI6IEdheWF0\r
\naHJpIEJlbGFwdXJrYXINCkZpcnN0IE5hbWU6IFJvb3BhbmcNCkxhc3QgTmFtZTogQ2hhdWhhbg0K\r
\nRGl2aXNpb246IEVuZw0KTG9jYXRpb246IEJhbmdhbG9yZQ==\r\n",
"type": "TEXT"
}
}
Additional Information
The EMEventPayload entity is a child entity. The EMEvent entity is its parent entity.
17.4 EMMonitoredProcess
You can use this entity to identify information about a process being logged in Execution Manager. Many events
can correspond to a single process. This entity has a composite key, comprising: processType, processDefinitionId
and processInstanceId. This entity is not upserted/inserted separately, but along with the first event associated
with it.
Permissions
Operations Allowed
Table 526:
Operation Description
Properties
The EMEvent entity holds the properties for a particular event, having associations to EMMonitoredProcess,
EMEventAttribute and EMEventPayload. EMMonitoredProcess identifies the process to which a set of events
belong.
You can get detailed information about the entity properties from the OData API dictionary or by exposing the
entity metadata. To do this, use the following query https://<hostname>/odata/v2/Entity('<Your
Entity')?$format=json
Note
The key for an event entity EMEvent is its eventId, which is generated when an event is processed and inserted
into the database table. The event is identified by its eventId. In the example request below, the eventId=14,
which identifies an event with eventId=14 and sends the payload for that event in the response.
Operation GET
URI http://<Hostname>/odata/v2/
EMMonitoredProcess(processType=<processTyp
e>,processDefinitionId=<process Definition
Id>, processInstanceId=<process instance
id>)?$format=json
Response
Sample Code
{
"d": {
"__metadata": {
"uri": "https://localhost:443/odata/v2/
EMMonitoredProcess(processDefinitionId='API_check',processInstanceId='1594544',pro
cessType='SCHEDULED_JOB')",
"type": "SFOData.EMMonitoredProcess"
},
"processType": "SCHEDULED_JOB",
"processInstanceId": "1594544",
"processDefinitionId": "API_check",
"hasErrors": null,
"processInstanceName": "API_checkin",
"lastEventTime": "/Date(1479184572110+0000)/",
"moduleName": null,
"hasWarnings": null,
"firstEventTime": "/Date(1479184572110+0000)/",
"monitoredProcessId": "1262",
"processDefinitionName": "API_Checking",
"coRelatorId": "1",
"processState": "UNKNOWN"
}
}
● processState
● firstEventTime
● lastEventTime
Additional Information
The EMMonitoredProcess entity is a child entity. The EMEvent entity is its parent entity.
Related Information
Coding Samples
Any software coding and/or code lines / strings ("Code") included in this documentation are only examples and are not intended to be used in a productive system
environment. The Code is only intended to better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and
completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, unless damages were caused by SAP
intentionally or by SAP's gross negligence.
Accessibility
The information contained in the SAP documentation represents SAP's current view of accessibility criteria as of the date of publication; it is in no way intended to be a
binding guideline on how to ensure accessibility of software products. SAP in particular disclaims any liability in relation to this document. This disclaimer, however, does
not apply in cases of willful misconduct or gross negligence of SAP. Furthermore, this document does not result in any direct or indirect contractual obligations of SAP.
Gender-Neutral Language
As far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed directly with "you", or a gender-neutral noun (such as "sales
person" or "working days") is used. If when referring to members of both sexes, however, the third-person singular cannot be avoided or a gender-neutral noun does not
exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to ensure that the documentation remains comprehensible.
Internet Hyperlinks
The SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a hint about where to find related information. SAP does not
warrant the availability and correctness of this related information or the ability of this information to serve a particular purpose. SAP shall not be liable for any damages
caused by the use of related information unless damages have been caused by SAP's gross negligence or willful misconduct. All links are categorized for transparency (see:
http://help.sap.com/disclaimer).