You are on page 1of 466

Reference Guide PUBLIC

SuccessFactors Foundation
Document Version: Q1 2017 – 2017-03-14

HCM Suite OData API: Reference Guide


An Entity Reference
Content

1 What's New in This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 About HCM Suite OData APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Using This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

4 OData Metadata Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


4.1 EntitySet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 AssociationSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Property (Deprecated and Removed). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 NavigationProperty (Deprecated). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5 Metadata Enhancements for UI5 Smart Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.6 Retrieving metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

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

6 OData API Version Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84

HCM Suite OData API: Reference Guide


2 PUBLIC Content
7 Role Based Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.1 RBPRole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.2 RBPRule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.3 DynamicGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
7.4 DGPeoplePool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.5 DGFilter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
7.6 DGExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.7 DGField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.8 DGFieldValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.9 DGFieldOperator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.10 RBPBasicPermission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.11 Custom Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103

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

HCM Suite OData API: Reference Guide


Content PUBLIC 3
FormRouteStep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
FormRouteSubStep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Import Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.3 360 Multirater Form Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Form360ReviewContentDetail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Form360RaterSection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Form360Rater. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
FormRaterListSection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
8.4 Succession OData Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
LegacyPositionEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
NominationTarget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Successor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
TalentGraphicOption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
TalentPool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
8.5 Continuous Performance Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
ContinuousPerformanceUserPermission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
GoalDetail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
ActivityFeedback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238
Achievement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
SupporterFeedback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
8.6 Development Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
DevGoalPlanTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
SimpleDevGoal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
8.7 Calibration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
CalibrationTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
CalibrationSession. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
CalibrationSessionSubject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
CalibrationSubjectRank. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

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

HCM Suite OData API: Reference Guide


4 PUBLIC Content
JobAppTemplate_*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
JobApplicationBackgroundCheckRequest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
JobApplicationBackgroundCheckResult. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
9.2 Job Requisition Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
JobRequisition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
JobRequisitionLocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
JobRequisitionOperator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
JobRequisitionPosting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
JobReqQuestions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
JobReqFwdCandidates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
JobReqScreeningQuestion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
JobReqScreeningQuestionChoice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
JobReqTemplate_*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
9.3 Candidate Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Candidate and CandidateBackground_*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
CandidateBackground_Education. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
CandidateBackground_OutsideWorkExperience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
9.4 Job Offer Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
JobOffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357
JobOfferApprover. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
JobOfferTemplate_*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
OfferLetter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369

10 Employee Central. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

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

13 Employee Profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416


13.1 Current Dashboard Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

HCM Suite OData API: Reference Guide


Content PUBLIC 5
13.2 EPProfileView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
13.3 EPProfilePortlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
13.4 EPProfileUserInfoPortlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
13.5 EPPublicProfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
13.6 BadgeTemplates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421
13.7 UserBadges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
13.8 Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

14 Job Profile Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428


14.1 CompetencyEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
14.2 FamilyEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .430
14.3 JobDescTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
14.4 JobProfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
14.5 RoleEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
14.6 SkillEntity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
14.7 SkillProfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442

15 SuccessStoreContent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

16 Theming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.1 ThemeConfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.2 ThemeTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
16.3 ThemeInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

17 Execution Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450


17.1 EMEvent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
17.2 EMEventAttribute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
17.3 EMEventPayload. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
17.4 EMMonitoredProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462

HCM Suite OData API: Reference Guide


6 PUBLIC Content
1 What's New in This Guide

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

What's New Description More Info

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

Returns formatted XML content that


contains all role and group details for the
requested user.

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]

Metadata Enhancements for UI5 Smart


Controls [page 23]

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.

Recruiting APIs Added the following Recruiting Odata ● JobApplicationBackgroundCheck­


API entities: Request [page 303]
● JobApplicationBackgroundCheck­
● JobApplicationBackgroundCheck­ Result [page 305]
Request
● JobApplicationBackgroundCheck­
Result

January 19

HCM Suite OData API: Reference Guide


What's New in This Guide PUBLIC 7
What's New Description More Info

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

Synchronization entities. use and are not publically available.

Q4 2016

Table 2: The following table summarizes changes to this guide for the Q4 2016 release

What's New Description More Info

December 22

External User Erroneous sample code removed. ExternalUser [page 44]

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]

ports ternal users as well as information about ExtAddressInfo [page 49]


the function imports that can be used
ExtEmailInfo [page 49]
with them.
ExtPersonalInfo [page 48]

ExtPhoneInfo [page 49]

Function imports related to external


user:

getPasswordPolicy [page 83]

getUserNameFormat [page 81]

validateExternalUserPassword [page
82]

validateExternalUserIdAndUsername
[page 80]

HCM Suite OData API: Reference Guide


8 PUBLIC What's New in This Guide
What's New Description More Info

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

What's New Description More Info

September 30

HCM Suite OData API: Reference Guide


What's New in This Guide PUBLIC 9
What's New Description More Info

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

HCM Suite OData API: Reference Guide


10 PUBLIC What's New in This Guide
Q2 2016

Table 4: The following table summarizes changes to this guide for the Q2 2016 release

What's New Description More Info

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

HCM Suite OData API: Reference Guide


What's New in This Guide PUBLIC 11
What's New Description More Info

RCM OData API Entities JobApplicationAudit [page 290]

JobApplicationSnapshot_Education
[page 293]

JobApplicationSnapshot_OutsideWor­
kExperience [page 295]

JobApplicationOnboardingData [page
297]

JobApplicationOnboardingStatus [page
298]

JobApplicationQuestionResponse [page
300]

JobReqFwdCandidates [page 336]

JobReqScreeningQuestion [page 338]

JobReqScreeningQuestionChoice [page
340]

CandidateBackground_Education [page
353]

CandidateBackground_OutsideWorkEx­
perience [page 355]

JobOffer [page 357]

JobOfferApprover [page 367]

JobOfferTemplate_* [page 369]

OfferLetter [page 369]

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

HCM Suite OData API: Reference Guide


12 PUBLIC What's New in This Guide
What's New Description More Info

Changes to Performance Management The following property names have Performance Management Form Entities
property names changed in all relevant Performance [page 111]
Management entities:

● objSections is now objectiveSec­


tions
● compSections is now competency­
Sections
● introSection is now introduction­
Section
● userInfoSection is now userInforma­
tionSection
● custSections in now customSec­
tions
● sectIndex is now sectionIndex
● itemConfig is now itemConfigura­
tion
● sectName is now sectionName
● sectDesc is now sectionDescription
● sectWeightKey is now section­
WeightKey
● sectWeight is now sectionWeight
● sectionConfig is now sectionConfi­
guration
● minValue is now minimumValue
● maxValue is now maximumValue
● textMaxLength is now textMaxi­
mumLength
● elist is now elementListValues
● usersSysId is now userId
● id is now fieldId
● mlts is now metricLookupTables
● desc is now description
● longDesc is now longDescription
● stepDesc is now stepDescription
● enforceRTECharLimit is now enfor­
ceRTECharacterLimit
● enforcePlainTextCharLimit is now
enforcePlainTextCharacterLimit
● actionInfo is now actionInformation
● userInfoElements is now userInfor­
mationElements

Changes to Workflow property name ● stepDesc is now stepDescription See the Workflow section

HCM Suite OData API: Reference Guide


What's New in This Guide PUBLIC 13
What's New Description More Info

Changes to Performance Management The following entity names have Performance Management Form Entities
entity names changed: [page 111]

● FormUserInfoSection is now For­


mUserInformationSection
● FormSectionConfig is now For­
mSectionConfiguration
● FormItemConfig is now FormItem­
Configuration
● formRatingScaleEntity is now for­
mRatingScale
● formBehaviorRatingScaleEntity is
now formBehaviorRatingScale

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

Properties: formReviewStartDate, for­


mReviewEndDate, formReviewDueDate,
formLastModifiedDate, creationDate

Q1 2016

Table 5: The following table summarizes changes to this guide for the Q1 2016 release

What's New Description More Info

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.

HCM Suite OData API: Reference Guide


14 PUBLIC What's New in This Guide
What's New Description More Info

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

What's New Description More Information

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]

HCM Suite OData API: Reference Guide


What's New in This Guide PUBLIC 15
2 About HCM Suite OData APIs

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.

Enabling the HCM Suite OData API

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.

API Endpoint URLs

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:

Location Environment Endpoint URL (ODataServiceUrl)

Europe, The Netherlands, Am­ DC2 Production https://api2.successfactors.eu/odata/v2/


sterdam

Europe, The Netherlands, Am­ DC2 SalesDemo https://apisalesdemo2.successfactors.eu/


sterdam odata/v2/

Europe, The Netherlands, Am­ DC2 Preview https://api2preview.sapsf.eu/odata/v2/


sterdam

USA, Arizona, Chandler DC4 Production https://api4.successfactors.com/odata/v2/

USA, Arizona, Chandler DC4 SalesDemo https://apisalesdemo4.successfactors.com/


odata/v2/

USA, Arizona, Chandler DC4 Preview https://api4preview.sapsf.com/odata/v2/

HCM Suite OData API: Reference Guide


16 PUBLIC About HCM Suite OData APIs
Location Environment Endpoint URL (ODataServiceUrl)

n.a DC5 Production https://api5.successfactors.eu/odata/v2/

USA, Virginia, Ashburn DC8 Production https://api8.successfactors.com/odata/v2/

USA, Virginia, Ashburn DC8 SalesDemo https://apisalesdemo8.successfactors.com/


odata/v2/

USA, Virginia, Ashburn DC8 Preview https://api8preview.sapsf.com/odata/v2/

Australia, Sydney DC10 Production https://api10.successfactors.com/odata/v2/

Australia, Sydney DC10 Preview https://api10preview.sapsf.com/odata/v2/

Rot, Germany DC12 Production https://api012.successfactors.eu/odata/v2/

Rot, Germany DC12 Rot https://apirot.successfactors.eu/odata/v2/

Rot, Germany Preview https://api12preview.sapsf.eu/odata/v2/

China, Shanghai DC15 Production https://api15.sapsf.cn/odata/v2/

Germany, Biere DC16 Production https://api16.sapsf.eu/odata/v2/

Canada, Toronto DC17 Preview https://api17preview.sapsf.com/odata/v2/

Canada, Toronto DC 17 Production https://api17.sapsf.com/odata/v2/

Russia, Moscow DC18 Preview https://api18preview.sapsf.com/odata/v2/

Russia, Moscow DC18 Production https://api18.sapsf.com/odata/v2/

HCM Suite OData API: Reference Guide


About HCM Suite OData APIs PUBLIC 17
3 Using This Guide

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.

HCM Suite OData API: Reference Guide


18 PUBLIC Using This Guide
4 OData Metadata Document

This section describes the SuccessFactors OData document.

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).

Cache-Control for OData API $metadata Operations

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.

Metadata document and the API

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.

Development using the metadata document and API

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

HCM Suite OData API: Reference Guide


OData Metadata Document PUBLIC 19
the operations appear to be database centric, the API goes through the application business logic layer. The API
does not go directly against the database, nor does it bypass the business logic layer. The Entities in the API
represent logical application objects familiar to an application user. Note that the Entities do not represent the
actual physical data storage implementation, which may be in a different structure.

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.

Table 8: The EntitySet SF Extension


ATTRIBUTE DEFAULT DESCRIPTION

sap: creatable True Instances of this Entity type can be created.

sap: updatable True Instances of this Entity type can be updated.

sap :upsertable True Instances of this Entity type can be upserted.

sap: deletable True Instances of this entity can be deleted.

Example

Sample Code

<EntitySet Name="PicklistOption" EntityType="SFOData.PicklistOption"


sap:label="PicklistOption" sap:creatable="true" sap:updatable="true"
sap:upsertable="false" sap:deletable="false">

HCM Suite OData API: Reference Guide


20 PUBLIC OData Metadata Document
4.2 AssociationSet

The OData Metadata document for SuccessFactors HCM Suite contains the following information about
AssociationSet.

Table 9: The AssociationSet SF Extension


ATTRIBUTE REQUIRED DEFAULT DESCRIPTION

sap:creatable No True Instances of this relation can


be created.

sap:updatable No True Instances of this relation can


be updated.

sap:upsertable No True Instances of this relation can


be upserted.

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>

4.3 Property (Deprecated and Removed)

These attributes have been deprecated since 1511 and have now been removed (1608). This is for information only.

Table 10: The Property SF Extension


ATTRIBUTE REQUIRED DEFAULT DESCRIPTION COMMENTS

sf:Insertable No True Value of the property This is equivalent to


can be set by client dur­ sap:creatable.
ing insertion; "false if
the value is generated
by server.

sf:Updatable No True Value of the property This is equivalent to


can be updated.. sap:updatable.

sf:Upsertable No True Value of the property


can be upserted.

sf:Required No False Indicate the property is


required during inser­
tion.

HCM Suite OData API: Reference Guide


OData Metadata Document PUBLIC 21
ATTRIBUTE REQUIRED DEFAULT DESCRIPTION COMMENTS

sf:Selectable No True Indicate the property


can be used in
$select.

sf:Sortable No False Indicate the property This is equivalent to


can be used in sap:sortable.
$orderby.

Example

<Property Name="status" Type="Edm.String" Nullable="true"


sf:Insertable="true" sf:Updatable="true" sf:Upsertable="true"
sf:Selectable="true" sf:Sortable="true" sf:Filterable="true"
MaxLength="9">

4.4 NavigationProperty (Deprecated)

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.

Table 11: The NavigationProperty SF Extension


ATTRIBUTE REQUIRED DEFAULT DESCRIPTION COMMENTS

sf:Insertable No True Reference of the navi­


gation property can be
set by client during in­
sertion; false if the
value is generated by
server.

sf:Updatable No True Reference of the navi­


gation property can be
updated.

sf:Upsertable No True Reference of the navi­


gation property can be
upserted .

sf:Required No False Indicate that the prop­


erty is required during
insertion

sf:Selectable No True Indicate that the prop­


erty can be used in
$select.

HCM Suite OData API: Reference Guide


22 PUBLIC OData Metadata Document
ATTRIBUTE REQUIRED DEFAULT DESCRIPTION COMMENTS

sf:Sortable No False Indicate the property


can be used in
$orderby.

sf:Filterable No False Indicate the property


can be used in
$filter.

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" />

4.5 Metadata Enhancements for UI5 Smart Controls

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:

Name Required Default Comment

sap:content-version No

sap:semantics No values can be these:

● vcard
● vevent
● vtodo
● parameters
● aggregate
● variant

sap:label No

sap:is-thing-type No false

HCM Suite OData API: Reference Guide


OData Metadata Document PUBLIC 23
Properties

Navigation Properties

Table 13:

Name Display by Default Default Value Equivalent to Comment

sap:creatable No true sf:Insertable Reference of the navi­


gation property can be
set by client during in­
sertion; “false” if the
value is generated by
server

sap:updatable No true sf:Updatable

sap:upsertable No true sf:Upsertable

sap:required No false sf:Required Indicates that the prop­


erty is required during
insertion

sap:visible No true sf:Selectable Indicates that the prop­


erty can be used in $se­
lect

sap:sortable No false sf:Sortable

sap:filterable No false sf:Filterable Indicates that the prop­


erty can be used in $fil­
ter

sap:picklist No null sf:Picklist

Function Imports

Table 14:

Name Display by Default Default Value Comment

sap:action-for No Value must be the name of an


existing entity, such as ‘User’.

sap:label No

HCM Suite OData API: Reference Guide


24 PUBLIC OData Metadata Document
Name Display by Default Default Value Comment

sap:applicable-path No Value must be of a name of


boolean type property of the
entity that action-for de­
scribes, such as ‘male’,which
is a property of ‘User’;

or a name like ‘A/B’, A is a


complex type property of the
entity that action-for de­
scribes and B is a boolean
type property of A.

The property that applicable-


path describes have depend­
ency on the entity that action-
for describes.

Schema

Table 15:

Name Display by Default Default Value Comment

sap:content-version No

EntitySet

Table 16:

Name Display by Default Default Value Comment

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

HCM Suite OData API: Reference Guide


OData Metadata Document PUBLIC 25
Name Display by Default Default Value Comment

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:

Name Required Default Value Comment

sap:content-version No

sap:semantics No

sap:creatable No true

sap:updatable No true

No true

sap:deletable No true

Association

Table 18:

Name Required Default Value Comment

sap:content-version No

sap:semantics No

HCM Suite OData API: Reference Guide


26 PUBLIC OData Metadata Document
Parameter

Table 19:

Name Required Default Value Comment

sap:label No

Annotations (SAP Vocabulary)

Table 20:

Name Required Default Value Comment

ValueList No com.sap.vocabularies.Com­
mon.v1.ValueList

LineItem No com.sap.vocabula­
ries.UI.v1.LineItem

4.6 Retrieving metadata

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.

Sample API Calls

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

HCM Suite OData API: Reference Guide


OData Metadata Document PUBLIC 27
You can use the same URL to query User entity data:

https://<hostname>/odata/v2/User,Photo/User?$format=json&$filter=userId eq ‘cgrant’

HCM Suite OData API: Reference Guide


28 PUBLIC OData Metadata Document
5 Common Entities

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.

To enable query permission:

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.

To enable edit permission:

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.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 29
Operations Allowed

Following operations are supported:

Table 23:
Operation Description

GET Query an attachment record by attachment properties.

PUT Insert a new attachment record.

DELETE Delete an attachment record.

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 }

HCM Suite OData API: Reference Guide


30 PUBLIC Common Entities
API Call Description

POST /odata/v2/upsert Upsert attachments allows you to insert multiple attachments


in a single request. Because replace/merge is not currently
Sample payload: supported, you can take advantage of this API to batch insert
[{ "__metadata" : {"uri" : "Attachment"},
"userId" : "admin", "externalId" : 1,
"fileName" : "f1.jpg", "module" : "CDP",
"description" : "des1", "fileContent" :
"ZHV6aWVsZQ==", "viewable" : true,
"deletable": false },{ "__metadata" :
{"uri" : "Attachment"}, "userId" :
"admin", "externalId" : 12, "fileName" :
"f1.jpg", "module" : "CDP",
"description" : "des1", "fileContent" :
"ZHV6aWVsZQ==", "viewable" : true,
"deletable": false }]

Rules for Inserting Attachments

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:

1. Either userId and externalId is required.


2. File Name is required. The name should be full name including the file type. E.g.: abc.doc
3. Module is required and can only be one of these values:

Table 25:

ApplicationModuleEnum

DEFAULT

COMPENSATIONCOMPENSATION

GOAL_MANAGEMENT

EMPLOYEE_PROFILE

PM360_REVIEW

PERFORMANCE_MANAGER

RECRUITING

SUCCESSION

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 31
ApplicationModuleEnum

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

pdf

csv

HCM Suite OData API: Reference Guide


32 PUBLIC Common Entities
AttachmentFileExtension

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

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 33
AttachmentTypeEnum

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);

return Response.ok(inputStream, mimeType).header("Content-Disposition", "Default"


+ "." + fileExtension).build();
}

You can simply implement the $value extension for Attachment so that you could get the file content directly with
the expected file type.

HCM Suite OData API: Reference Guide


34 PUBLIC Common Entities
5.2 CompetencyRating

This entity updates the competency rating information for a user.

Permissions

Table 29:
Permission Setting

User-based Go to Admin Tools Admin Privilege System


Properties . Select Access to Competency Rating Import API
Admin.

Role-based Go to Admin Tools Manage Permission Roles all_perm


Permission Manage User . Select Access to Competency
Rating Import API Admin.

To enable edit operations, you need to set the following permissions:

Table 30:
Permission Setting

User-based Go to Admin Tools Admin Privilege System


Properties . Select Access to Competency Rating Export API
Admin.

Role-based Go to Admin Tools Manage Permission Roles all_perm


Permission Manage User . Select Access to Competency
Rating Export API Admin.

Required Provisioning Settings

None.

Operations Allowed

The following operations are allowed for the CompetencyRating entity:

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 35
Table 31:
Operation Description

GET Query a competency rating record by rating properties or user


properties.

MERGE Update a competency rating record in database with specified


rating properties.

PUT Replace a competency rating record in database.

UPSERT/POST If the competency rating record does not exist, insert a new
one. Otherwise, update the competency rating record in data­
base.

DELETE Delete a competency rating record.

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:

Navigation Property Related Entity Description

user User This relationship is used to navigate


tothe corresponding user entity

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.

HCM Suite OData API: Reference Guide


36 PUBLIC Common Entities
Table 33:
API Call Description

/odata/v2/CompetencyRating?$filter=guid eq Filter a record.


'1'

/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.

/odata/v2/CompentencyRating POST Insert a record.


{ "userId" : "admin", "type" : 1,
"source" : 2, "module" : 21, "guid" :
"2" }

/odata/v2/CompentencyRating(211509L) POST Merge a record.


Header: X-HTTP-METHOD/MERGE { "rating" :
3.5, "rater" : "admin" }

/odata/v2/CompentencyRating(211509L) PUT Replace a record by ID.


{ "rating" : 3.5, "rater" : "admin",
"formDataId" : 123 }

/odata/v2/upsert POST { "__metadata": Upsert a record (insert case).


{"uri":"CompetencyRating"}, "userId" :
"admin", "type" : 1, "source" : 2,
"module" : 21, "guid" : "2", "rating" :
3.5, "rater" : "admin" }

/odata/v2/upsert POST { "__metadata": Upsert a record (merge case).


{"uri":"CompetencyRating"}, "id" : 211509,
"rating" : 4.5 }

: /odata/v2/upsert POST [ { "__metadata": Upsert batch records (insert case).


{"uri":"CompetencyRating"}, "userId" :
"admin", "type" : 1, "source" : 2,
"module" : 21, "guid" : "2", "rating" :
3.5, "rater" : "admin" }, { "__metadata":
{"uri":"CompetencyRating"}, "userId" :
"admin2", "type" : 1, "source" : 2,
"module" : 21, "guid" : "3", "rating" :
4.5, "rater" : "admin2" } ]

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 37
5.3 Country

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

GET Query a country record.

DELETE Delete a country record.

UPSERT/POST Insert a country record.

Navigation Properties

Table 36:
Navigation Property Related Entity Description

currencyNav/code Currency An association between country and cur­


rency.

currencyNav/effectiveStartDate Currency An association between country and cur­


rency.

mdfSystemRecordStatusNav/key MDFEnumValue An association between Country and


MDFEnumValue.

mdfSystemRecordStatusNav/value MDFEnumValue An association between Country and


MDFEnumValue.

statusNav/key MDFEnumValue An association between Country and


MDFEnumValue.

HCM Suite OData API: Reference Guide


38 PUBLIC Common Entities
Navigation Property Related Entity Description

statusNav/value MDFEnumValue An association between Country and


MDFEnumValue.

Entity Relation Diagram

Use Cases

Table 37:
API Call Description

HTTP method: POST, URL: odata/v2/Country Create a country record.

HTTP method: MERGE, URL: odata/v2/ Update a country record.


Country(code=‘xxx‘,effectiveStartDate=date
time’yyyy-mm-ddT00:00:00‘)

HTTP method: DELETE, URL: odata/v2/ Delete a country record.


Country(code=‘xxx‘,effectiveStartDate=date
time’yyyy-mm-ddT00:00:00‘)

HTTP method: GET, URL: odata/v2/Country Query country records.

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"
}

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 39
},
"currencyNav":{
"__deferred":{
"uri":"https://localhost:443/odata/v2/
Country(code='USA',effectiveStartDate=datetime'2010-06-01T00:00:00')/currencyNav"
}
}
}

5.4 Currency

This entity stores currency information.

Permissions

Table 38:
Permission System Required Setting

Role-based 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 framework for admin use.

Operations Allowed

Table 39:
Operation Description

GET Query a currency record.

DELETE Delete a currency record.

UPSERT/POST Insert a currency record.

Navigation Properties

Table 40:
Navigation Property Related Entity Description

mdfSystemRecordStatusNav/key MDFEnumValue An association between the currency


and the MDFEnumValue.

mdfSystemRecordStatusNav/value MDFEnumValue An association between Currency and


MDFEnumValue.

HCM Suite OData API: Reference Guide


40 PUBLIC Common Entities
Navigation Property Related Entity Description

statusNav/key MDFEnumValue An association between Currency and


MDFEnumValue.

statusNav/value MDFEnumValue An association between Currency and


MDFEnumValue.

Entity Relation Diagram

Use Cases

Table 41:
API Call Description

HTTP method: POST, URL: odata/v2/Currency Create a currency record.

HTTP method: MERGE, URL: odata/v2/ Update a currency record.


Currency(code=‘xxx‘,effectiveStartDate=dat
etime’yyyy-mm-ddT00:00:00‘)

HTTP method: DELETE, URL: odata/v2/ Delete a currency record.


Currency(code=‘xxx‘,effectiveStartDate=dat
etime’yyyy-mm-ddT00:00:00‘)

HTTP method: GET, URL: odata/v2/Currency Query currency records.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 41
5.5 CurrencyConversion

This entity stores the currency conversion information.

Permissions

Table 42:
Permission System Required Setting

Role-based 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 framework for admin use.

Operations Allowed

Table 43:
Operation Description

GET Query a currency conversion record.

DELETE Delete a currency conversion record.

UPSERT/POST Insert a currency conversion record.

Navigation Properties

Table 44:
Navigation Property Related Entity Description

effectiveStatusNav/key MDFEnumValue An association between CurrencyCon­


version and MDFEnumValue.

effectiveStatusNav/value MDFEnumValue An association between CurrencyCon­


version and MDFEnumValue.

exchangeRateTypeNav/externalCode PickListValueV2 An association between CurrencyCon­


version and PickListValueV2.

exchangeRateTypeNav/Pick­ PickListValueV2 An association between CurrencyCon­


ListV2_effectiveStartDate version and PickListValueV2.

exchangeRateTypeNav/PickListV2_id PickListValueV2 An association between CurrencyCon­


version and PickListValueV2.

mdfSystemRecordStatusNav/key MDFEnumValue An association between CurrencyCon­


version and MDFEnumValue.

HCM Suite OData API: Reference Guide


42 PUBLIC Common Entities
Navigation Property Related Entity Description

mdfSystemRecordStatusNav/value MDFEnumValue An association between CurrencyCon­


version and MDFEnumValue.

Entity Relation Diagram

Use Cases

Table 45:
API Call Description

HTTP method: POST, URL: odata/v2/ Create a currency conversion record.


CurrencyConversion

HTTP method: MERGE, URL: odata/v2/ Update a currency conversion record.


CurrencyConversion(code=‘xxx‘,effectiveSta
rtDate=datetime’yyyy-mm-ddT00:00:00‘)

HTTP method: DELETE, URL: odata/v2/ Delete a currency conversion record.


CurrencyConversion(code=‘xxx‘,effectiveSta
rtDate=datetime’yyyy-mm-ddT00:00:00‘)

HTTP method: GET, URL: odata/v2/ Query currency conversion records.


CurrencyConversion

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 43
5.6 ExternalUser

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.

Operations Allowed & Properties

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

Table 46: Request Information

Operation POST

URI http://<Hostname>.com/odata/v2/upsert

Headers http://Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


44 PUBLIC Common Entities
Payload
Sample Code

{
"__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",

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 45
"lastName":"second1",
"middleName":"middle1"
},
"extEmailInfo":[{
"emailAddress":"external1@successfactors.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",
}
]
}

Table 47: Request Information: Upsert External User

Operation Upsert

URI http://<Hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


46 PUBLIC Common Entities
Payload
Sample Code

{
"__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",

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 47
"lastName":"second1",
"middleName":"middle1"
},
"extEmailInfo":[{
"emailAddress":"external1@successfactors.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",
}
]
}

5.7 ExtPersonalInfo

You can use this entity to query personal information about an external user such as first name or last name.

Operations Allowed & Properties

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

HCM Suite OData API: Reference Guide


48 PUBLIC Common Entities
5.8 ExtPhoneInfo

You can use this entity to query information about the phone number of an external user.

Operations Allowed & Properties

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.

Operations Allowed & Properties

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.

Operations Allowed & Properties

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

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 49
5.11 Photo

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

Enable Edit Permission for Photo field and click Done.

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.

REPLACE (PUT) Replaces a photo record in thedatabase.

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.

HCM Suite OData API: Reference Guide


50 PUBLIC Common Entities
Photo Entity Behavior

● 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

photoId The unique ID of the photo.

userId The user ID of the employee photo.

photo base64 encrypted binary data (blob) of the photo.

lastModified The date on which the photo was last modified.

lastModifiedDateTime The date and time, with time zone information when the photo was last modified.

photoType The type of photo.

mimeType The MIME(Multi-Purpose Internet Mail Extensions) Type of the photo.

width The width of the photo.

height The height of the photo.

photoName The name of the photo.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 51
PhotoType Enumerations

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

LIVE_PROFILE 1 180 240 Query, Edit Used as master


copy in user profile
photo. Recom­
mend aspect ratio
is 3:4(w:h) and rec­
ommend minimum
size is 180*240.

ORG_CHART 2 20 27 Query System generated.


Used as org chart
image.

QUICK_CARD 3 60 80 Query System generated.


Used as quick card
of user in V11
theme.

FACE 7 45 60 Query System generated.


Used as quick card
of user in V12
theme.

LIVE_PRO­ 26 60 60 Query System generated.


FILE_SQUARE_60 Used as user pro­
file photo.

LIVE_PRO­ 27 30 30 Query System generated.


FILE_SQUARE_30 Used as user pro­
file photo.

USER_EXPRES­ 14 980 580 Query, Edit Background image


SIVE_PHOTO used in public pro­
file page. It MUST
be a 980*580 im­
age, otherwise Up­
sert operation will
fail. If this photo is
null, API will re­
trieve a random
photo instead. And
if there is no ran­
dom photo, API will
retrieve the default
photo.

Support for Media Resource (MLE)

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

HCM Suite OData API: Reference Guide


52 PUBLIC Common Entities
the OData entity data model, it is an entity type with attribute "m.HasTream" set to True. Sample metadata for an
MLE:

Sample Code

<EntityType Name="Photo" m:HasStream="true">


<Key>
<PropertyRef Name="photoType" />
<PropertyRef Name="userId" />
</Key>
...

<Property...

</Property>
...
</EntityType>

For a media resource entity, $value is supported. A sample query http://your_host/odata/v2/


Photo(photoType=your_type, userId='your_id')/$value returns the media resource (BLOB) with the
corresponding content type in the response header.The content type is the ‘mineType’ property of the Photo
instance.

Use Cases

Table 52:
API Call Description

http://<hostname>/odata/v2/Photo?$top=10 Query top ten photos for information.

http://<hostname>/odata/v2/ Query a single photo with a given key.


Photo(photoType=1,userId='admin')

HTTP Status (Error) Codes

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 User does not exist

400 User is not active

400 Mismatched key

400 Invalid photo type

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 53
Error Code Description

400 Photo record does not exist when an update is performed

400 Photo record already exists when an insert is performed

400 Photo data is empty

400 Photo size is larger than 2 MB

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

Sample JSON with new http codes is:

{
"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
}]
}

HCM Suite OData API: Reference Guide


54 PUBLIC Common Entities
5.12 PickListValueV2
This entity stores the values for pick lists.

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

GET Query a pick list value.

MERGE Update a pick list value.

DELETE Delete a pick list value.

UPSERT/POST Insert a pick list value.

Navigation Properties

Table 56:
Navigation Property Related Entity Description

mdfSystemRecordStatusNav MDFEnumValue An association between PickListV2 and


MDFEnumValue.

statusNav MDFEnumValue An association between PickListV2 and


MDFEnumValue.

Entity Relation Diagram

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 55
Use Cases

Table 57:
API Call Description

HTTP method: POST, URL: odata/v2/ Create a PickListValueV2 record.


PickListValueV2

HTTP method: MERGE, URL: odata/v2/ Update a PickListValueV2 record.


PickListValueV2(id=‘xxx‘,effectiveStartDat
e=datetime’yyyy-mm-
ddT00:00:00‘,externalCode=‘xxxx‘)

HTTP method: DELETE, URL: odata/v2/ Delete a PickListValueV2 record.


PickListValueV2(id=‘xxx‘,effectiveStartDat
e=datetime’yyyy-mm-
ddT00:00:00‘,externalCode=‘xxxx‘)

HTTP method: GET, URL: odata/v2/ Query PickListValueV2 records.


PickListValueV2

5.13 PickListV2

This entity stores pick list information.

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

GET Query a PickListV2.

MERGE Update a PickListV2.

DELETE Delete a PickListV2

HCM Suite OData API: Reference Guide


56 PUBLIC Common Entities
Operation Description

UPSERT/POST Insert a PickListV2.

Navigation Properties

Table 60:
Navigation Property Related Entity Description

values PickListValueV2 An association between PickListV2 and


PickListValueV2

displayOrderNav MDFEnumValue An association between PickListV2 and


MDFEnumValue

statusNav MDFEnumValue An association between PickListV2 and


MDFEnumValue.

Entity Relation Diagram

Use Cases

Table 61:
API Call Description

HTTP method: POST, URL: odata/v2/ Create a PickListV2 record.


PickListV2

HTTP method: MERGE, URL: odata/v2/ Update a PickListV2 record.


PickListV2(id=‘xxx‘,effectiveStartDate=dat
etime’yyyy-mm-ddT00:00:00‘)

HTTP method: DELETE, URL: odata/v2/ Delete a PickListV2 record.


PickListV2(id=‘xxx‘,effectiveStartDate=dat
etime’yyyy-mm-ddT00:00:00‘)

HTTP method: GET, URL: odata/v2/PickListV2 Query PickList records.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 57
5.14 TimeZone

This entity stores time zone information.

Permissions

Table 62:
Permission System Required Setting

Role-based 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 framework for admin use.

Operations Allowed

Table 63:
Operation Description

GET Query a time zone record.

DELETE Delete a time zone record.

UPSERT/POST Insert a time zone record.

Navigation Properties

Table 64:
Navigation Property Related Entity Description

countryNav/code Country An association between TimeZone and


Country.

countryNav/effectiveStartDate Country An association between TimeZone and


Country.

effectiveStatusNav/key MDFEnumValue An association between TimeZone and


MDFEnumValue.

effectiveStatusNav/value MDFEnumValue An association between TimeZone and


MDFEnumValue.

mdfSystemRecordStatusNav/key MDFEnumValue An association between TimeZone and


MDFEnumValue.

mdfSystemRecordStatusNav/value MDFEnumValue An association between TimeZone and


MDFEnumValue.

HCM Suite OData API: Reference Guide


58 PUBLIC Common Entities
Entity Relation Diagram

Use Cases

Table 65:
API Call Description

HTTP method: POST, URL: odata/v2/TimeZone Create a time zone record.

HTTP method: MERGE, URL: odata/v2/ Update a time zone record.


TimeZone(code=‘xxx‘,effectiveStartDate=dat
etime’yyyy-mm-ddT00:00:00‘)

HTTP method: DELETE, URL: odata/v2/ Delete a time zone record.


TimeZone(code=‘xxx‘,effectiveStartDate=dat
etime’yyyy-mm-ddT00:00:00‘)

HTTP method: GET, URL: odata/v2/TimeZone Query time zone records.

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

0 Performance Review Default Category 0

1 Goal Default Category 1

2 360 Default Category 2

3 Compensation Default Category 3

4 Succession Management Default Category 4

5 Recruiting Default Category 5

6 Succession Org Chart Default Category 6

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 59
Category ID Mapping Description Display Order

7 My Team Rater Category 7

8 Business Process Platform Category 8

9 HRIS ACTIONS Category 9

10 Interview Assessment Category 10

11 Offer Letter Category 11

12 Calibration Sessions Category 12

13 Recruiting Events Category 13

14 HRIS Employee Change Requests Category26 14

26 Learning Alert Category 15

15 Assigned Training Category 16

16 Learning Survey Category 17

17 Generic Object Category 18

18 Absence Management Category 19

19 Employee Profile Complete Category 20

20 Onboarding Pending items Category 21

21 Job Profile Category 22

22 Onboarding Meeting Category 23

23 EC alert Category 24

24 IT Category 25

25 Deductions Category 26

27 Onboarding NewHire activity for Manager category 27

Operations Allowed

Table 67:
Operation Description

GET Query the ToDo entity to retrieve information about stored ToDos.

DELETE Delete the selected ToDo.

HCM Suite OData API: Reference Guide


60 PUBLIC Common Entities
Properties

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.

categoryLabel A string label that describes a Todo category name.

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

Entity Relation Diagram

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 61
Use Cases

Table 69:
API Call Description

http://<hostname>/odata/v2/Todo? Simple query


$format=json

http://<hostname>/odata/v2/Todo? Query with a filter


$format=json&$filter=categoryId eq '5'

https://<hostname>/odata/v2/Todo? Query with $orderby


$format=json&$filter=categoryId
in'2'%2C'0'%2C'1'&$orderby=categoryId
%20desc

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"

HCM Suite OData API: Reference Guide


62 PUBLIC Common Entities
},
"categoryId": "10",
"todos": {
"results": [
{
"categoryId": "10",
"completedDate": null,
"dueDate": "/Date(1390971600000)/",
"dueDateOffSet": 0,
"entries": null,
"entryId": 0,
"name": "Please complete this.",
"status": 0,
"statusLabel": null,
"stepDescAlt": null,
"todoItemId": "59",
"url": "https://ex.successfactors.com/sf/recruiting/interviewcentral?
company=myCompany"
}
]
},
"categoryLabel": "Interview Assessment"
},
{
"__metadata": {
"uri": "https://ex.successfactors.com:443/odata/v2/Todo('19')",
"type": "SFOData.Todo"
},
"categoryId": "19",
"todos": {
"results": [
{
"categoryId": "19",
"completedDate": null,
"dueDate": null,
"dueDateOffSet": -2147483648,
"entries": null,
"entryId": 26038,
"name": "Finish Your Profile",
"status": 2,
"statusLabel": "Active",
"stepDescAlt": "EMPFILE_EDU_FINISH_YOUR_PROFILE",
"todoItemId": null,
"url": "https://ex.successfactors.com/sf/liveprofile?
company=myCompany"
}
]
},
"categoryLabel": "Employee Profile Complete"
}
]
}
}

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 63
Response XML Description

Some of the XML tags in the response are described below:

Table 70:
Tag Description

CategoryId This is the ID of the category.

completedDate If applicable,this is the completed date for the Todo item.

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".

status This is the Status Id of the Todo Form.

statusLabel This is the Label associated with the status Id.

stepDescAlt This is the Description of the step.

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.

Deeplink URL Description

Following is the list of deeplink URLs based on applications:

Table 71:
Application To Do Category URL

Learning CATEGORY_ASSIGNED_TRAINING_REQUESTS = "15" /sf/learning?destUrl=https


%3A%2F
%2Fqmallqtp01t07.plateau.co
m%2Flearning%2Fuser
%2Fdeeplink_redirect.jsp...

Learning CATEGORY_LEARNING_SURVEY_REQUESTS = "16" /sf/learning?destUrl=https


%3A%2F
%2Fqmallqtp01t07.plateau.co
m%2Flearning%2Fuser
%2Fdeeplink_redirect.jsp...

Learning CATEGORY_LMS_LEARNING_ALERT = "26" /sf/learning?destUrl=https


%3A%2F
%2Fqmallqtp01t07.plateau.co
m%2Flearning%2Fuser
%2Fdeeplink_redirect.jsp...

HCM Suite OData API: Reference Guide


64 PUBLIC Common Entities
Application To Do Category URL

EC CATEGORY_HRIS_ACTIONS = "9" /sf/liveprofile

EC CATEGORY_HRIS_EMP_CHANGE_REQUESTS = "14" /sf/


hrisworkflowapprovelink?
workflowRequestId=V2-FF...

The value is Null on category level. The


URL is shown only on enrty level.

EC CATEGORY_GENERIC_OBJECT_CHANGE_REQUESTS = /sf/
"17" hrisworkflowapprovelink?
workflowRequestId=V2-FF...

The value is Null on category level. The


URL is shown only on enrty level.

EC CATEGORY_ABSENCE_MANAGEMENT_REQUESTS = /sf/
"18" hrisworkflowapprovelink?
workflowRequestId=V2-FF...

The value is Null on category level. The


URL is shown only on enrty level.

EC CATEGORY_IT_DECLARATION_REQUESTS= "24" /sf/


hrisworkflowapprovelink?
workflowRequestId=V2-FF...

The value is Null on category level. The


URL is shown only on enrty level.

EC CATEGORY_DEDUCTION_REQUESTS= "25" /sf/


hrisworkflowapprovelink?
workflowRequestId=V2-FF...

The value is Null on category level. The


URL is shown only on enrty level.

EP CATEGORY_EMPLOYEE_PROFILE_COMPLETE = '19' /sf/liveprofile

Onboarding CATEGORY_ONBOARDING_PENDING_ITEMS = "20" /sf/onboarding

Onboarding CATEGORY_ONBOARDING_PENDING_NEWHIRE_ACTIV­ /sf/onboardring


ITIES_FOR_MANAGER = "27"

RCM CATEGORY_JOB_PROFILE_CHANGE_REQUESTS = "21" /sf/recruiting/


jobreqsummary

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

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 65
employee data. The updates you enter into your HRIS will be passed to SuccessFactors HCM Suite, eliminating
duplicate entries between both systems.

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

INSERT Manage Users Employee Import

MERGE and REPLACE Manage Users Employee Import

UPSERT Manage Users Employee Import

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.

HCM Suite OData API: Reference Guide


66 PUBLIC Common Entities
API Operation Permission Required

QUERY Manage Users Employee Export

An administrator with Employee Export and Employee Import permission who is not on a RBP system will have all
corresponding query and edit permissions.

Non Administrative 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.

User Entity Field Configuration and Permissons

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

7 Mandatory - property must contain a value (indicates writea­


ble).

3 Optional - property may contain a null value (indicates writea­


ble).

1 Read-only - property cannot be changed.

0 Hidden - property should not be visible on user interfaces.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 67
You can use the following call to retrieve field permission information:

https:<hostname>/odata/v2/User('cgrant')?$expand=userPermissionsNav

A sample response is below :

<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.

Import-Export of Employee Data using the OData API

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]

HCM Suite OData API: Reference Guide


68 PUBLIC Common Entities
File-based process OData process

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.

For exceptions to date formats, refer to the documentation for


the specific Entity.

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.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 69
Operations Allowed

Table 75:
Operation Description

Query You can query the User Entity using keywords or a custom
query.

Merge/Replace The Update operation and either Replace existing data or


merge new data with the already existing data.

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.

updateLink You can update existing links by either replacing or merging


them.

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

userId User Id of the given user.

addressLine1 Address for the given user.

addressLine2 Address for the given user.

addressLine3 Address for the given user.

benchStrength Bench Strength of the user.

bonusBudgetAmount Bonus budget amount for the user.

bonusTarget Bonus target for the user.

businessPhone Business Phone of the user.

businessSegment Business segment of the user

cellPhone Cell phone number for the user

HCM Suite OData API: Reference Guide


70 PUBLIC Common Entities
Property Description

citizenship Citizenship of the user.

city Address City for the user.

compensationBonusEligible Information about user compensation.

compensationEligible Information about user compensation.

compensationReadOnly Information about user compensation.

compensationSalaryEligible Information about user compensation.

compensationSalaryRateType Information about user compensation.

compensationSalaryRateUnits Information about user compensation.

compensationStockEligible Information about user compensation.

competency Competency of the given user.

country Country for the given user.

criticalTalentComments Comments about the given user's talent.

custom01 Custom field.

custom02 Custom field.

custom03 Custom field.

custom04 Custom field.

custom05 Custom field.

custom06 Custom field.

custom07 Custom field.

custom08 Custom field.

custom09 Custom field.

custom10 Custom field.

custom11 Custom field.

custom12 Custom field.

custom13 Custom field.

custom14 Custom field.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 71
Property Description

custom15 Custom field.

dateOfBirth Date of birth of the given user.

dateOfCurrentPosition Date when the user was assigned current position.

dateOfPosition

defaultLocale Default locale of the user.

department Department of the user.

division Division information for the user.

email email address of the user.

empId Employee Id of the user.

ethnicity Ethnicity information of the user.

fax Fax number for the user.

finalJobCode Job code for the user.

finalJobFamily Job family information for the user.

finalJobRole Job role for the user.

firstName First name of the user.

futureLeader

hireDate Hire date for the user.

homePhone Home phone number for the user.

impactOfLoss Loss impact of the user.

impactOfLossComments Comments about loss impact of the user.

issueComments

jobCode Job code for the user position.

jobFamily Job family for the user position.

jobLevel Job level. for the user position.

jobRole Job role for the user position.

jobTitle Job title for the user position.

HCM Suite OData API: Reference Guide


72 PUBLIC Common Entities
Property Description

keyPosition User information.

lastModified User information.

lastModifiedDateTime The date and time, with time zone information when the user
information was last modified.

lastName User information.

lastReviewDate User information.

level User information.

localCurrencyCode User information.

location User information.

lumpsum2Target User information.

lumpsumTarget User information.

married User information.

matrixManaged User information.

meritEffectiveDate User information.

meritTarget User information.

mi User information.

minority User information.

nationality User information.

newToPosition User information.

nickname User information.

objective User information.

origHireDate User information.

password User information.

payGrade User information.

performance User information.

potential User information.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 73
Property Description

promotionAmount User information.

raiseProrating User information.

reasonForLeaving User information.

reloComments User information.

reloLocation User information.

reloWilling User information.

reviewFreq User information.

riskOfLoss User information.

salary User information.

salaryBudgetExtra2Percentage User information.

salaryBudgetExtraPercentage User information.

salaryBudgetFinalSalaryPercentage User information.

salaryBudgetLumpsumPercentage User information.

salaryBudgetMeritPercentage User information.

salaryBudgetPromotionPercentage User information.

salaryBudgetTotalRaisePercentage User information.

salaryLocal User information.

salaryProrating User information.

salutation User information.

seatingChart User information.

serviceDate User information.

ssn User information.

state User information.

status User information. Supports support the use of "t / f / T / F" or


"active / inactive / active_external / inactive_external" as the
values.

stockBudgetOptionAmount User information.

HCM Suite OData API: Reference Guide


74 PUBLIC Common Entities
Property Description

stockBudgetOther1Amount User information.

stockBudgetOther2Amount User information.

stockBudgetOther3Amount User information.

stockBudgetStockAmount User information.

stockBudgetUnitAmount User information.

suffix User information.

sysCostOfSource User information.

sysSource User information.

sysStartingSalary User information.

talentPool User information.

timeZone User information.

title User information.

username User information.

veteranDisabled User information.

veteranMedal User information.

veteranProtected User information.

veteranSeparated User information.

zipCode User information.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 75
Entity Relation Diagram

Navigation Properties

Table 77:
Navigation Property Description

customManager Navigation property for User entity.

empInfo Navigation property for User entity.

Hr Navigation property for User entity.

Manager Navigation property for User entity.

matrixManager Navigation property for User entity.

proxy Navigation property for User entity.

secondManager Navigation property for User entity.

competencyRatingNav Navigation property for User entity.

directReports These five properties do not have separate field permissions in


the RBP role. They always be show up in pairs. For example,
hrReports
once ‘Manager’ permission is checked, then directReports for
secondReports that user are visible to the user as well. The relationship are:

customReports ● Manager- directReports


● Hr – hrReports
matrixReports
● Second Manager – secondReports
● Custom Manager – customReports
● Matrix Manager – matrixReports

HCM Suite OData API: Reference Guide


76 PUBLIC Common Entities
Use Cases

Table 78:
API Call Description

http://<hostname>/odata/v2/User? Query for direct reports of a manager


$filter=manager/userId eq ‘xxx’

http://<hostname>/odata/v2/User? Query for changes in the last 24 hours (delta extracts)


$filter=lastModified > ‘time format as
2000-12-12T12:00’

http://<hostname>/odata/v2/User? Compound query for User and Employment information.


$expand=empInfo

5.16.1 Business Rules for API Based File Transfers

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.

Rules for Strings

● 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.

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 77
Rules for Fields

● 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.

Rules for Administration

● 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

HCM Suite OData API: Reference Guide


78 PUBLIC Common Entities
HRIS. If a field is editable in the user interface, and you also import this field from your HRIS, any edits a user
has made in the user interface will be overwritten by the next data load from the HRIS.
● The individual fields in the employee record can also be hidden during the initial setup so they will not display
in the Personal Information screen. This means that the data transferred from the HRIS and associated with
each individual can be used by more than one process, but the data won't be displayed on the Personal
Information when accessed by the employee.
● If the Department, Division or Location fields are not used, do not include them in the import file. The system
will automatically assign N/A values in these fields. Security and report filtering settings are tied to these
values..Having a common value such as N/A entered in those fields allows for the broadest reporting access to
the data. Leaving it blank will limit reporting and security capabilities.
● You can define more custom fields to import additional information (FLSA code, and others) using what
Userinfo custom fields. However, this data does not appear anywhere in the system, other than in the
Employee Profile or in custom fields in a form. This data can also be used in the Employee Scorecard and
Organization Chart. For more information, see [add link to topic] .
● For both the Manager and Custom Manager hierarchies, the individual at the top of the employee hierarchy
(for example, the CEO) must have the value of NO_MANAGER (in all caps) listed in the managerExternalId
field,so that the system knows how to treat this individual in the routing chain. This value must be exactly
NO_MANAGER. Other values, such as NO_MGR will fail.
● Because the data load validation process validates the managerExternalId and hrExternalId against the
existing database, it is strongly recommended that new employees be added to the beginning of the data load
file. This will allow the new employee to be loaded first in case the new employee is a manager or HR
representative referenced later in the data file. This will improve processing speed.

Employee Relation Fields

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

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 79
in time from daily changes, usually to allow a focal review process against an unchanging employee hierarchy.
The API provides only one field for this relationship, the secondManagerExternalId field, which maps to the
externalId of the user record for the second manager.
4. The Matrix Manager and Custom Manager relationships are many-to-many, meaning a user can have multiple
matrix or custom managers. The fields are matrixManagerExternalIds and
customManagerExternalIds, which map to the User.externalId values of the intended matrix and
custom manager user records. The syntax for these fields is to separate the manager IDs with pipe (|)
characters. For example: gsmith624|sholmes423|smaddox666".

Best Practice Security Integration Recommendations

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 Function Imports for Common Entities

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

Operations Allowed and Parameters

HCM Suite OData API: Reference Guide


80 PUBLIC Common Entities
The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Importsfor
validateExternalUserIdAndUsername.

Use Cases

Table 79: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
validateExternalUserIdAndUsername ?
userId='<userId>'&username='<username>'&lo
cale='<locale>'

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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

ExternalUser [page 44]

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.

Operations Allowed and Parameters

The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Importsfor
getUserNameFormat.

Use Cases

Table 80: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
getUserNameFormat?locale='<locale>'

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 81
Headers Authorization: Basic <Base 64 encoded (“user@com­
pany:password”)>

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

ExternalUser [page 44]

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.

Operations Allowed and Parameters

The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Imports for
validateExternalUserPassword.

Use Cases

Table 81: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
validateExternalUserPassword ?
userId='<userId>'&password='<password>'&lo
cale='<locale>'

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Description Checks if the password for the external user is valid. Locale is
used by the message in the response.

Related Information

ExternalUser [page 44]

HCM Suite OData API: Reference Guide


82 PUBLIC Common Entities
5.17.4 getPasswordPolicy

You can use this function import to retrieve the password policy that is defined in SAP SuccessFactors HCM Suite.

Operations Allowed and Parameters

The allowed operations and parameters are listed in the OData API dictionary in the section Fuction Imports for
getPasswordPolicy.

Use Cases

Table 82: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
getPasswordPolicy?locale='<locale>'

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Description Retrieves the password policy that is defined in SAP Success­


Factors HCM Suite.

Related Information

ExternalUser [page 44]

HCM Suite OData API: Reference Guide


Common Entities PUBLIC 83
6 OData API Version Control

In SAP SuccessFactors, you can apply version control to your OData APIs

Permissions in Admin Center

Table 83: Permissions for OData API Version Control

Permission Type Permission Setting From Admin Center, choose

RBP Access to OData API Version Control Manage Permission Roles then

Administrator Permissions Manage

Integration Tools Access to OData API

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.

HCM Suite OData API: Reference Guide


84 PUBLIC OData API Version Control
7 Role Based Permissions

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.

The Role Based Permissions OData APIs enable you to:

● Query for a list of roles


● Query for a list of permission groups
● Create or delete a role
● Add a new permission group using named users, or criteria (dept = 1,2,3)
● Remove a user from a permission group
● Grant a role to a permission group.
● Remove a role from a permission group
● Query for a list of permitted fields in a dynamic group, and the permitted operators for each field

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”.

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 85
Entity Relation Diagram for Dynamic Groups

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

HCM Suite OData API: Reference Guide


86 PUBLIC Role Based Permissions
Operations Allowed

Table 85:
Operation Description

QUERY Query a permission role.

UPSERT Insert/update a permission role..

DELETE Delete a permission role.

Navigation Properties

Table 86:
Navigation Property Related Entity Description

ruleId/rules RBPRule This is a navigation property for the


RBPRules entity. There can be many
rules for a single role.

permissions BasicPermission This is a navigation property to basic


permission entry. There can be many Ba­
sic permissions for a single role.

Use Cases

Table 87:
API Call Description

https://<hostname>/odata/v2/RBPRole(1)? List rules for a given role.


$format=json&$expand=rules

https://<hostname>/odata/v2/upsert Create a new permission role.

A JSON example that allows permission roles to be added is


{ "__metadata": { "uri":
"RBPRole(2501L)" }, "roleName":
"testrole3", "roleDesc": "testrole3" }

Also see RBPBasicPermission [page 101]

DELETE https://<hostname>/odata/v2/ Delete a specific role.


RBPRole(111)

https:<hostname>/odata/v2/ Query permission roles whose access group includes the given
getUserRolesByUserId?userId=’cgrant1’ user.

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 87
7.2 RBPRule

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.

HCM Suite OData API: Reference Guide


88 PUBLIC Role Based Permissions
Property Description

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

accessGroups/groupID DynamicGroup A navigation property that lists the ac­


cess groups assigned to this role.

roles/roleId RBPRole A navigation property that links back­


wards to the role(s) that use this rule.

targetGroups/groupID DynamicGroup A navigation property that lists the target


groups assigned to this role.

Use Cases

Table 92:
API Call Description

http://<hostname>/odata/v2/RBPRule(1)? List roles for a rule.


$format=json&$expand=roles

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 89
Code Examples

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

HCM Suite OData API: Reference Guide


90 PUBLIC Role Based Permissions
Operations Allowed

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.

groupName This is a user provided name for the group.

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.)

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 91
Navigation Properties

Table 96:
Navigation Property Related Entity Description

dgExcludePools/peoplePoolId DGPeoplePool This navigation property is a list of the


people pools that make up the exclude
rules. There can be a maximum of three
exclude pools. Users that match the ex­
clude pools criteria are guaranteed to be
excluded from the group definition. Dy­
namic groups first evaluate all members
in the include pools, and then remove all
members found in the exclude pools.

dgIncludePools/peoplePoolId DGPeoplePool This navigation property is a list of the


people pools that make up the include
rules. There can be a maximum of three
include pools.

Use Cases

Table 97:
API Call Description

https:<hostname>/odata/v2/DynamicGroup? Query a Dynamic Group with username as a filter field, set to


$format=json&$filter = username eq "cgrant".
'cgrant'

https://<hostname>/odata/v2/DynamicGroup? Query a Dynamic Group for all permission groups.


$filter=groupType eq ‘permissionGroup’

Code Examples

The following is an example for upserting a dynamic group:

Request: POST /odata/v2/upsert

Request Body:

{
"__metadata": {
"uri": "DynamicGroup"
},
"groupName": "Division-Industries20",
"groupType": "permission",
"dgIncludePools": {
"__metadata": {
"uri": "DGPeoplePool"
},
"filters": [
{

HCM Suite OData API: Reference Guide


92 PUBLIC Role Based Permissions
"__metadata": {
"uri": "DGFilter"
},
"field": {
"__metadata": {
"uri": "DGField"
},
"name": "user",
"allowedOperators": {
"__metadata": {
"uri": "DGFieldOperator"
},
"token": "aa"
}
},
"expressions": {
"__metadata": {
"uri": "DGExpression"
},
"operator": {
"__metadata": {
"uri": "DGFieldOperator"
},
"token": "eq"
},
"values": {
"__metadata": {
"uri": "DGFieldValue"
},
"fieldValue": "testUser100"
}
}
}
]
}
}

7.4 DGPeoplePool

This entity represents a people pool definition.

Permissions

Table 98:
Permission System Required Setting

Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 93
Operations Allowed

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

filters/filterId DGFilter A navigation property that lists the filter


fields used in this people pool definition.

7.5 DGFilter

This entity represents filters for a given people pool.

Permissions

Table 102:
Permission System Required Setting

Role-based Go to Admin Tools Set User Permissions Manage Role-Based Permission Access

HCM Suite OData API: Reference Guide


94 PUBLIC Role Based Permissions
Operations Allowed

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

expressions/expressionID DGExpression A navigation property that defines the


logical expression associated attached
to this filter.

field/name DGField A navigation property that lists all of the


allowable fields can be used as filters for
Dynamic Group people pools in your in­
stance.

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 95
7.6 DGExpression

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

operator/token DGFieldOperator This navigation property represents the


DGOperator entity

HCM Suite OData API: Reference Guide


96 PUBLIC Role Based Permissions
Navigation Property Related Entity Description

values/fieldValue DGFieldValue This navigation property contains the list


of values in the expression.

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

QUERY Query a given DGField.

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.

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 97
Property Description

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

allowedOperators/token DGFieldOperator This is a navigation property to the allow­


able operators on this field.

Use Cases

Table 114:
API Call Description

http://<hostname>/odata/v2/ Get DGField and expand the supported DGField operators.


DGField('std_hireDate')?
$expand=allowedOperators

7.8 DGFieldValue

An entity that describes field values for an expression.

Permissions

Table 115:
Permission System Required Setting

Role-based Admin Tools Set User Permissions Manage Role-Based Permission Access

HCM Suite OData API: Reference Guide


98 PUBLIC Role Based Permissions
Operations Allowed

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

fieldValuePickListOption/id PicklistOption DGField is picklisted with the id con­


tained in the DGField.picklistId field. The
values in DGFieldValue object are ids
from the PicklistOption entity.

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 99
7.9 DGFieldOperator

An entity that describes the operator for a dynamic group field.

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.

UPSERT(POST) Insert using an expanded insert or a replace operation on the


DynamicGroup entity.

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.

HCM Suite OData API: Reference Guide


100 PUBLIC Role Based Permissions
7.10 RBPBasicPermission

This entity is a wrap of Permission table in the database..

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

QUERY Query a permission.

POST Set a permission.

Properties

Table 124:
Property Description

permissionID (Key)Permission Id, the sequence id in permission table.

permissionType Permission_Type column

permissionStringValue Permission_string_value column

permissionLongValue Permission_long_value column

Code Examples

Get permissions for a given RBPRole Id


Request: <hostname>/odata/v2/RBPRole(82)?$expand=permissions

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 101
Response:

{
"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,

}]
}
}
}

Set permission for a specific role:

Request: Request:<hostname>/odata/v2/upsert

Post Body:

{
"__metadata": {
"uri": "RBPRole"
},
"roleName": "TestRole",
"roleDesc": "TestRole",
"permissions": {
"__metadata": {
"uri": "RBPBasicPermission(55)"
}
}
}

Another example of setting a specific permission role:

{
"__metadata": {
"uri": "RBPRole(1941L)"
},
"roleName": "jdm02",
"roleDesc": "",
"permissions": [
{
"__metadata": {
"uri": "RBPBasicPermission(82)"
}
},
{
"__metadata": {
"uri": "RBPBasicPermission(5432)"
}

HCM Suite OData API: Reference Guide


102 PUBLIC Role Based Permissions
}
]
}

7.11 Custom Functions

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.

Table 125: Custom Functions for Dynamic Groups


Function Parameter(s) Return Type Description

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’

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 103
Function Parameter(s) Return Type Description

checkUserPermission accessUserId Boolean (True Return true/false whether access user have permission or
(String) or False) not.

permType ● targetUserId is optional, when we need to specify one tar­


( String) get user in the request, we need to add this parameter.
● If the target user is inactive, you need to also pass the in­
permString­
clude InactiveUser parameter with its its value set to
Value ( String)
true.
permLongValue ● If the target user is a TBH user, you need to also pass the
(Int) includeTBHUser parameter with its its value set to true.

targetUserId Request Samples:


(String)
https://example.com/odata/v2/
includeInacti­ checkUserPermis sion?
veUser (Boo­
accessUserId='userA'&permType='user_admin
lean)
'&permStrin
includeTB­ gValue='reset_account_user_admin'&permLon
HUser (Boo­ gValue=- 1L&targetUserId='active1'
lean)
https://example.com/odata/v2/
checkUserPermis sion?
accessUserId='userA'&permType='user_admin
'&permStrin
gValue='reset_account_user_admin'&permLon
gValue=-
1L&targetUserId='inactive1'&includeInacti
veUser=true

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

HCM Suite OData API: Reference Guide


104 PUBLIC Role Based Permissions
Function Parameter(s) Return Type Description

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.

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 105
Function Parameter(s) Return Type Description

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>"
}
}

HCM Suite OData API: Reference Guide


106 PUBLIC Role Based Permissions
Supported Fields for getExpandedDynamicGroupById

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

Sample JSON DynamicGroup Definition

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"},

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 107
"fieldOperatorName":"ne",
"fieldOperatorLabel":"!="
},
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"in",
"fieldOperatorLabel":"In"
},
]
},
"expressions":[
{
"__metadata":{"uri":"DGExpression()"},
"operator":{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"eq",
"fieldOperatorLabel":"="
},
"values":[
{
"__metadata":{"uri":"DGFieldValue()"},
"fieldValue":"cgrant"
}
]
},
{
"__metadata":{"uri":"DGExpression()"},
"operator":{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"eq",
"fieldOperatorLabel":"="
},
"values":[
{
"__metadata":{"uri":"DGFieldValue()"},
"fieldValue":"athompson"
}
]
}
]
}
]
}
],
"excludePools":[]
}

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",

HCM Suite OData API: Reference Guide


108 PUBLIC Role Based Permissions
"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"},
"fieldOperatorName":"ne",
"fieldOperatorLabel":"!="
},
{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"in",
"fieldOperatorLabel":"In"
},
]
},
"expressions":[
{
"__metadata":{"uri":"DGExpression()"},
"operator":{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"eq",
"fieldOperatorLabel":"="
},
"values":[
{
"__metadata":{"uri":"DGFieldValue()"},
"fieldValue":"Finance"
}
]
},
{
"__metadata":{"uri":"DGExpression()"},
"operator":{
"__metadata":{"uri": "DGFieldOperator"},
"fieldOperatorName":"eq",
"fieldOperatorLabel":"="
},
"values":[
{
"__metadata":{"uri":"DGFieldValue()"},
"fieldValue":"Sales"
}
]
}
]

HCM Suite OData API: Reference Guide


Role Based Permissions PUBLIC 109
}
]
}
],
"excludePools":[]
}

HCM Suite OData API: Reference Guide


110 PUBLIC Role Based Permissions
8 Talent

8.1 Performance Management Form Entities

Talent form APIs provide the ability to query and update forms that are created for Performance Management v12
Acceleration (or) 360 reviews.

Talent form OData APIs enable you to:

● Query a list of form templates.


● Query list of user form folders.
● Query form details of PM v12 Acceleration. You can query details of the User Info section, Objective Section,
Competency Section, Summary section, Signature section in the form.
● Update rating, comments, and custom element in the sections of PM v12 Accleration forms. You can update
the rating, comments, and customer element for the sections: Objective Section, Competency Section,
Summary section, Signature section.

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:

Permission System Required Settings

Provisioning Go to Provisioning Company Settings Performance

Appraisal Smart Form

Go to Provisioning Company Settings PM v12

Acceleration

Go to Provisioning Company Settings 360 Multi-

Rater

HCM Suite OData API: Reference Guide


Talent PUBLIC 111
Permissions

As long as you have the following Odata API access permissions, you can access your own folders and forms.

Table 127:

Permission System Required Settings

Role based Go to Admin Center Manage Permission Roles Manage


Integration Tools , and select Admin access to OData API

User based Go to Admin Privilege Integration Tools , and select


Admin access to OData API

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:

Permission System Required Settings

Role based Go to Admin Center Manage Permission Roles Manage


Documents , and select Admin Access to Forms OData API.

User based Go to Admin Privilege Manage Documents , and select


Admin Access to Forms OData API

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

GET Query meta information for a form.

HCM Suite OData API: Reference Guide


112 PUBLIC Talent
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

Table 130: Request Information

Operation GET

URI http://<hostname>/odata/v2/FormHeader?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"

HCM Suite OData API: Reference Guide


Talent PUBLIC 113
}
}
}

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

GET Query form folders.

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

Table 132: Request Information

Operation GET

URI http://<hostname>/odata/v2/FormFolder?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


114 PUBLIC Talent
Response

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"

HCM Suite OData API: Reference Guide


Talent PUBLIC 115
},
"folderId": "383",
"folderName": "Folder1",
"userId": "hcheng",
"forms": {
"__deferred": {
"uri": "https://<hostname>//odata/v2/FormFolder(383L)/forms"
}
}
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/FormFolder(382L)",
"type": "SFOData.FormFolder"
},
"folderId": "382",
"folderName": "gggg1",
"userId": "hcheng",
"forms": {
"__deferred": {
"uri": "https://<hostname>//odata/v2/FormFolder(382L)/forms"
}
}
}
]
}

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

GET Query basic information of a form content.

HCM Suite OData API: Reference Guide


116 PUBLIC Talent
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

Table 134: Request Information

Operation GET

URI http://<hostname>/odata/v2/FormContent?
$format=json

URI http://<hostname>/odata/v2/ /
FormContent(formContentId=527L,formDataId=
170L)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 117
}

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

Use Cases: Query different sections of a specific form

Table 136: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormPMReviewContentDetail
(formContentId=17617L,formDataId=7182L)?
$format=json

HCM Suite OData API: Reference Guide


118 PUBLIC Talent
URI http://<hostname>/odata/v2/
FormPMReviewContentDetail
(formContentId=17617L,formDataId=7182L) ?
$format=json&$expand=
formConfiguration,customSections

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": {

HCM Suite OData API: Reference Guide


Talent PUBLIC 119
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)/
competencySections"
}
},
"objectiveSections": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)/
objectiveSections"
}
},
"userInformationSection": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormPMReviewContentDetail(formContentId=17617L,formDataId=7182L)/
userInformationSection"
}
}
}
}

Use Cases: Upsert self section comments of competency section present in a


PM review content entity

Table 137: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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)",

HCM Suite OData API: Reference Guide


120 PUBLIC Talent
"type": "SFOData.FormUserRatingComment"
},
"commentKey": "wf_sect_4_sc_ user1_c",
"comment": "Section comment for role specific competencies by
manager"
}
},
{
"__metadata": {
"uri":
"FormCompetencySection(formContentId=17549L,formDataId=7182L,sectionIndex=3)",
"type": "SFOData.FormCompetencySection"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17549L,formDataId=7182L,itemId=-1L,ratingType
='na',sectionIndex=3,userId=' user1')",
"type": "SFOData.FormUserRatingComment"
},
"commentKey": "wf_sect_3_sc_ user1_c",
"comment": "Section comment for core values 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
}
]
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 121
8.1.5 FormTemplate

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

GET Query basic information for a form template.

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

Table 139: Request Information

Operation GET

URI http://<hostname>/odata/v2/FormTemplate?
$format=json

URI http://<hostname>/odata/v2/FormTemplate
(116L)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


122 PUBLIC Talent
Response

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 123
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: Query FormObjective

Table 141: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDat
aId=7153L,itemId=4930L,sectionIndex=2)?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": {

HCM Suite OData API: Reference Guide


124 PUBLIC Talent
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
tasks"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
othersRatingComment"
}
},
"itemConfiguration": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
itemConfiguration"
}
},
"objectiveDetails": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
objectiveDetails"
}
},
"customElement": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
customElement"
}
},
"milestones": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
milestones"
}
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
selfRatingComment"
}
},
"targets": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
targets"
}
},
"metricLookupTables": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
metricLookupTables"
}
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 125
Use Cases: Upsert FormObjective

Table 142: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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')",

HCM Suite OData API: Reference Guide


126 PUBLIC Talent
"type": "SFOData.FormUserRatingComment"
},
"ratingKey": "wf_sect_2_o_1_cmt_manager1_",
"rating": "3.0",
"commentKey": "wf_sect_2_o_1_cmt_manager1_c",
"comment": "Deepa Manager comment 123"
}
}
]
}
]
}

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].

HCM Suite OData API: Reference Guide


Talent PUBLIC 127
Operations Allowed

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

Table 144: Request Information

Operation GET

URI http://<hostname>/odata/v2/FormObjective
(formContentId=728L,formDataId=955L,
sectionIndex=2,itemId=502L)?$expand=
objectiveDetails,targets,mlts,tasks,milest
ones

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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",

HCM Suite OData API: Reference Guide


128 PUBLIC Talent
"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": {
"results": []
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
othersRatingComment"
}
},
"itemConfiguration": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
itemConfiguration"
}
},
"objectiveDetails": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "name",
"value": "d"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "metric",
"value": "dsd"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"

HCM Suite OData API: Reference Guide


Talent PUBLIC 129
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "state",
"value": "Not Started"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "start",
"value": "01/01/2010"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "due",
"value": "12/31/2010"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"id": "done",
"value": "0.0%"
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "weight",
"value": "0.000"

HCM Suite OData API: Reference Guide


130 PUBLIC Talent
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "actual-achievement",
"value": ""
},
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormObjectiveDetails(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionInd
ex=2,type=0)",
"type": "SFOData.FormObjectiveDetails"
},
"sectionIndex": 2,
"formContentId": "17476",
"type": 0,
"itemId": "4930",
"formDataId": "7153",
"fieldId": "rating",
"value": ".00"
}
]
},
"customElement": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
customElement"
}
},
"milestones": {
"results": []
},
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormObjective(formContentId=17476L,formDataId=7153L,itemId=4930L,sectionIndex=2)/
selfRatingComment"
}
},
"targets": {
"results": []
},
"mlts": {
"results": []
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 131
8.1.8 FormUserRatingComment

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.

UPSERT Update 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

Use Cases: Query self rating or comment of a competency item

Table 146: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormUserRatingComment
(formContentId=17617L,formDataId=7182L,ite
mId=7L,ratingType='na',sectionIndex=4,user
Id='user1')?$format=json

HCM Suite OData API: Reference Guide


132 PUBLIC Talent
URI (alternative end point) http://<hostname>/odata/v2/FormObjective
(formContentId=17617L,formDataId=7182L,
sectionIndex=4,itemId=7L)?
$expand=officialRating

URI (alternative end point) http://<hostname>/odata/v2/


FormObjectiveSection
(formContentId=17617L,formDataId=7182L,sec
tionIndex=4) ?$expand=othersRatingComment

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": ""
}
}

Use Cases: Update self item rating or comment of Objective

Table 147: Request Information

Operation UPSERT

HCM Suite OData API: Reference Guide


Talent PUBLIC 133
URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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

HCM Suite OData API: Reference Guide


134 PUBLIC Talent
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=31902,FormPMReviewContentDetail/formDataId=28701",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}
]
}

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

HCM Suite OData API: Reference Guide


Talent PUBLIC 135
Use Cases: Query basic information of Competency Section

Table 149: Request Information

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}

HCM Suite OData API: Reference Guide


136 PUBLIC Talent
},
"competencies": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=17476L,formDataId=7153L,sectionIndex=3)/
competencies"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=17476L,formDataId=7153L,sectionIndex=3)/
othersRatingComment"
}
}
}
}

Use Cases: Upsert self section comments of competency section

Table 150: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 137
}
]
}

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.

HCM Suite OData API: Reference Guide


138 PUBLIC Talent
Operation Description

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

Use Cases: Query basic information of Form Competency item

Table 152: Request Information

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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",

HCM Suite OData API: Reference Guide


Talent PUBLIC 139
"itemId": "7",
"formDataId": "7182",
"category": null,
"weight": "10.0",
"source": "SuccessFactors",
"description": "Builds customer confidence, is committed to increasing
customer satisfaction, sets achievable customer expectations, assumes
responsibility for solving customer problems, ensures commitments to customers
are met, solicits opinions and ideas from customers, responds to internal
customers.",
"name": "Customer Focus",
"weightKey": "wf_sect_4__c7_w",
"expectedRating": "50.0%",
"selfRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)/
selfRatingComment"
}
},
"officialRating": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)/
officialRating"
}
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)/
othersRatingComment"
}
},
"itemConfiguration": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)/
itemConfiguration"
}
},
"competencyBehaviors": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)/
competencyBehaviors"
}
},
"customElement": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormCompetency(formContentId=17617L,formDataId=7182L,itemId=7L,sectionIndex=4)/
customElement"
}
}
}
}

HCM Suite OData API: Reference Guide


140 PUBLIC Talent
Use Cases: Upsert self item comments, official rating and custom element
values of competency item

Table 153: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
]
},
{

HCM Suite OData API: Reference Guide


Talent PUBLIC 141
"__metadata": {
"uri":
"FormCompetency(formContentId=17534L,formDataId=7176L,itemId=17L,sectionIndex=4)",
"type": "SFOData.FormCompetency"
},
"officialRating": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17534L,formDataId=7176L,itemId=17L,ratingType
='na',sectionIndex=4,userId='manager1')",
"type": "SFOData.FormUserRatingComment"
},
"ratingKey": "wf_sect_3__c17_r",
"rating": "4.0"
},
"selfRatingComment": {
"__metadata": {
"uri":
"FormUserRatingComment(formContentId=17534L,formDataId=7176L,itemId=17L,ratingType
='na',sectionIndex=4,userId='manager1')",
"type": "SFOData.FormUserRatingComment"
},
"ratingKey": "wf_sect_2_o_1_cmt_manager1_",
"rating": "3.0",
"commentKey": "wf_sect_2_o_1_cmt_manager1_c",
"comment": "Goal Manager comment"
},
"customElement": [
{
"__metadata": {
"uri":
"FormCustomElement(formContentId=17534L,formDataId=7176L,itemId=17L,sectionIndex=4
,elementKey='ele_1')",
"type": "SFOData.FormCustomElement"
},
"valueKey": "wf_sect_3__c17_ele_11",
"value": "Normal"
}
]
}
]
}
]
}

Response

Sample Code

{
"d": [
{
"key": "FormPMReviewContentDetail/
formContentId=17534,FormPMReviewContentDetail/formDataId=7176",
"status": "OK",
"editStatus": "UPDATED",
"message": null,
"index": "0",
"httpCode": "200",
"inlineResults": null
}

HCM Suite OData API: Reference Guide


142 PUBLIC Talent
]
}

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

Use Cases: Query basic information of Form Custom element

Table 155: Request Information

Operation GET

HCM Suite OData API: Reference Guide


Talent PUBLIC 143
URI http://<hostname>/odata/v2/
FormCustomElement(formContentId=17628L,for
mDataId=7176L,itemId=14L,sectionIndex=3,el
ementKey='ele_0')?$format=json

URI http://<hostname>/odata/v2/
FormCustomElement(formContentId=17628L,for
mDataId=7176L,itemId=14L,sectionIndex=3,el
ementKey='ele_0')?$format=json&$expand=
elementListValues

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


144 PUBLIC Talent
Use Cases: Upsert custom element values of competency item

Table 156: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert?

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
]
}
]
}
]

HCM Suite OData API: Reference Guide


Talent PUBLIC 145
}

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.

HCM Suite OData API: Reference Guide


146 PUBLIC Talent
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

Table 158: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormCustomElementListValue(elementKey='ele
_0',formContentId=17628L,formDataId=7176L,
itemId=14L,name='T2',sectionIndex=3) ?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 147
8.1.13 FormSectionConfiguration

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

Table 160: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormSectionConfiguration(formContentId=176
17L,formDataId=7182L,sectionIndex=4)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


148 PUBLIC Talent
Response

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].

HCM Suite OData API: Reference Guide


Talent PUBLIC 149
Operations Allowed

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

Use Cases: Query basic information of item configuration

Table 162: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormItemConfiguration(formContentId=17546L
,formDataId=7181L,sectionIndex=5,itemId=43
)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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,

HCM Suite OData API: Reference Guide


150 PUBLIC Talent
"itemEditable": false,
"behaviorRemovable": false,
"itemCommentRequired": false,
"itemWeightPermission": "none",
"itemRemovable": 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

Table 164: Request Information

Operation GET

HCM Suite OData API: Reference Guide


Talent PUBLIC 151
URI http://<hostname>/odata/v2/
FormIntroductionSection
(formContentId=17639L,formDataId=7221L)?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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

GET Query about UserInformation section using formDataID and formContentID

HCM Suite OData API: Reference Guide


152 PUBLIC Talent
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:

Table 166: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormUserInformationSection?$format=json

URI http://<hostname>/odata/v2/
FormUserInformationSection (formContentId=
17476L,formDataId=7153L)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 153
8.1.17 FormSummarySection

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

Use Cases: Query basic information of Form Summary Section

Table 168: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormSummarySection
(formContentId=17628L,formDataId=7176L)?
$format=json

HCM Suite OData API: Reference Guide


154 PUBLIC Talent
URI http://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,fo
rmDataId=7176L)?$format=json&$expand=
selfRatingComment,calculatedFormRating,ove
rallFormRating

URI http://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,fo
rmDataId=7176L)?$format=json&$expand=
summaryListing/items

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 155
},
"othersRatingComment": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormSummarySection(formContentId=17628L,formDataId=7176L)/othersRatingComment"
}
}
}
}

Use Cases: Upsert self rating and overall rating values of form

Table 169: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert?

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}

HCM Suite OData API: Reference Guide


156 PUBLIC Talent
}

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 157
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: Query basic information of Signature Section

Table 171: Request Information

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


158 PUBLIC Talent
Use Cases: Upsert signature comments of signature section

Table 172: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert?

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
]
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 159
Response

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

HCM Suite OData API: Reference Guide


160 PUBLIC Talent
Use Cases: Query basic details of signature object

Table 174: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormSignature(formContentId=17629L,formDat
aId=7181L,sectionIndex=9,stepId='154992821
696258')?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 161
8.1.20 FormRatingScale

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

Table 176: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormRatingScale(formContentId=17628L,formD
ataId=7176L, sectionIndex=2)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


162 PUBLIC Talent
Response

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 163
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

Table 178: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormRatingScaleValue(formContentId=17628L,
formDataId=7176L,scaleId='2005b',sectionIn
dex=2,value='2.0')?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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
}
}

HCM Suite OData API: Reference Guide


164 PUBLIC Talent
8.1.22 FormCompetencyBehavior

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

Use Cases: Query basic information of Competency item

Table 180: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormCompetencyBehavior
(formContentId=17536L,formDataId=
7178L,sectionIndex=4,itemId=7,behaviorId=4
6051) ?$format=json

HCM Suite OData API: Reference Guide


Talent PUBLIC 165
URI http://<hostname>/odata/v2/
FormCompetencyBehavior
(formContentId=17536L,formDataId=7178L,sec
tionIndex=4,itemId=7,behaviorId=46051) ?
$format=json&$expand=
officialRating,selfRatingComment

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


166 PUBLIC Talent
Use Cases: Upsert self-rating comments of competency behavior item

Table 181: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": [
{

HCM Suite OData API: Reference Guide


Talent PUBLIC 167
"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.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.

UPSERT Update 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

HCM Suite OData API: Reference Guide


168 PUBLIC Talent
Use Cases: Query self rating/comment of a competency item

Table 183: Request Information

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 169
}

Use Cases: Upsert self item rating/comment of competency behavior

Table 184: Request Information

Operation UPSERT

URI http://<hostname>/odata/v2/upsert

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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 "
}
}
]
}
}

HCM Suite OData API: Reference Guide


170 PUBLIC Talent
Response

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.

Table 185: API Permissions

Permission System Required Settings

Role based Go to Admin Center Manage Permission Role , and se­


lect Admin access to OData API.

User based Go to Admin Center Admin privilege Integration


Tools , and select Admin access to OData API.

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 171
Table 186: API Permissions

Permission System Required Settings

Role based ● Go to Admin Center Manage Permission Role

Manage Calibration , and select OData API Calibration


Export.

● Go to Admin Center Manage Permission Role

Manage Documents , and select Admin Access to Talent


Rating OData API.

User based ● Go to Admin Center Admin privilege Manage

Calibration , and select OData API Calibration Export.

● Go to Admin Center Admin privilege Managing

Documents , and select Admin Access to Talent Rating


OData API.

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

Table 188: Request Information

Operation <Your Input>

URI http://<Hostname>/odata/v2/TalentRatings?
$format=json&$filter=formDataId eq 1459L&
$orderBy=formContentId desc

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


172 PUBLIC Talent
Response

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"
}
]
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 173
Use Case 2

Table 189: Request Information

Operation <Your Input>

URI http://<Hostname>/odata/v2/TalentRatings?
$format=json&$filter=formDataId eq 7831L&
$orderBy=formContentId desc&
$select=employeeId,formDataId,
feedbackRatingLabel,feedbackType,feedbackR
ating,feedbackName,feedbackWeight

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}, {

HCM Suite OData API: Reference Guide


174 PUBLIC Talent
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441434L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : null, "feedbackType" : 22, "employeeId" : "user1",
"feedbackRating" : "-1972", "feedbackName" : null, "formDataId" : "6841",
"feedbackWeight" : "-1972"
},
, {
"__metadata" : {
"uri" : "https://<hostName>/odata/v2/TalentRatings(441262L)", "type" :
"SFOData.TalentRatings"
}, "feedbackRatingLabel" : "unrated", "feedbackType" : 11, "employeeId" :
"user11", "feedbackRating" : "-1972", "feedbackName" : "Performance Goals",
"formDataId" : "6841", "feedbackWeight" : "0"
}
]
}
}

Related Information

Retrieving metadata [page 27]

8.1.25 Import Functions

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.

OData function import API has the following functionalities:

Forms are now launched immediately for one employee at a time.

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 175
Editing the introduction text information is not allowed during launching of the forms. Forms are launched with
the default introduction text information.

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

formSubjectId Subject user ID for whom the form will be String


launched. This is a mandatory field.

formTemplateId ID of the selected template. This is a Long


mandatory field.

sendEmail If the value is true, then email notification Boolean


will be sent to form recipient.

Value must be “true” or “false”. Default


value for this field is false.

enRouteCopy Value must be “true” or “false”. Default Boolean


value for this field is false.

If the value is true, then in en route folder


copy of Performance review form will be
created.

HCM Suite OData API: Reference Guide


176 PUBLIC Talent
Use Case 1

Customers should be able to launch forms automatically for the following use case:

● To launch form immediately

Example: odata/v2/createPerformanceReviewForm?formSubjectId=’wsown1’&
formTemplateId=391L&sendEmail=true&enRouteCopy=false

Table 191: Request Information

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 177
Error Code Server Response/ Description

400 SC_BAD_REQUEST/ Error code (400) indicates that the fol­


lowing:

● requested template is not a Performance Review Tem­


plate
● Invalid rating scale associated with template
● Route Map not associated with template
● Overlapping forms exists for the given template's review
period

403 SC_FORBIDDEN/ Status code (403) indicates that the logged


in user does not have the permission to launch Performance
Review using this template.

404 SC_NOT_FOUND: Status code (404) indicates that the Tem­


plateId is invalid.

500 SC_INTERNAL_SERVER_ERROR: Status code (500) indicates


an error inside the server, which prevented Performance Re­
view form from launching.

8.2 Workflow Entities

Talent form workflow APIs provide the ability to query and update the form workflow. Currently they support only
PM v12 Acceleration forms.

Talent form workflow OData APIs enable you to:

● 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:

HCM Suite OData API: Reference Guide


178 PUBLIC Talent
Table 193:

Permission System Required Settings

Provisioning Go to Provisioning Company Settings Performance

Appraisal Smart Form

Go to Provisioning Company Settings PM v12

Acceleration

Permissions

Table 194: For Route map entities

Permission System Required Settings

Role based Go to Admin Center Manage Permission Roles Manage


Integration Tools , and select Admin access to OData API

User based Go to Admin Privilege Integration Tools , and select


Admin access to OData API

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

For more information on permissions, refer Workflow Entities [page 178].

Operations Allowed

Table 195:
Operation Description

GET Query about RouteMap using formDataID.

HCM Suite OData API: Reference Guide


Talent PUBLIC 179
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

Table 196: Request Information

Operation GET

URI http://<hostname>/odata/v2/FormRouteMap
(formDataId=7219L)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


180 PUBLIC Talent
8.2.2 FormRouteStep

You can use this entity to query form Route Step and its sub step details.

Permissions

For more information on permissions, refer Workflow Entities [page 178].

Operations Allowed

Table 197:
Operation Description

GET Query about RouteStep using formDataID and stepOrder.

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

Table 198: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormRouteStep(formDataId=7219L,stepOrder=0
)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Response

Sample Code

HCM Suite OData API: Reference Guide


Talent PUBLIC 181
"d": {
"__metadata": {
"uri": "https://<hostname>/odata/v2/
FormRouteStep(formDataId=7219L,stepOrder=0)",
"type": "SFOData.FormRouteStep"
},
"formDataId": "7219",
"stepOrder": 0,
"stageName": "Assessment",
"stageType": "MODIFICATION",
"current": true,
"overDue": false,
"userRole": null,
"userFullName": null,
"stepDescription": "",
"dueDate": "",
"stepName": "Istep",
"completed": false,
"routeSubStep": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
FormRouteStep(formDataId=7219L,stepOrder=0)/routeSubStep"
}
}
}
}

8.2.3 FormRouteSubStep

You can use this entity to query form sub step details of Route Step.

Permissions

For more information on permissions, refer Workflow Entities [page 178].

Operations Allowed

Table 199:
Operation Description

GET Query about RouteSubStep using formDataID, stepOrder and subStepOrder.

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

HCM Suite OData API: Reference Guide


182 PUBLIC Talent
Use Cases

Table 200: Request Information

Operation GET

URI http://<hostname>/odata/v2/
FormRouteSubStep(formDataId=7219L,stepOrde
r=0,subStepOrder=2)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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
}
}

8.2.4 Import Functions

Function imports modify an entity. You use them as you would use any OData API.

The following function imports can be used to route the form:

● signForm [page 184]


● sendToNextStep [page 186]
● RejectForm [page 188]

All the above mentioned APIs return complex type object CORouteFormStatusBean.

Complex Type - CORouteFormStatusBean

HCM Suite OData API: Reference Guide


Talent PUBLIC 183
Table 201:
Property Description

status To return status of function import API. Value can be either


Success or Failure.

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

GET To sign the form.

Parameters

Table 203:
Parameter Description Type

formDataId Indicates Document id. This is a manda­ Long


tory field.

comment Indicates signing comment provided by String


the user. If “Disable Ask For Comment
Routing” is unselected in the form tem­
plate settings, only then this parameter
should be passed. This is an optional
field.

Use Case

Table 204:
API Call Description

https://<hostname>/odata/v2/ signForm? formDataId Sign form with form data id as 1234L


=1234L &comment='my comment'

HCM Suite OData API: Reference Guide


184 PUBLIC Talent
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>

Error Codes

Table 205:
Error Code Description

TWF_MISS_REQUIRE_PARAMETER_ERROR If Form data id is not provided in the URL.

TWF_INCORRECT_PARAMETER_ERROR You may get this error message due to following reasons:

1. Form not found for the given form data id.


2. Form is found but workflow action cannot be operated.
For example, form is in en route/completed folder.
3. Sign form is called, but the form is not at signoff stage.
4. Form has not reached the exit date based on route map
configuration.
5. If 'Disable Ask For Comment Routing' is selected in form
template settings and comment is provided by the user.

Related Information

sendToNextStep [page 186]

RejectForm [page 188]

HCM Suite OData API: Reference Guide


Talent PUBLIC 185
8.2.4.2 sendToNextStep

You can use this entity to send the form to next step in route map.

Operations Allowed

Table 206:
Operation Description

GET Send the form to next step.

Parameters

Table 207:
Parameter Description Type

formDataId Indicates Document id. This is a manda­ Long


tory field.

comment Indicates routing comment. If you unse­ String


lect “Disable Ask For Comment Routing”
in the form template settings, only then
this parameter is passed. This is an op­
tional parameter.

innerStepUserId Indicates recipient user in current I step, String


if current step is I step.

nextIStepEntryUser Indicates first recipient user in next I String


step, if next step is I step.

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.

HCM Suite OData API: Reference Guide


186 PUBLIC Talent
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>

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:

1. Form not found for the given form data id.


2. Form is found but workflow action cannot be operated.
For example, form is in en route/completed folder.
3. Send form is called, but the form is not at modify or re­
jected stage.
4. If the current step is I step and innerStepId value is same
as the current form owner.
5. If 'Disable Ask For Comment Routing' is selected in form
template settings and comment is provided by the user.

Related Information

signForm [page 184]

RejectForm [page 188]

HCM Suite OData API: Reference Guide


Talent PUBLIC 187
8.2.4.3 RejectForm

You can use this entity to reject the form.

Operations Allowed

Table 210:
Operation Description

GET To reject the form.

Parameters

Table 211:
Parameter Description Type

formDataId Indicates Document id. This is a manda­ Long


tory field.

comment Indicates comment for rejecting the form String


provided by the user. If “Disable Ask For
Comment Routing” is unselected in the
form template settings, only then this
parameter should be passed. This is an
optional field.

Use Case

Table 212:
API Call Description

https://<hostname>/odata/v2/ signForm? formDataId Reject form with form data id 1234L


=1234L &comment='my comment'

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>

HCM Suite OData API: Reference Guide


188 PUBLIC Talent
Error Codes

Table 213:
Error Code Description

TWF_MISS_REQUIRE_PARAMETER_ERROR If Form data id is not provided in the URL.

TWF_INCORRECT_PARAMETER_ERROR You may get this error message due to following reasons:

1. Form not found for the given form data id.


2. Form is found but workflow action cannot be operated.
For example, form is in en route/completed folder.
3. Reject form is called, but the form is not at signoff stage.
4. Form has not reached the exit date based on route map
configuration.
5. If 'Disable Ask For Comment Routing' is selected in form
template settings and comment is provided by the user.

Related Information

signForm [page 184]

sendToNextStep [page 186]

8.3 360 Multirater Form Entities

360 Form OData APIs enables you to access form contents of a 360 form.

Permissions

To use 360 OData APIs, you should have following permissions:

Table 214: Pre-condition Permissions

Permission System Required Settings

Provisioning Enable OData API in provisioning: Go to Provisioning

Company Settings , and clear the Disable OData API check


box

Enable 360 Multi-Rater in provisioning: Go to Provisioning

Company Settings , and select Enable 360 Multi-Rater

HCM Suite OData API: Reference Guide


Talent PUBLIC 189
Note
Selecting the Enable 360 Multi-Rater option also enables the section level permissions - 360Competency
section and 360Objective section.

Table 215: Template configured permissions - Section Level Permission

Permission System Required Settings

Role based Enable 360 Detailed Report: Go to Provisioning Company


Settings , and select Enable Graphic Report(360)

Table 216: Template configured permissions - Send Copy

Permission System Required Settings

User based Enable 360 Detailed Report Permission: Go to Admin


Center Form Template Settings 360 Degree/Multi-
Review , and enable 360 Detailed Report Permission for
Process Owner, Manager/HR, Employee, Approvers and
Users With Detailed 360 Reports Privilege.

Note
Selecting the Enable Graphic Report(360) option also enables you to choose the named view or anonymous
view for the send copy employees.

Table 217: Other Permissions

Permission System Required Settings

User based Enable Form Templates, Rating Scales, Routing Maps: Go to

Admin Center Manage Form Templates

Enable Admin access to Odata API: Go to Admin Center

Permission , and enable Admin access to OData API

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].

HCM Suite OData API: Reference Guide


190 PUBLIC Talent
Operations Allowed

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

Table 219: Request Information

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

HCM Suite OData API: Reference Guide


Talent PUBLIC 191
Headers Authorization: Basic <Base 64 encoded (“user@com­
pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


192 PUBLIC Talent
Sample Code
Query basic information of the summary section:

{
"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: {

HCM Suite OData API: Reference Guide


Talent PUBLIC 193
uri: "https://<hostname>/odata/v2/
FormRaterListSection(formContentId=<?>,formDataId=<?>)",
type: "SFOData.FormRaterListSection"
},
formContentId: "34066",
formDataId: "46047",
mail: "foo@dummy.com",
internalOrExternal: "internal",
category: "Manager",
participantName: "Alexander Thompson",
manager: "dcortez1",
division: "ACE Software",
department: "N/A",
company: "qacandrot_PLT7056",
cellPhone: "",
jobCode: "DEPT-PRES",
participantID: "athompson1",
jobTitle: "Boutique Coffee Specialist"
}]
}

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": {

HCM Suite OData API: Reference Guide


194 PUBLIC Talent
"uri": "https://<hostname>/odata/v2/
FormCompetencySection(formContentId=<?>,formDataId=<?>L,sectIndex=2)/
othersRatingComment"
}
}
}
]
}
}

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"
}
}
}
]
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 195
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"
}
}
}
}

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.

HCM Suite OData API: Reference Guide


196 PUBLIC Talent
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

Table 221: Request Information

Operation GET

URI https://<hostname>/odata/v2/
Form360RaterSection(formContentId=<?
>,formDataId=<?>)?$format=json

URI https://<hostname>/odata/v2/
Form360RaterSection/
form360Raters(formContentId=<?
>,formDataId=<?>)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 197
Sample Code
Query list of raters and their rating information.

{
"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"
}
}
}
]
}
}

HCM Suite OData API: Reference Guide


198 PUBLIC Talent
8.3.3 Form360Rater

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

Table 223: Request Information

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

HCM Suite OData API: Reference Guide


Talent PUBLIC 199
URI https://<hostname>/odata/v2/
Form360Rater(formContentId=<?
>,formDataId=<?>)/objSections?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
}

HCM Suite OData API: Reference Guide


200 PUBLIC Talent
Sample Code
Query summary section of the rater.

{
"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"
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 201
}

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": {

HCM Suite OData API: Reference Guide


202 PUBLIC Talent
"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"
}
}
}
]
}
}

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].

HCM Suite OData API: Reference Guide


Talent PUBLIC 203
Operations Allowed

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

Table 225: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
FormRaterListSection(formContentId=<?
>,formDataId=<?>)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"

HCM Suite OData API: Reference Guide


204 PUBLIC Talent
},
"formContentId": "34066",
"formDataId": "46047",
"mail": "foo@dummy.com",
"internalOrExternal": "internal",
"category": "Manager",
"participantName": "Alexander Thompson",
"manager": "dcortez1",
"division": "ACE Software",
"department": "N/A",
"company": "qacandrot_PLT7056",
"cellPhone": "",
"jobCode": "DEPT-PRES",
"participantID": "athompson1",
"jobTitle": "Boutique Coffee Specialist"
}
]
}
}

8.4 Succession OData Entities

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.

HCM Suite OData API: Reference Guide


Talent PUBLIC 205
Permissions

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:

Table 226: Enable OData API permission

Permission System Required Settings

Provisioning Got to Provisioning Company Settings , and clear


Disable OData API

User based Go to Admin Center, and select Admin access to OData API

Table 227: Enable MDF permission

Permission System Required Settings

Provisioning Enable RBP: Go to Provisioning Company Settings ,


and select Role-based Permission

Enable Generic Object: Go to Provisioning Company

Settings , and select Enable Generic Objects — requires


“Enable the Attachment Manager"

User based Enable Metadata Framework: Go to Admin Center

Manage Permission Roles Permission Metadata

Framework Select All

Note
Please confirm that Admin access to MDF OData API has
been enabled

HCM Suite OData API: Reference Guide


206 PUBLIC Talent
Table 228: Enable Succession Module Access Permissions in Provisioning

Permission System Required Settings

Provisioning To access Succession in v10, enable Live Profile: Go to

Provisioning Company Settings , and select Live Profile

To access Succession in Ultra, enable Succession Manage­

ment: Go to Provisioning Company Settings , and se­


lect Succession Management

To create Succession Plans, enable Succession Planning: Go

to Provisioning Company Settings , and select


Succession Planning (enables succession plan creation
features)

To view Succession Plans the application: Go to

Provisioning Company Settings , and select Ultra


Organization Chart [requires Version 10 UI or Version 11 UI
framework (ULTRA)]

To access Position Management: Go to Provisioning

Company Settings , and select Enable Position Management

Table 229: Enable Succession Planning Permissions

Permission System Required Settings

Role based Go to Admin Center Manage Permission Roles


Permission Succession Planners , and select Succession
Org Chart Permission, Succession Approval Permission,
Succession Management and Matrix Report Permissions, and
Succession Planning Permission

Table 230: Enable MDF Position Permission

Permission System Required Settings

Role based Go to Admin Center Manage Permission Roles

Permission Metadata Framework , and enable Manage


Positions.

Enable MDF position view permission: Go to Admin Center

Manage Permission Roles Permission Miscellaneous

Permissions Poistion , and select the options under


visibility.

HCM Suite OData API: Reference Guide


Talent PUBLIC 207
Permission System Required Settings

User based Configure the Security of Position entity: Go to Admin


Center Configure Object Definition Object Definition
Position Take Action Make Correction , and set:

● Secured: Yes
● Permission Category: Miscellaneous Permissions

Table 231: Enable MDF Position Permission

Permission System Required Settings

Provisioning Go to Provisioning Company Settings , and enable the


following options:

● Enable Generic Objects


● Enable the Attachment Manager
● Version 12 UI framework (Revolution)
● New MDF Pool-based Succession Planning (requires v12
UI framework, Generic Object)

Role based Enable MDF position view permission: Go to Admin Center

Manage Permission Roles Permission Miscellaneous

Permissions Talent Pool , and select the options under


visibility.

User based Configure the Security of Talent Pool entity: Go to Admin


Center Configure Object Definition Object Definition
TalentPool Take Action Make Correction , and set:

● 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].

HCM Suite OData API: Reference Guide


208 PUBLIC Talent
Operations Allowed

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

Table 233: Request Information

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


Talent PUBLIC 209
Response

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": {

HCM Suite OData API: Reference Guide


210 PUBLIC Talent
"__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 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",

HCM Suite OData API: Reference Guide


Talent PUBLIC 211
"title": null,
"createDate": "/Date(1189534002000)/",
"incumbent": "admin",
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(4L)/
successorNav"
}
},
"parentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(4L)/
parentNav"
}
},
"incumbentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/LegacyPositionEntity(4L)/
incumbentNav"
}
},
"talentPoolNav": {
"results": []
}
}
}

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"
}
}
}
}
]
}

HCM Suite OData API: Reference Guide


212 PUBLIC Talent
}

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

GET Query basic information of nomination target. nominationId is an identifier of a NominationTarget.

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

Table 235: Request Information

Operation GET

URI https://<hostname>/odata/v2/
NominationTarget?$format=json

URI https://<hostname>/odata/v2/
NominationTarget?$format=json&
$filter=nominationType eq '1'&
$expand=successorNav

HCM Suite OData API: Reference Guide


Talent PUBLIC 213
URI https://<hostname>/odata/v2/
NominationTarget?$format=json&
$filter=nominationType eq '6'&$expand=
talentPoolNav

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}
]
}
}

HCM Suite OData API: Reference Guide


214 PUBLIC Talent
Sample Code
Query basic information of NominationTarget and its successor list.

{
"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,

HCM Suite OData API: Reference Guide


Talent PUBLIC 215
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(880L)/successorNav"
}
},
"talentPoolNav": {
"__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,
"name_da_DK": null,
"description_de_DE": null,
"mdfSystemLastModifiedDateWithTZ": "/
Date(1445586985000+0000)/",
"description_fr_CA": null,
"effectiveStatus": "I",
"lastModifiedDateTime": "/Date(1445586985000+0000)/",
"type": "1",
"name_bs_ID": null,
"name_ja_JP": null,
"effectiveEndDate": "/Date(253402214400000)/",
"mdfSystemRecordId": "0B26B7400DEF45EB857274DA62A70F98",
"name_en_DEBUG": null,
"mdfSystemEntityId": "73D7C1C5CFE2415196CBD51562729C84",
"enableReadiness": true,
"mdfSystemLastModifiedBy": "cgrant1",
"description_bg_BG": null,
"name_defaultValue": "PM",
"name_pt_PT": null,
"name_fr_FR": null,
"description_ko_KR": null,
"mdfSystemRecordStatus": "N",
"name_en_US": "PM",
"description_fr_FR": null,
"description_en_US": "for products design",
"name_it_IT": null,
"name_uk_UA": null,
"description_pt_PT": null,
"mdfSystemCreatedDate": "/Date(1443426013000)/",
"name_zh_CN": null,
"name_bg_BG": null,
"name_hi_IN": null,
"createdBy": "cgrant1",
"description_pt_BR": null,
"name_pl_PL": null,
"name_fr_CA": null,
"description_ja_JP": null,
"owner": null,
"createdDateTime": "/Date(1443426013000+0000)/",
"lastModifiedBy": "cgrant1",
"name_en_GB": null,
"description_it_IT": null,
"description_defaultValue": "for products design",
"description_hi_IN": null,
"description_da_DK": null,
"mdfSystemVersionId": null,
"name_bs_BS": null,
"description_uk_UA": null,

HCM Suite OData API: Reference Guide


216 PUBLIC Talent
"name_ru_RU": null,
"description_en_DEBUG": null,
"description_vi_VN": null,
"description_bs_ID": null,
"description_es_ES": null,
"description_th_TH": null,
"description_iw_IL": null,
"name_es_ES": null,
"mdfSystemCreatedBy": "cgrant1",
"description_en_GB": null,
"name_nl_NL": null,
"description_ru_RU": null,
"name_pt_BR": null,
"name_zh_TW": null,
"description_zh_TW": null,
"name_th_TH": null,
"description_nl_NL": null,
"name_de_DE": null,
"description_bs_BS": null,
"name_vi_VN": null,
"description_pl_PL": null,
"description_zh_CN": null,
"ownerNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
TalentPool(code='product
manager',effectiveStartDate=datetime'2015-09-09T00:00:00')/ownerNav"
}
},
"nominationNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
TalentPool(code='product
manager',effectiveStartDate=datetime'2015-09-09T00:00:00')/nominationNav"
}
}
}
}
]
}
}

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": {

HCM Suite OData API: Reference Guide


Talent PUBLIC 217
"uri": "https://<hostname>/odata/v2/restricted/
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,
"effectiveStatus": "A",
"lastModifiedDateTime": "/Date(1443420790000+0000)/",
"type": null,
"effectiveEndDate": "/Date(253402214400000)/",
"externalName_bs_BS": null,
"vacant": false,
"mdfSystemRecordId": "E723664B615249F28AC3141DD1BC7358",
"mdfSystemEntityId": "0A529E99DA6B41C6912F02626DDD2712",
"description": "testyingwen",
"technicalParameters": null,
"externalName_en_US": null,
"createdDate": "/Date(1443420790000)/",
"mdfSystemRecordStatus": "N",
"jobLevel": null,
"regularTemporary": null,
"multipleIncumbentsAllowed": null,
"createdBy": "cgrant1",
"externalName_it_IT": null,
"externalName_bs_ID": null,
"createdDateTime": "/Date(1443420790000+0000)/",
"lastModifiedBy": "cgrant1",
"externalName_en_GB": null,
"jobCode": null,
"externalName_nl_NL": null,
"comment": "testyingwen",
"externalName_zh_CN": null,
"externalName_en_DEBUG": null,
"externalName_ko_KR": null,
"mdfSystemVersionId": null,
"externalName_de_DE": null,
"externalName_fr_CA": null,
"externalName_defaultValue": null,
"externalName_da_DK": null,
"criticality": "2",
"employeeClass": null,
"externalName_hi_IN": null,
"externalName_zh_TW": null,
"lastModifiedDateWithTZ": "/Date(1443420790000+0000)/",
"externalName_ja_JP": null,
"standardHours": null,
"jobTitle": "testyingwen",
"externalName_iw_IL": null,
"externalName_bg_BG": null,
"externalName_vi_VN": null,
"legacyPositionId": null,
"externalName_pl_PL": null,
"externalName_uk_UA": null,
"costCenter": null,
"externalName_th_TH": null,
"changeReason": null,
"targetFTE": null,
"positionTitle": "testyingwen",
"externalName_es_ES": null,
"lastModifiedDate": "/Date(1443420790000)/",
"positionCriticality": null,
"incumbent": null,

HCM Suite OData API: Reference Guide


218 PUBLIC Talent
"externalName_fr_FR": null,
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')/
successorNav"
}
},
"talentPoolNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')/
talentPoolNav"
}
},
"incumbentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')/
incumbentNav"
}
},
"parentPosition": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')/
parentPosition"
}
}
}
}
]
}
}

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

GET Query to identify Successor. Successor id is an identifier of a successor.

HCM Suite OData API: Reference Guide


Talent PUBLIC 219
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

Table 237: Request Information

Operation GET

URI https://<hostname>/odata/v2/Position?
$format=json&$expand=successorNav

URI https://<hostname>/odata/v2/
LegacyPositionEntity?$format=json&
$expand=successorNav

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"

HCM Suite OData API: Reference Guide


220 PUBLIC Talent
},
"id": "1910",
"rank": 1,
"status": "SUCCESSION_PENDING_STATUS_LB",
"readinessLabel": "Emergency Replacement",
"readiness": 4,
"note": "yingwen test",
"userNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Successor(1910L)/userNav"
}
}
}
]
},
"talentPoolNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')/
talentPoolNav"
}
},
"incumbentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
Position(code='testyingwen',effectiveStartDate=datetime'2015-09-28T00:00:00')/
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": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/parentNav"
}
},
"incumbentNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
LegacyPositionEntity(1L)/incumbentNav"
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 221
}
}
]
}
}

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

GET dataIndex and optionKey are the composite identifiers of TalentGraphicOption.

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

Table 239: Request Information

Operation GET

URI https://<hostname>/odata/v2/
TalentGraphicOption?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


222 PUBLIC Talent
Response

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].

HCM Suite OData API: Reference Guide


Talent PUBLIC 223
Operations Allowed

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

Table 241: Request Information

Operation GET

URI https://<hostname>/odata/v2/TalentPool?
$format=json&$expand=nominationNav

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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,

HCM Suite OData API: Reference Guide


224 PUBLIC Talent
"ownerNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/restricted/
TalentPool(code='product
manager',effectiveStartDate=datetime'2015-09-09T00:00:00')/ownerNav"
}
},
"nominationNav": {
"results": [
{
"__metadata": {
"uri": "https://<hostname>/odata/v2/restricted/
NominationTarget(880L)",
"type": "SFOData.NominationTarget"
},
"nominationId": "880",
"nominationType": 6,
"successorNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
restricted/NominationTarget(880L)/successorNav"
}
},
"talentPoolNav": {
"__deferred": {
"uri": "https://<hostname>/odata/v2/
restricted/NominationTarget(880L)/talentPoolNav"
}
}
}
]
}
}
]
}
}

8.5 Continuous Performance Management

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:

Permission System Required Settings

Provisioning None

HCM Suite OData API: Reference Guide


Talent PUBLIC 225
Permission System Required Settings

Role based None

User based None

8.5.1 ContinuousPerformanceUserPermission

The ContinuousPerformanceUserPermission entity provides authorization check to confirm whether a particular


user has the permission to perform the CRUD operations on Continuous Performance Management entities. This
entity can also be used by Managers to check if they have the authorization to do CRUD operations for their direct
reports.

Operations Allowed

Table 243:
Operation Description

GET Query an 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

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Response

HCM Suite OData API: Reference Guide


226 PUBLIC Talent
Sample Code

{
"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",

HCM Suite OData API: Reference Guide


Talent PUBLIC 227
"hasPermission": true,
"permType": "OtherTopic",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "successline_request_feedback",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('cgrant1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "cgrant1",
"hasPermission": true,
"permType": "successline_view_feedback",
"permStringValue": "VIEW"
}
]
}
}

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": {

HCM Suite OData API: Reference Guide


228 PUBLIC Talent
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": true,
"permType": "Activity",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": true,
"permType": "Achievement",
"permStringValue": "VIEW"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": true,
"permType": "Achievement",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": false,
"permType": "OtherTopic",
"permStringValue": "VIEW"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": false,
"permType": "OtherTopic",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": false,
"permType": "successline_request_feedback",
"permStringValue": "EDIT"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/
ContinuousPerformanceUserPermission('emp1')",

HCM Suite OData API: Reference Guide


Talent PUBLIC 229
"type": "SFOData.ContinuousPerformanceUserPermission"
},
"targetUserId": "emp1",
"hasPermission": false,
"permType": "successline_view_feedback",
"permStringValue": "VIEW"
}
]
}
}

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
]
}
}

HCM Suite OData API: Reference Guide


230 PUBLIC Talent
8.5.2 Activity

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

GET Query an entity

PUT Replace a record

POST Update a record

DELETE Delete a record

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: Add an Activity

Table 248: Request Information

Operation POST

URI http://<Hostname>/odata/v2/Activity

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


Talent PUBLIC 231
Payload
Sample Code

{
"activityName":"cgrant_activity1",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"activityStatusNav":{"__metadata":
{"uri":"ActivityStatus('high')"}}
}

Use Case 2: Edit an Activity

Table 249: Request Information

Operation PUT

URI http://<Hostname>/odata/v2/Activity('1')

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Payload
Sample Code

{
"activityName":"cgrant_activity1",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant')"}},
"activityStatusNav":{"__metadata":
{"uri":"ActivityStatus('medium')"}}
}

Use Case 3: Delete an Activity

Table 250: Request Information

Operation DELETE

URI http://<Hostname>/odata/v2/Activity('1')

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


232 PUBLIC Talent
Use Case 4: List out Activities

Table 251: Request Information

Operation GET

URI http://<Hostname>/odata/v2/Activity?
$format=JSON&$top=1

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 233
]
}
}

Use Case 5: List out Activities with ActivityStatus as 'High'

Table 252: Request Information

Operation GET

URI http://<Hostname>/odata/v2/Activity?
$format=JSON&$filter=activityStatus eq
'high'&$top=1

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": {

HCM Suite OData API: Reference Guide


234 PUBLIC Talent
"uri": "https://<Hostname>/odata/v2/Activity(921L)/achievements"
}
},
"feedbacks": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(921L)/feedbacks"
}
},
"devGoalDetailList": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(921L)/devGoalDetailList"
}
},
"goalDetailList": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Activity(921L)/goalDetailList"
}
}
}
]
}
}

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

POST Update a record

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

HCM Suite OData API: Reference Guide


Talent PUBLIC 235
Use Cases

Pre-requisites for executing the use cases

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"
}
]
}
}

HCM Suite OData API: Reference Guide


236 PUBLIC Talent
}

For more information, please refer to GoalPlanTemplate [page 407]

Use Case 1: Saving GoalDetail along with creation of Activity

Table 254: Request Information

Operation POST

URI http://<Hostname>/odata/v2/Activity

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Payload
Sample Code

{
"activityName":"Activity",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant1')"}},
"activityStatusNav":{"__metadata":
{"uri":"ActivityStatus('medium')"}},
"goalDetailList":
[{"goalId":"260004088"}]
}

Use Case 2: Linking new goal to an existing activity

Table 255: Request Information

Operation POST

URI http://<Hostname>/odata/v2/GoalDetail

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Payload
Sample Code

{
"goalId":"260004088",
"Activity_activityId":"11125"
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 237
8.5.4 ActivityFeedback

The ActivityFeedback entity enables you to add, edit, or delete feedback on your Activities in Continuous
Performance Management.

Operations Allowed

Table 256:
Operation Description

PUT Replace a record

POST Update a record

DELETE Delete a record

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: Add an Activity feedback with FeedbackFlag as 'Red'

Table 257: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
ActivityFeedback

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


238 PUBLIC Talent
Payload
Sample Code

{
"commentContent":"New update
feedback",
"feedbackFlagNav":{"__metadata":
{"uri":"FeedbackFlag('Red')"}},
"Activity_activityId":"1"
}

Use Case 2: Edit an Activity feedback

Table 258: Request Information

Operation PUT

URI http://<Hostname>/odata/v2/
ActivityFeedback(Activity_activityId=1,act
ivityFeedbackId=2)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Payload
Sample Code

"commentContent":"modifiedcomment1"
}

Use Case 4: Delete an Activity feedback

Table 259: Request Information

Operation DELETE

URI http://<Hostname>/odata/v2/
ActivityFeedback(Activity_activityId=1,act
ivityFeedbackId=2)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


Talent PUBLIC 239
8.5.5 Achievement

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

GET Query an entity

PUT Replace a record

POST Update a record

DELETE Delete a record

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: Create an Achievement for an Activity

Table 261: Request Information

Operation POST

URI http://<Hostname>/odata/v2/Achievement

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


240 PUBLIC Talent
Payload
Sample Code

{
"parentExternalId":"1",
"parentTypeEnum":"ACTIVITY",
"achievementName":"activity_achievemen
t",
"subjectUserIdNav":{"__metadata":
{"uri":"User('cgrant1')"}}
}

Use Case 2: Edit an Achievement

Table 262: Request Information

Operation PUT

URI http://<Hostname>/odata/v2/Achievement(3)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Payload
Sample Code

{
"achievementName":"comment233"
}

Use Case 3: Delete an Achievement

Table 263: Request Information

Operation DELETE

URI http://<Hostname>/odata/v2/Achievement(3)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


Talent PUBLIC 241
Use Case 4: List all Achievements

Table 264: Request Information

Operation GET

URI http://<Hostname>/odata/v2/Achievement?
$format=JSON

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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)",

HCM Suite OData API: Reference Guide


242 PUBLIC Talent
"type": "SFOData.Achievement"
},
"achievementId": "10623",
"achievementDate": "/Date(1466553600000)/",
"lastModifiedDateTime": "/Date(1466582288000+0000)/",
"achievementName": "tttttt",
"reviewed": null,
"subjectUserId": "mhoff1",
"lastModifiedDateWithTZ": "/Date(1466582288000+0000)/",
"createdDate": "/Date(1466582288000)/",
"parentExternalId": null,
"snapshot": null,
"createdBy": "cgrant1",
"lastModifiedBy": "cgrant1",
"createdDateTime": "/Date(1466582288000+0000)/",
"lastModifiedDate": "/Date(1466582288000)/",
"parentTypeEnum": null,
"subjectUserIdNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Achievement(10623L)/
subjectUserIdNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Achievement(10623L)/wfRequestNav"
}
},
"parentTypeEnumNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/Achievement(10623L)/
parentTypeEnumNav"
}
}
}
]
}
}

8.5.6 SupporterFeedback

SupporterFeedback entity in Continuous Performance Management is used to provide feedback on user's


achievements. You can create an achievement and request for feedback from colleagues who worked with you,

HCM Suite OData API: Reference Guide


Talent PUBLIC 243
when you accomplished the achievement. This entity can be used when a user wants to request for feedback or
provide feedback on achievements.

Permissions

Table 265: API Permissions

Permission System Required Settings

Role based Admin Center Manage Permission Role User


Permissions Continuous Performance User Permission
Permission to request feedback on achievements

Admin Center Manage Permission Role User

Permissions Continuous Performance User Permission

Permission to read feedback on achievements

User based NA

Operations Allowed

Table 266:
Operation Description

GET Query an entity

MERGE Update a record with specified properties

PUT Replace a record

POST Update a record

DELETE Delete a record

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

HCM Suite OData API: Reference Guide


244 PUBLIC Talent
Use Cases

Use Case 1: Create a request for an update on Achievement (Id 613) from a
supporting colleague

Table 267: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
SupporterFeedback

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

<Your Input if any additional header information has been sup­


plied

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",
}

Use Case2: Supporter responds to a feedback request and is able to provide a


response

It is an update operation.

Table 268: Request Information

Operation PUT

URI http://<Hostname>/odata/v2/
SupporterFeedback( 616L )

HCM Suite OData API: Reference Guide


Talent PUBLIC 245
Headers Authorization: Basic <Base 64 encoded (“user@com­
pany:password”)>

<Your Input if any additional header information has been sup­


plied

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>

Table 269: Request Information

Operation GET

URI http://<Hostname>/odata/v2/Achievement?
$format=json&$expand=supporterFeedbacks&
$filter=subjectUserId%20eq%20%27cgrant%27

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

<Your Input if any additional header information has been sup­


plied

HCM Suite OData API: Reference Guide


246 PUBLIC Talent
Response

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",

HCM Suite OData API: Reference Guide


Talent PUBLIC 247
"lastModifiedBy": "emp1",
"createdDateTime": "/Date(1471608874000+0000)/",
"requestText_fr_FR": null,
"requestText_en_US": null,
"lastModifiedDate": "/Date(1471616877000)/",
"parentTypeEnum": "ACHIEVEMENT",
"recipientIdNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)/recipientIdNav"
}
},
"subjectUserIdNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)/subjectUserIdNav"
}
},
"requesterIdNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)/requesterIdNav"
}
},
"wfRequestNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)/wfRequestNav"
}
},
"requestTextTranslationTextNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)/requestTextTranslationTextNav"
}
},
"parentTypeEnumNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/
SupporterFeedback(615L)/parentTypeEnumNav"
}
}
}
]
},
"parentTypeEnumNav": {
"__deferred": {
"uri": "https://localhost:port/odata/v2/Achievement(613L)/
parentTypeEnumNav"
}
}
}
}

Additional Information

Related Links

HCM Suite OData API: Reference Guide


248 PUBLIC Talent
8.6 Development Objects

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

Table 270: API Permissions

Permission System Required Settings

Role based None

User based None

Operations Allowed

Table 271:
Operation Description

GET Query an 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

HCM Suite OData API: Reference Guide


Talent PUBLIC 249
Use Cases

Use Case: Get all development goal plans for one development goal plan
template with a given template ID

Table 272: Request Information

Operation Query

URI http://<Hostname>/odata/v2/
DevGoalPlanTemplate(2002L)?
$expand=devgoals&$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
]
}
}
}

Use Case: Get the default development goal template ID

Table 273: Request Information

Operation <Your Input>

HCM Suite OData API: Reference Guide


250 PUBLIC Talent
URI http://<Hostname>/odata/v2/
getDefaultDevGoalPlanTemplateId?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Response

Sample Code

{
"d" : {
"getDefaultDevGoalPlanTemplateId" : "2002"
}
}

Related Links

Related Information

Retrieving metadata [page 27]

8.6.2 SimpleDevGoal

This entity is used to provide the development goal information

Permissions

Table 274: API Permissions

Permission System Required Settings

Role based None

User based None

HCM Suite OData API: Reference Guide


Talent PUBLIC 251
Operations Allowed

Table 275:
Operation Description

GET Query an 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

Use Case: Get development goal with a given development goal ID

Table 276: Request Information

Operation <Your Input>

URI http://<Hostname>/odata/v2/
SimpleDevGoal(12051L)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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

HCM Suite OData API: Reference Guide


252 PUBLIC Talent
Related Information

Retrieving metadata [page 27]

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:

Permission System Required Settings

Role based Go to Admin Center Manage Permission Roles

Permission Role Permission Manage Integration Tools ,


and select Admin access to OData API

Go to Admin Center Manage Permission Roles

Permission Role Permission Manage Calibration , and


select OData API Calibration Export

User based None

8.7.1 CalibrationTemplate

The CalibrationTemplate entity is used to get basic information from the calibration template table.

Operations Allowed

Table 278:
Operation Description

GET Query an entity

HCM Suite OData API: Reference Guide


Talent PUBLIC 253
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: Get CalibrationTemplate and expand the executiveReviewList

Table 279: Request Information

Operation GET

URI https://<Hostname>/odata/v2/
CalibrationTemplate(3261)?$format=json&
$expand=executiveReviewerList

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

<Your Input if any additional header information has been sup­


plied

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,

HCM Suite OData API: Reference Guide


254 PUBLIC Talent
"businessPhone": "650 645 2000",
"custom01": null,
"custom04": null,
"custom03": null,
"location": "Denver, CO",
"custom06": null,
"custom05": null,
"custom08": null,
"empId": "3000",
"custom07": null,
"custom09": null,
"lastModifiedDateTime": "/Date(1454314831000+0000)/",
"reviewFreq": null,
"city": "Chicago",
"riskOfLoss": null,
"username": "mmaloney",
"zipCode": "60613",
"gender": "M",
"talentPool": null,
"lastName": "Maloney",
"reasonForLeaving": null,
"fax": null,
"status": "t",
"hireDate": "/Date(418953600000)/",
"sciLastModified": null,
"addressLine2": null,
"addressLine1": "1060 San Mateo, CA Addison Street",
"lastModifiedWithTZ": "/Date(1454314831000+0000)/",
"country": "USA",
"email": "lorna.yang@sap.com",
"jobCode": "HR-MGR",
"defaultFullName": "Mike Maloney",
"totalTeamSize": "0",
"defaultLocale": "en_US",
"benchStrength": null,
"department": "Talent Management",
"state": "IL",
"timeZone": "CST",
"title": "Benefits Specialist",
"division": "ACE Enterprises",
"firstName": "Mike",
"lastReviewDate": null,
"mi": null,
"custom15": null,
"impactOfLoss": null,
"custom14": null,
"custom13": null,
"lastModified": "/Date(1454314831000)/",
"custom12": null,
"custom11": null,
"custom10": null,
"directReports": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
directReports"
}
},
"manager": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
manager"
}
},
"benchStrengthNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
benchStrengthNav"
}

HCM Suite OData API: Reference Guide


Talent PUBLIC 255
},
"reasonForLeavingNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
reasonForLeavingNav"
}
},
"riskOfLossNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
riskOfLossNav"
}
},
"userIdOfTimeAccountSnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfTimeAccountSnapshotNav"
}
},
"talentPoolNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
talentPoolNav"
}
},
"secondManager": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
secondManager"
}
},
"userIdOfEmployeeTimeNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfEmployeeTimeNav"
}
},
"subjectUserIdOfAchievementSnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfAchievementSnapshotNav"
}
},
"subjectUserIdOfOneOnOneMeetingNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfOneOnOneMeetingNav"
}
},
"ownerOfTalentPoolNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
ownerOfTalentPoolNav"
}
},
"hrReports": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
hrReports"
}
},
"supporterIdOfAchievementSupporterNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
supporterIdOfAchievementSupporterNav"
}
},
"subjectUserIdOfCoachingAdviceNav": {

HCM Suite OData API: Reference Guide


256 PUBLIC Talent
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfCoachingAdviceNav"
}
},
"userPermissionsNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userPermissionsNav"
}
},
"userIdOfTemporaryTimeInformationNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfTemporaryTimeInformationNav"
}
},
"subjectUserIdOfOtherTopicNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfOtherTopicNav"
}
},
"userIdOfTimeAccountNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfTimeAccountNav"
}
},
"impactOfLossNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
impactOfLossNav"
}
},
"hr": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/hr"
}
},
"secondReports": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
secondReports"
}
},
"requesterIdOfSupporterFeedbackNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
requesterIdOfSupporterFeedbackNav"
}
},
"userIdOfEmployeeTimeGroupNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfEmployeeTimeGroupNav"
}
},
"recipientIdOfSupporterFeedbackNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
recipientIdOfSupporterFeedbackNav"
}
},
"subjectUserIdOfActivityNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfActivityNav"

HCM Suite OData API: Reference Guide


Talent PUBLIC 257
}
},
"subjectUserIdOfAchievementNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfAchievementNav"
}
},
"completedByOfMeetingSnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
completedByOfMeetingSnapshotNav"
}
},
"subjectUserIdOfCoachingAdviceSnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfCoachingAdviceSnapshotNav"
}
},
"incumbentOfPositionNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
incumbentOfPositionNav"
}
},
"proxy": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
proxy"
}
},
"matrixManager": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
matrixManager"
}
},
"subjectUserIdOfActivitySnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfActivitySnapshotNav"
}
},
"nominationNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
nominationNav"
}
},
"matrixReports": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
matrixReports"
}
},
"subjectUserIdOfMeetingSnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfMeetingSnapshotNav"
}
},
"subjectUserIdOfOtherTopicSnapshotNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfOtherTopicSnapshotNav"
}
},

HCM Suite OData API: Reference Guide


258 PUBLIC Talent
"custom01Nav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
custom01Nav"
}
},
"subjectUserIdOfSupporterFeedbackNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
subjectUserIdOfSupporterFeedbackNav"
}
},
"userIdOfWorkScheduleNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfWorkScheduleNav"
}
},
"userIdOfAccrualCalculationBaseNav": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/User('mmmm')/
userIdOfAccrualCalculationBaseNav"
}
}
}
]
}
}
}

8.7.2 CalibrationSession

The CalibrationSession entity is used to get basic session information from calibration session table.

Operations Allowed

Table 280:
Operation Description

GET Query an 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

HCM Suite OData API: Reference Guide


Talent PUBLIC 259
Use Cases

Use Case: Get a calibration session details, and expand its calibration template

Table 281: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
CalibrationSession(1081)?$format=json&
$expand=calTemplate

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

<Your Input if any additional header information has been sup­


plied

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)",

HCM Suite OData API: Reference Guide


260 PUBLIC Talent
"type": "SFOData.CalibrationTemplate"
},
"templateId": "541",
"startDate": "/Date(1420070400000)/",
"createdBy": "admin",
"status": 1,
"lastModifiedBy": null,
"createdDateTime": "/Date(1421039999000+0000)/",
"endDate": "/Date(1422662400000)/",
"lastModifiedDateTime": "/Date(1472783398000+0000)/",
"templateName": "PMT ranker",
"executiveReviewerList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/CalibrationTemplate(541L)/
executiveReviewerList"
}
}
},
"facilitatorList": {
"__deferred": {
"uri": "https://<Hostname/odata/v2/CalibrationSession(1081L)/
facilitatorList"
}
}
}
}

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

GET Query an 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

HCM Suite OData API: Reference Guide


Talent PUBLIC 261
Use Cases

Use Case: Get the details of subjects from a calibration session

Table 283: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
CalibrationSessionSubject(10236)?
$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

<Your Input if any additional header information has been sup­


plied

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": {

HCM Suite OData API: Reference Guide


262 PUBLIC Talent
"__deferred": {
"uri": "https://<Hostname/odata/v2/
CalibrationSessionSubject(10236L)/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

GET Query an 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

Use Case: Get a calibration subject rank

Table 285: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
CalibrationSubjectRank(102)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

<Your Input if any additional header information has been sup­


plied

HCM Suite OData API: Reference Guide


Talent PUBLIC 263
Response

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"
}
}
}
}

HCM Suite OData API: Reference Guide


264 PUBLIC Talent
9 Recruiting

9.1 Job Application Entities

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.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 265
Permissions

Table 286:
Permission System Required Setting

Role-based Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

User-based Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Operations Allowed

Table 287:
Operation Description

GET Standard OData call to query the entity

POST Update or insert operation for the Job Application entity is supported in the Q4 2015 release.

Required Fields

Specify the applicantionId for Application Entity as the business key.

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.

HCM Suite OData API: Reference Guide


266 PUBLIC Recruiting
Table 288:
Sample Fields Description

address Address

agencyInfo Agency Information

anonymizedDate Application Anonymized Date

anonymizedFlag Anonymized Flag

appLocale Application Locale

applicationDate Application Date

applicationId Application Id

applicationTemplateId Application Template Id

backgroundChkStatus Background Check Status

candConversionProcessed Candidate Coversion Processed

candidateId Candidate Id

candidateReviewDate Candidate Review Date

cellPhone Cell Phone

city City

comments Comments

countryCode Country Code

currentCompany Current Company

currentTitle Current Title

customFields Custom Fields (Represents non-reportable custom fields in


key and value pairs)

customStatus Custom Status

dateOfAvailability Date of Availability

disabilityStatus Disability Status

duplicateProfile Duplicate Profile

emailAddress Email Address

ethnicity Ethnicity

exportedOn Exported On

faxNumber Fax Number

firstName First Name

formerEmployee Former Employee

gender Gender

hiredOn Hired On

homePhone Home Phone

jobReqId Job Requsition Id

lastModifiedBy Last Modified By

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 267
Sample Fields Description

lastModifiedByProxy Last Modified By Proxy

lastname Last Name

mainContact mainContact

middleName Middle Name

minAnnualSal Minimum Annual Salary

owner Owner

ownershpDate Ownership Date

preferredLoc Preferred Location

profileUpdated Profile Updated

questionResponse Question Response (comma separated keys and values)

race Race

rating Rating

reference Reference

referenceComments Reference Comments

referralSource Referral Source

referredBy Referred By

resumeUploadDate Resume Upload Date

snapShotDate SnapShot Date

source Source

startDate Start Date

statusComments Status Comments

timeToHire Time To Hire

veteranStatus Veteran Status

zip Zip

appStatusSetItem App Status Set Item

dob Date of Birth

ssn Social Security Number

dataSource Data Source

nonApplicantStatus Non Applicant Status

candTypeWhenHired Candidate Type When Hired

jobAppGUId Application GU Id

lastModified Last Modified Date

userSysId User Id

HCM Suite OData API: Reference Guide


268 PUBLIC Recruiting
Navigation Properties

Table 289:
Navigation Property Related Entity Description

candidateSource PicklistOption Candidate Source

cityPicklist PicklistOption City Picklist

countryPicklist PicklistOption Country Picklist

coverLetter Attachment Cover Letter

jobAppStatus JobApplicationStatus Job Application Status

jobApplicationComments JobApplicationComments Job Application Comments

jobApplicationResume Attachment Job Application Resume

multiAttachmentSelection Attachment Multi Attachment Selection

statePicklist Picklist Option State Picklist

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 where applicationId is 12333

../odata/v2/JobApplication('12333')? Get the application along with the attachments where applica­
$expand= multiAttachmentSelection tionId is 12333

../odata/v2/JobApplicationStatus? Get all the applications in ‘Interview’ status


$filter=appStatusName eq 'Interview'&
$expand=jobApplications]

../odata/v2/JobApplication? Get the top 2 applications with cellphone 650 645 2000
$filter=cellPhone eq '650 645 2000'&$top=2

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 269
API Call Description

(POST) Inserts a application from candidateId 901 along with a


Sample Code resume for jobReqId 621

../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"
}
}

HCM Suite OData API: Reference Guide


270 PUBLIC Recruiting
API Call Description

(POST) Inserts an application updating Candidate information.


Sample Code

../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/fwdCandidateToColleague? (GET) Forward to colleague


candidateId=1144l&referredTo=adminSAP

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 271
API Call Description

(POST) Batch insert operation to add two new applications.


Sample Code

../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"}
}]

HCM Suite OData API: Reference Guide


272 PUBLIC Recruiting
API Call Description

(POST) Batch updating two application Ids 583 and 584.


Sample Code

../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

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 273
API Call Description

/odata/v2/ Get the job application snapshot work outside experience


JobApplicationSnapshot_OutsideWorkExperien where the snapshot_outsideWorkExperienceId is 484
ce(484L)

/odata/v2/JobApplication(741)? Get the application along with its snapshot education where
$expand=education applicationId is 741

/odata/v2/JobApplication(707L)/ Get a list of the application snapshot outside work experience


outsideWorkExperience from applicationId 707

/odata/v2/OfferApprover(221) Get the offer approver with id 221

/odata/v2/OfferApproval(191) Get the offer approval detail with id 191

/odata/v2/JobApplication(601L)/ Get the offer approval list from applicationId 601


offerApproval

/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/ Get onboarding portlet data with onboardingId 61


JobApplicationOnboardingData(61L)

/odata/v2/JobApplication(601L)/ Get the list of all onboarding portlets required from applicatio­
jobApplicationOnboardingData nId 601 (with errors or not)

/odata/v2/ Get the first question response from applicationId 763L


JobApplicationQuestionResponse(application
Id=763L,order=1L)

/odata/v2/JobApplication(763)/ Get the list of all questions responses of applicationId 763


jobApplicationQuestionResponse

(POST) Insert a JobApplication with jobAppQuestionRes­


Sample Code ponses.

{
"candidateId": "1421",
"jobReqId": "1489",
"appStatusSetItemId": "34",
"candidateSource": { "id": "528"},
"convicted": { "id": "380"},
"relativesEmployed": { "id":
"380"},

"jobApplicationQuestionResponse" : [
{
"order": "1",
"answer": "Motivated"
},
{
"order": "4",
"answer": "Unsatisfactory"
}
]
}

HCM Suite OData API: Reference Guide


274 PUBLIC Recruiting
API Call Description

(POST) Update the jobAppQuestionResponses from a JobAp­


Sample Code plication

{
"__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"
}
]
}

(POST) Update the JobAppQuestionResponse from JobAppli­


Sample Code cations

[
{
"__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"
}
]

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 275
Error Codes

Table 291:

Error Code Description

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.

Field required(not a specific code) <field> required.

Field invalid(not a specific code) <field> invalid.

Invalid number(not a specific code) <field> has a invalid number format

Invalid date(not a specific code) <field> has a invalid date format

Invalid boolean(not a specific code) <field> has a invalid Boolean format

Invalid template(not a specific code) Template Id <templateId> is invalid or inactive

SCA error(not a specific code) Unable to insert application due to a SCA Error.

Forward failed(not a specific code) Forward failed.

Upsert failed(not a specific code) Application upsert failed : <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

Error inserting batch(not a specific code) Failed to batch insert applications

Error updating batch(not a specific code) Failed to batch update applications.

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">

HCM Suite OData API: Reference Guide


276 PUBLIC Recruiting
<Annotation Term="label">
<String>Address</String>
</Annotation>
</Property>
<Property Name="agencyInfo" 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>Agency Info</String>
</Annotation>
</Property>
<Property Name="anonymizedDate" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Anonymized Date</String>
</Annotation>
</Property>
<Property Name="anonymizedFlag" 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">
<Annotation Term="label">
<String>Anonymized Flag</String>
</Annotation>
</Property>
<Property Name="appLocale" 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">
<Annotation Term="label">
<String>Application Locale</String>
</Annotation>
</Property>
<Property Name="applicationDate" Type="Edm.DateTime" 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 Date</String>
</Annotation>
</Property>
<Property Name="applicationId" 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 Id</String>
</Annotation>
</Property>
<Property Name="applicationTemplateId" 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>Application Template Id</String>
</Annotation>
</Property>
<Property Name="backgroundChkStatus" 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">
<Annotation Term="label">
<String>Background Check Status</String>
</Annotation>
</Property>
<Property Name="candConversionProcessed" 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">
<Annotation Term="label">
<String>Candidate Conversion Processed</String>
</Annotation>
</Property>

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 277
<Property Name="candTypeWhenHired" 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>Candidate Type When Hired</String>
</Annotation>
</Property>
<Property Name="candidateId" Type="Edm.Int64" 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>Candidate Id</String>
</Annotation>
</Property>
<Property Name="candidateReviewDate" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Candidate Review Date</String>
</Annotation>
</Property>
<Property Name="cellPhone" 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">
<Annotation Term="label">
<String>Cell Phone</String>
</Annotation>
</Property>
<Property Name="city" 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">
<Annotation Term="label">
<String>City</String>
</Annotation>
</Property>
<Property Name="countryCode" 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">
<Annotation Term="label">
<String>Country Code</String>
</Annotation>
</Property>
<Property Name="currentCompany" 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">
<Annotation Term="label">
<String>Current Company</String>
</Annotation>
</Property>
<Property Name="currentTitle" 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">
<Annotation Term="label">
<String>Current Title</String>
</Annotation>
</Property>
<Property Name="customFields" 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>Custom Fields</String>
</Annotation>
</Property>
<Property Name="customStatus" Type="Edm.Int64" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Custom Status</String>

HCM Suite OData API: Reference Guide


278 PUBLIC Recruiting
</Annotation>
</Property>
<Property Name="dataSource" 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">
<Annotation Term="label">
<String>Data Source</String>
</Annotation>
</Property>
<Property Name="dateOfAvailability" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Date of Availability</String>
</Annotation>
</Property>
<Property Name="dateOfBirth" Type="Edm.DateTime" 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>Date of Birth</String>
</Annotation>
</Property>
<Property Name="disabilityStatus" 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">
<Annotation Term="label">
<String>Disability Status</String>
</Annotation>
</Property>
<Property Name="duplicateProfile" 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">
<Annotation Term="label">
<String>Duplicate Profile</String>
</Annotation>
</Property>
<Property Name="emailAddress" 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">
<Annotation Term="label">
<String>Email Address</String>
</Annotation>
</Property>
<Property Name="ethnicity" 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">
<Annotation Term="label">
<String>Ethnicity</String>
</Annotation>
</Property>
<Property Name="exportedOn" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Exported On</String>
</Annotation>
</Property>
<Property Name="faxNumber" 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">
<Annotation Term="label">
<String>Fax Number</String>
</Annotation>
</Property>
<Property Name="firstName" 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">

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 279
<Annotation Term="label">
<String>First Name</String>
</Annotation>
</Property>
<Property Name="formerEmployee" 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">
<Annotation Term="label">
<String>Former Employee</String>
</Annotation>
</Property>
<Property Name="gender" 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">
<Annotation Term="label">
<String>Gender</String>
</Annotation>
</Property>
<Property Name="hiredOn" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Hired On</String>
</Annotation>
</Property>
<Property Name="homePhone" 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">
<Annotation Term="label">
<String>Home Phone</String>
</Annotation>
</Property>
<Property Name="jobAppGuid" 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">
<Annotation Term="label">
<String>Application GU Id</String>
</Annotation>
</Property>
<Property Name="jobReqId" Type="Edm.Int64" 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>Job Requisition Id</String>
</Annotation>
</Property>
<Property Name="lastModified" Type="Edm.DateTime" 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>Last Modified Date</String>
</Annotation>
</Property>
<Property Name="lastModifiedBy" 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">
<Annotation Term="label">
<String>Last Modified By</String>
</Annotation>
</Property>
<Property Name="lastModifiedByProxy" 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">
<Annotation Term="label">
<String>Last Modified By Proxy</String>
</Annotation>
</Property>

HCM Suite OData API: Reference Guide


280 PUBLIC Recruiting
<Property Name="lastname" 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">
<Annotation Term="label">
<String>Last Name</String>
</Annotation>
</Property>
<Property Name="mainContact" 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">
<Annotation Term="label">
<String>Main Contact</String>
</Annotation>
</Property>
<Property Name="middleName" 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">
<Annotation Term="label">
<String>Middle Name</String>
</Annotation>
</Property>
<Property Name="minAnnualSal" Type="Edm.Double" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Minimum Annual Salary</String>
</Annotation>
</Property>
<Property Name="nonApplicantStatus" 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">
<Annotation Term="label">
<String>Non Applicant Status</String>
</Annotation>
</Property>
<Property Name="owner" 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">
<Annotation Term="label">
<String>Owner</String>
</Annotation>
</Property>
<Property Name="ownershpDate" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Ownership Date</String>
</Annotation>
</Property>
<Property Name="preferredLoc" 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">
<Annotation Term="label">
<String>Prefered Location</String>
</Annotation>
</Property>
<Property Name="profileUpdated" 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">
<Annotation Term="label">
<String>Profile Updated</String>
</Annotation>
</Property>
<Property Name="questionResponse" 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>Question Response</String>

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 281
</Annotation>
</Property>
<Property Name="race" 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">
<Annotation Term="label">
<String>Race</String>
</Annotation>
</Property>
<Property Name="rating" Type="Edm.Int64" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Rating</String>
</Annotation>
</Property>
<Property Name="reference" 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">
<Annotation Term="label">
<String>Reference</String>
</Annotation>
</Property>
<Property Name="referenceComments" 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">
<Annotation Term="label">
<String>Reference Comments</String>
</Annotation>
</Property>
<Property Name="referralSource" Type="Edm.Int64" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Referral Source</String>
</Annotation>
</Property>
<Property Name="referredBy" 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">
<Annotation Term="label">
<String>Referred By</String>
</Annotation>
</Property>
<Property Name="resumeUploadDate" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Resume Upload Date</String>
</Annotation>
</Property>
<Property Name="snapShotDate" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Snapshot Date</String>
</Annotation>
</Property>
<Property Name="source" Type="Edm.Int64" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Source</String>
</Annotation>
</Property>
<Property Name="ssn" 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">

HCM Suite OData API: Reference Guide


282 PUBLIC Recruiting
<Annotation Term="label">
<String>Social Security Number</String>
</Annotation>
</Property>
<Property Name="startDate" Type="Edm.DateTime" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Start Date</String>
</Annotation>
</Property>
<Property Name="state" 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>State</String>
</Annotation>
</Property>
<Property Name="statusComments" 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">
<Annotation Term="label">
<String>Status Comments</String>
</Annotation>
</Property>
<Property Name="timeToHire" Type="Edm.Double" sf:Filterable="true"
sf:Sortable="false" sf:Selectable="true" sf:Upsertable="true" sf:Updatable="true"
sf:Insertable="true" sf:Required="false" Nullable="true">
<Annotation Term="label">
<String>Time to Hire</String>
</Annotation>
</Property>
<Property Name="usersSysId" 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">
<Annotation Term="label">
<String>User id</String>
</Annotation>
</Property>
<Property Name="veteranStatus" 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">
<Annotation Term="label">
<String>Veteran Status</String>
</Annotation>
</Property>
<Property Name="zip" 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">
<Annotation Term="label">
<String>Zip</String>
</Annotation>
</Property>
<Annotation Term="label">
<String>JobApplication</String>
</Annotation>
</EntityType>

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 283
9.1.2 JobApplicationComments

This entity represents the comments entered for the job application.

Required Provisioning Settings

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

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 293:
Operation Description

GET Standard OData call to query the entity

POST Update or insert operation for the JobApplicationComments entity is supported in the Q4 2015 re­
lease.

HCM Suite OData API: Reference Guide


284 PUBLIC Recruiting
Properties

Table 294:
Property Description

associatedCommentId Associated Comment Id

associatedId Associated Id

commentId Comment Id

commentator Commentator

content Content

hasAssociatedComment Has Associated Comment

migratedCommentatorUserName Migrated Commentator User Name

refId Reference Id

refType Reference Type

Navigation Properties

Table 295:
Navigation Property Related Entity Description

jobApplication JobApplication Application

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>

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 285
</Property>
<Property Name="commentator" 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>Commentator</String>
</Annotation>
</Property>
<Property Name="content" 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>Content</String>
</Annotation>
</Property>
<Property Name="hasAssociatedComment" 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>Has Associated Comment</String>
</Annotation>
</Property>
<Property Name="migratedCommentatorUserName" 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>Migrated Commentator User Name</String>
</Annotation>
</Property>
<Property Name="refId" 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>Reference Id</String>
</Annotation>
</Property>
<Property Name="refType" 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>Reference Type</String>
</Annotation>
</Property>
<Annotation Term="label">
<String>JobApplicationComments</String>
</Annotation>
</EntityType>

9.1.3 JobApplicationStatus

This entity represents the job application status.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


286 PUBLIC Recruiting
Permissions

Table 296:
Permission System Required Setting

Role-based Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

User-based Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Operations Allowed

Table 297:
Operation Description

GET Standard OData call to query the entity

POST Update or insert operation for the JobApplicationStatus entity is supported in 1511 release

Properties

Table 298:
Property Description

appStatusSetId Application Status Set Id

appStatusName Application Status Name

appStatusId Application Status Id

Navigation Properties

Table 299:
Navigation Property Related Entity Description

jobAppStatusLabel JobAppStatusLabel Job Application Status Label

jobApplication JobApplication Application

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 287
Entity Metadata

<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).

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


288 PUBLIC Recruiting
Permissions

Table 300:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 301:
Operation Description

GET Standard OData call to query the entity

POST Update or insert operation for the JobApplicationStatusLabel entity is supported in the Q4 2015
release.

Properties

Table 302:
Property Description

locale Locale

statusLabel Application Status Label

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 289
Navigation Properties

Table 303:
Navigation Property Related Entity Description

appStatus JobAppStatus Job Application Status

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

This entity represents the job application audit information.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


290 PUBLIC Recruiting
Permissions

Table 304:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 305:
Operation Description

GET Standard OData call to query the entity.

Properties

Table 306:

Property Name Description

fieldOrderPos Field order position

refType Type of reference

fieldId Field ID

revType Revision type

fieldType Field type

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 291
Property Name Description

dateOldValue Old Date value after, when suitable

dateNewValue New Date value after change, when suitable

oldValue Value before change

newValue Value after change

lastModifiedBy Name of the user that performed the change

lastModifiedDate Date of the change

source Source

mergedFrom Merged from

lastModifiedExtId ID of an External User that made the change, when suitable

clobOldValueXML CLOB old value

clobNewValueXML CLOB new value

clobFieldRef CLOB field reference

jobPostingId ID of Job Posting, when suitable

jobPostStartDate Start Date of Job Posting, when suitable

jobPostEndDate End Date of Job Posting, when suitable

Navigation Properties

Table 307:

Navigation Property Related Entity Description

jobApplication JobApplication Job Application

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

HCM Suite OData API: Reference Guide


292 PUBLIC Recruiting
9.1.6 JobApplicationSnapshot_Education

This entity represents the job application snapshot background information.

Required Provisioning Settings

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

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 309:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re­
lease.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 293
Properties

Table 310:

Property Name Description

backgroundElementId Entity Id

startDate Start Date

bgOrderPos Field Order Position

school School Name (label)

degree Degree id

applicationId Application Id

endDate End Date

lastModifiedDateTime Last Modified Date

major Major id

degreeNav Details of the degree Id

majorNav Details of the major Id

Navigation Properties

Table 311:

Navigation Property Related Entity Description

jobApplication JobApplication Job Application

degreeNav PicklistOption Details of the Degree Id

majorNav PicklistOption Details of the Major Id

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

HCM Suite OData API: Reference Guide


294 PUBLIC Recruiting
9.1.7 JobApplicationSnapshot_OutsideWorkExperience

This entity represents the job application Snapshot background information.

Required Provisioning Settings

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

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 313:
Operation Description

GET Standard OData call to query the entity.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 295
Properties

Table 314:

Property Name Description

backgroundElementId Entity Id

startDate Start Date

bgOrderPos Field Order Position

applicationId Application Id

startTitle Title Name (label)

employer Employer Name (label)

endDate End Date

businessType Business type id

lastModifiedDateTime Last Modified Date

businessTypeNav Details of the Business type

Navigation Properties

Table 315:

Navigation Property Related Entity Description

jobApplication JobApplication Job Application

businessTypeNav PicklistOption Details of the Business type

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

HCM Suite OData API: Reference Guide


296 PUBLIC Recruiting
9.1.8 JobApplicationOnboardingData

This entity represents the Job Application Onboarding Portlet information.

Required Provisioning Settings

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

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 317:
Operation Description

GET Standard OData call to query the entity.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 297
Properties

Table 318:

Property Name Description

onboardingId Onboarding Id

submittedOn Submitted On

status Onboarding status

applicationId Application Id

submittedBy Submitted By

Navigation Properties

Table 319:

Navigation Property Related Entity Description

jobApplication JobApplication Job Application

onboardingStatus JobApplicationOnboardingStatus Onboarding Status

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

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


298 PUBLIC Recruiting
Permissions

Table 320:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 321:
Operation Description

GET Standard OData call to query the entity.

Properties

Table 322:

Property Name Description

onboardingStatusId Onboarding Status Id

type Type

name Name

statusType Status Type

status Status

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 299
Property Name Description

message Message

url Url

createdDate Created Date

lastModifiedDate Last Modified Date

Navigation Properties

Table 323:

Navigation Property Related Entity Description

onboardingData JobApplicationOnboardingData Onboarding Data

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

This entity represents the job application candidate response.

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.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


300 PUBLIC Recruiting
Permissions

Table 324:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Application Export

Recruiting Permissions OData API Application Create

Recruiting Permissions OData API Application Update

Recruiting Permissions OData API Application Audit Export

Operations Allowed

Table 325:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re­
lease.

Properties

Table 326:

Property Name Description

order Question Response list order

applicationId Application Id

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 301
Property Name Description

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.

answer Question Answer

question Question

type Question type

expectedAnswerValue Expected Answer Value

expectedAnswer Expected Answer

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).

HCM Suite OData API: Reference Guide


302 PUBLIC Recruiting
9.1.12 JobApplicationBackgroundCheckRequest

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.

Table 327: API Permissions

Permission System Required Settings

Role based Admin Center Manage Permission Roles Recruiting


Permissions then select OData API Application Create,OData
API Application Export and OData API Application Update

User based Admin Center Manage Permission Roles Recruiting


Permissions then select OData API Application Createand
OData API Application Update

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

GET Query an entity

POST Insert a record

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

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 303
Use Cases

Use Case 1: Querying the background check request for Job Application.

Table 329: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
JobApplicationBackgroundCheckRequest

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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.

Table 330: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
obApplicationBackgroundCheckRequest

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

HCM Suite OData API: Reference Guide


304 PUBLIC Recruiting
Payload
Sample Code

{
"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.

Table 331: API Permissions

Permission System Required Settings

Role based Admin Center Manage Permission Roles Recruiting


Permissions then select OData API Application Create,OData
API Application Export and OData API Application Update

User based Admin Center Manage Permission Roles Recruiting


Permissions then select OData API Application Createand
OData API Application Update

You must have the Background Check feature enabled in Provisioning. To enable the Background Check feature
contact SAP Cloud Support.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 305
Operations Allowed

Table 332:
Operation Description

GET Query an entity

POST Insert a record

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

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"

HCM Suite OData API: Reference Guide


306 PUBLIC Recruiting
}
}
}
]
}
}

Use Case 2: Updating the background check result status for Job Application.
Table 334: Request Information

Operation POST

URI http://<Hostname>/odata/v2/
JobApplicationBackgroundCheckResult

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Payload
Sample Code

{
"stepMessage": "Hello",
"stepName": "Education",
"reportUrl": "http://www.sf-
vi.com",
"statusId": "21",
"finalStep": "0",
"stepStatus": "Fail"
}

9.2 Job Requisition Entities

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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 307
If two custom fields with same field Id are defined in 2 different templates then the metadata shows:

● 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

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

Required Provisioning Settings

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

GET Standard OData call to query the entity.

POST Update or insert operation for the JobRequisition entity is supported in the Q4 2015 release.

HCM Suite OData API: Reference Guide


308 PUBLIC Recruiting
Operation Description

DELETE Unposts a job requisition.

Required Fields

Specify the jobReqId for Job Requisition Entity as the business key.

Properties

Table 337:

Property Name Description

jobReqId Job Requisition Id

templateId Template Id

jobCode Job Code

jobReqStartDateTime Job Requisition Start Date Time

jobReqEndDateTime Job Requisition End DateTime

customStatus Custom Status

internalStatus Internal Status

jobDepartment Job Department

jobDivision Job Division

jobLocation Job Location

lastModified Last Modified Date

jobStartDateTime Job Start Date Time

agentInfo Agent Information

dailyOppCost Daily Opp Cost

costOfHire Cost of Hire

jobLevel Job Level

jobType Job Type

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 309
Property Name Description

jobGrade Job Grade

salaryMax Salary Max

salaryMid Salary Mid

salaryMin Salary Min

salaryAccepted Salary Accepted

Commission Commission

commissionPack Commission Pack

Options Options

optionsPack Options Pack

otherBonus Other Bonus

otherCompensation Other Compensation

Currency Currency

relocationCost Relocation Cost

relocationPack relocation Pack

signOnBonus Sign on Bonus

Stock Stock

stockPackage StockPackage

nonRecoverableDraw NonRecoverable Draw

RecoverableDraw Recoverage Draw

EEOEstablishment EEO Establishment

EEOGroup EEO Group

EEOJobCat EEO Job Category

jobReqContent Job Requisition Content

candidateHired Candidate Hired

createdDateTime Date Time Created

intranetPosting Intranet Posting

HCM Suite OData API: Reference Guide


310 PUBLIC Recruiting
Property Name Description

corporatePosting Corporate Posting

actualStartDateTime Actual Start Date Time

candidateProgress Candidate Progress Status

formDataId Form Data Id

classificationType Classification Type

classificationTime Classification Time

jobFunction Job Function

Industry Industry

lastModifiedBy Last Modified By

City City

stateProvince State Province

postalCode Postal Code

Country Country

filter1 Filter Field 1

filter2 Filter Field 2

filter3 Filter Field 3

filter4 Filter Field 4

filter5 Filter Field 5

filter6 Filter Field 6

filter7 Filter Field 7

filter8 Filter Field 8

filter9 Filter Field 9

filter10 Filter Field 10

filter11 Filter Field 11

filter12 Filter Field 12

filter13 Filter Field 13

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 311
Property Name Description

filter14 Filter Field 14

filter15 Filter Field 15

mfield1 Multi-Select Filter Field 1

mfield2 Multi-Select Filter Field 2

mfield3 Multi-Select Filter Field 3

mfield4 Multi-Select Filter Field 4

mfield5 Multi-Select Filter Field 5

mfield6 Multi-Select Filter Field 6

mfield7 Multi-Select Filter Field 7

mfield8 Multi-Select Filter Field 8

mfield9 Multi-Select Filter Field 9

mfield10 Multi-Select Filter Field 10

mfield11 Multi-Select Filter Field 11

mfield12 Multi-Select Filter Field 12

mfield13 Multi-Select Filter Field 13

mfield14 Multi-Select Filter Field 14

mfield15 Multi-Select Filter Field 15

overallScaleName Overall Scale Name

assessRatingScaleName Assess Rating Scale Name

reverseScale Reverse Scale

AppStatusSetId Application Status Set Id

salaryBase Salary Base

salaryRateType Salary Rate Type

overtimeRate Overtime Rate

targetBonusPercent Target Bonus Percent

targetBonusAmount Target Bonus Amount

HCM Suite OData API: Reference Guide


312 PUBLIC Recruiting
Property Name Description

bonusPayoutFrequency Bonus Payout Frequency

numberOpening Number of Opening

openingFilled Opening Filled

defaultLocale Default Locale

templateType Template Type

dateTimeClosed Date Time Closed

jobReqGUId Job Requisition GU Id

ratedApplicantCount Rated Applicant Count

applicationTemplateId Application Template Id

package Id Package Id

costCenter Id Cost Center Id

onBoardingPackageId OnBoarding Package Id

BGIAccountId BGI Account Id

companyVisibility Company Visibility

lastModifiedProxyUserId Last Modified Proxy User Id

Facility Facility

requiredTravel Required Travel

Brand Brand

ERPAmount ERP Amount

hardstopStatusId Hard Stop Status Id

jobRole Job Role

timeToFill Time to Fill

Age Age

positionNumber Position Number

isDeleted Is Deleted

openingsFilled Openings Filled

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 313
Navigation Properties

Table 338:

Navigation Property Name Related Entity Description

Coordinator Coordinator JobRequisitionOperator

hiringManager HiringManager JobRequisitionOperator

custAttachment Attached Documents Attachment

jobReqLocale Job Requisition Locale JobRequisitionLocale

jobReqPostings Job Postings JobRequisitionPosting

questions JobReqQuestion Job Requisition Questions

Use Cases

Table 339:
API Call Description

../odata/v2/JobRequisition('1234') Gets the job requisition where jobReqId is 1234

../odata/v2/JobRequisition('1234')? Gets the job requisition along with the hiringManager where jo­
$expand=hiringManager bReqId is 1234

HCM Suite OData API: Reference Guide


314 PUBLIC Recruiting
API Call Description

Inserts a job requisition with all required fields.


Sample Code

../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"
}
}

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 315
API Call Description

Inserts a job requisition with internalStatus = 1 (Open) and cre­


../odata/v2/JobRequisition ating a job requisition posting.
{
"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",
"internalStatus": "1",
"jobReqLocale": {
"jobTitle": "Teste API"
},
"recruiter": {
"userName": "lokamoto"
},
"hiringManager": {
"userName": "lokamoto"
},
"jobReqPostings": {
"postStartDate": "\\/
Date(1439290950000)\\/",
"postEndDate": "\\/
Date(1439942399000)\\/",
"boardId": "_agency",
"channelId": "1",
}
}

HCM Suite OData API: Reference Guide


316 PUBLIC Recruiting
API Call Description

Inserts a job requisition with all required fields and adding


../odata/v2/JobRequisition some questions.
{
"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"
},
“questions”: [
{ “questionId”: “42201”},
{ “questionId”: “42193”}
]
}

(DELETE) Unposts a job requisition where jobPostingId = 999


.../odata/v2/ and jobReqId = 1234
JobRequisitionPosting(jobPostingId=999L,
jobReqId=1234L)

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 317
API Call Description

Inserts a job requisition with multiple languages and multiple


../odata/v2/JobRequisition picklist.
{
"country":"US",
"jobCode":"PM",
"jobGrade":"2",
"defaultLanguage":"en_US",
"templateId":"1251",
"appTemplateId":"792",
"comments":"My comment",
"statusSetId":"21",
"department":"Product Management
(PM)",
"jobLevel":"1",
"division":"Industries (IND)",
"location":"San Mateo, CA",
"jobReqLocale":[
{
"jobTitle":"Test JP -
Denis",
"locale": "ja_JP",
"externalTitle": "Test JP"
},{
"jobTitle":"Test KR- Denis",
"locale": "ko_KR",
"externalTitle": "Test KR"
}],
"hiringManager":{
"userName":"cgrant"
},
"recruiter":{
"userName":"lokamoto"
},
"mfield1": [
{ "id":"1538" },
{ "id":"1542" }
]
}

../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/ (DELETE) Unpost a job requisition where jobPostingId = 999


JobRequisitionPosting(jobPostingId=999L,jo and jobReqId = 1234
bReqId=1234L)

HCM Suite OData API: Reference Guide


318 PUBLIC Recruiting
API Call Description

(POST) Insert a job requisition with multiple languages and


../odata/v2/JobRequisition multiple picklist.
{
"country":"US",
"jobCode":"PM",
"jobGrade":"2",
"defaultLanguage":"en_US",
"templateId":"1251",
"appTemplateId":"792",
"comments":"My comment",
"statusSetId":"21",
"department":"Product Management
(PM)",
"jobLevel":"1",
"division":"Industries (IND)",
"location":"San Mateo, CA",
"jobReqLocale":[
{
"jobTitle":"Test JP -
Denis",
"locale": "ja_JP",
"externalTitle": "Test JP"
},{
"jobTitle":"Test KR- Denis",
"locale": "ko_KR",
"externalTitle": "Test KR"
}],
"hiringManager":{
"userName":"cgrant"
},
"recruiter":{
"userName":"lokamoto"
},
"mfield1": [
{ "id":"1538" },
{ "id":"1542" }
]
}

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 319
API Call Description

(POST) Create a new job requisition with a predefined header


../odata/v2/JobRequisition or footer template.
{
"__metadata":{
"type":"SFOData.JobRequisition"
},
"country":"US",
"jobCode":"IT-MGR",
"jobGrade":"1",
"templateId":"1251",
"appTemplateId":"792",
"statusSetId":"21",
"department":"Product Management
(PM)",
"jobLevel":"1",
"division":"Industries (IND)",
"location":"San Mateo, CA",
"defaultLanguage":"en_US",
"hiringManager":{
"userName":"cgrant"
},
"recruiter":{
"userName":"lokamoto"
},
"jobReqLocale": {

"jobTitle": "Test API 3",


"externalTitle": "Test",
"locale": "en_US",
"templateHeaderFooter" : "SAP
Demo"
}
}

HCM Suite OData API: Reference Guide


320 PUBLIC Recruiting
API Call Description

(POST) Update the internal and external headers and footers


../odata/v2/upsert of the job requisition with id 1126.
{
"__metadata":{
"type":"SFOData.JobRequisition",
"uri":"JobRequisition(1126L)"
},
"location":"San Mateo, CA",
"jobReqLocale": {
"locale": "en_US",
"intJobDescHeader": "Etiam et
arcu mauris. Mauris viverra, lorem ut
tristique pharetra, ex diam vulputate
ante, vitae sollicitudin quam mi non
turpis",
"intJobDescFooter": "Etiam et
arcu mauris. Mauris viverra, lorem ut
tristique pharetra, ex diam vulputate
ante, vitae sollicitudin quam mi non
turpis",
"extJobDescHeader": "Etiam et
arcu mauris. Mauris viverra, lorem ut
tristique pharetra, ex diam vulputate
ante, vitae sollicitudin quam mi non
turpis",
"extJobDescFooter": "Etiam et
arcu mauris. Mauris viverra, lorem ut
tristique pharetra, ex diam vulputate
ante, vitae sollicitudin quam mi non
turpis"
}
}

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 321
API Call Description

(POST) Create a job requisition with multiple locales and with


{ internal and external header or filter.
"__metadata":{
"type":"SFOData.JobRequisition",
"uri":"JobRequisition(1234)"
},
"country":"US",
"jobCode":"IT-MGR",
"jobGrade":"1",
"templateId":"1251",
"appTemplateId":"792",
"statusSetId":"21",
"department":"Product Management
(PM)",
"jobLevel":"1",
"division":"Industries (IND)",
"location":"San Mateo, CA",
"defaultLanguage":"en_US",
"hiringManager":{
"userName":"cgrant"
},
"recruiter":{
"userName":"lokamoto"
},
"jobReqLocale": [
{
"jobTitle": "IT Manager",
"locale": "en_US",
"templateHeaderFooter" :
"SAP Demo"
},
{
"jobTitle": " IT Manager ",
"externalTitle": "IT
Manager",
"locale": "pt_BR",
"extJobDescHeader": "BR
Etiam et arcu mauris. Mauris viverra,
lorem ut tristique pharetra, ex diam
vulputate ante, vitae sollicitudin quam
mi non turpis",
"extJobDescFooter": "BR
Etiam et arcu mauris. Mauris viverra,
lorem ut tristique pharetra, ex diam
vulputate ante, vitae sollicitudin quam
mi non turpis"
}
]
}

…/odata/v2/reassignJobReq? (GET) Reassign a job requisition where jobReqId is 1106. Up­


jobReqId=1106L&hiringManager=cgrant&recrui date the hiringManager and the recruiter operators.
ter=lokamoto&$format=json

…/odata/v2/JobRequisition(581)? Get the Job Requisition and expand details of forwarded candi­
$format=json&$expand=jobReqFwdCandidates/ dates.
candidate

…/odata/v2/addModifierToJobReq? (GET) Add a Modifier to a Job Requisition defined by jobReqId.


jobReqId=1106L&modifier=cgrant The modifier field is the username of the desired modifier.

HCM Suite OData API: Reference Guide


322 PUBLIC Recruiting
API Call Description

…/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.

…/odata/v2/signForm?formDataId=7536L Get the Routemap info of the Job Requisition.

(POST) Forward a single Candidate to a Job Requisition with


…/odata/v2/JobReqFwdCandidates status.
{
"jobReqId": 1216,
"candidateId" : 1306,
"status" : "Forwarded"
}

(POST) Forward multiple Candidates to multiple Job Requisi­


…/odata/v2/upsert tions.
[
{
"__metadata":{

"type":"SFOData.JobReqFwdCandidates",
"uri":"JobReqFwdCandidates"
},
"jobReqId": 1205,
"candidateId" : 468,
"status" : "Default"
},
{
"__metadata":{

"type":"SFOData.JobReqFwdCandidates",
"uri":"JobReqFwdCandidates"
},
"jobReqId": 1203,
"candidateId" : 642,
"status" : "Forwarded"
}
]

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 323
API Call Description

…/odata/v2/ Get the English version of the first JobReqScreeningQuestion


JobReqScreeningQuestion(jobReqId=1382L,ord from JobReq with id 1382 expanding choices.
er=1L,locale=’en_US’)?$format=json&
$expand=choices

…/odata/v2/ Get one JobReqScreeningQuestionChoice from


JobReqScreeningQuestionChoice(optionId=54L SCALE_VALUE table.
,optionValue=3L,locale='en_US')?
$format=json

…/odata/v2/JobRequisition(1382)? Get the JobRequisition expanding jobReqScreeningQuestions


$format=json& navigation.
$expand=jobReqScreeningQuestions

…/odata/v2/JobRequisition(1382)? Get theJobRequisition expanding ScreeningQuestions and


$format=json& choices.
$expand=jobReqScreeningQuestions/choices

HCM Suite OData API: Reference Guide


324 PUBLIC Recruiting
API Call Description

(POST) Create or Update JobReqScreeningQuestion from Jo­


{ bRequisition.
"__metadata":{
"type":
"SFOData.JobRequisition",
"uri": "JobRequisition(986L)"
},
"jobReqScreeningQuestions" : [
{
"order": "1",
"locale" : "en_US",
"questionType" :
"QUESTION_TEXT",
"questionName" : "This is a
question (english)",
"maxLength" : 500,
"required" : false
},
{
"order": "2",
"locale" : "en_US",
"questionId" : 42201,
"questionName" : "This is a
question (english)",
"questionType" :
"QUESTION_MULTI_CHOICE",
"required" : true
},
{
"order": "2",
"locale" : "es_ES",
"questionName" : "This is a
question (spanish)",
"questionType" :
"QUESTION_MULTI_CHOICE",
"choices" : [
{
"optionLabel" : "Si"
},
{
"optionLabel" : "No"
}
]
},
{
"order": "3",
"questionName" : "This is a
rating scale question",
"questionType" :
"QUESTION_RATING",
"ratingScale" : "IntScale",
"required" : false
},
{
"order": "4",
"questionName" : "This is a
numeric question",
"questionType" :
"QUESTION_NUMERIC",
"ratingScale" : "IntScale",
"required" : true
},
{
"order": "5",

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 325
API Call Description

"questionName" : "This is
multi choice question",
"questionType" :
"QUESTION_MULTI_CHOICE",
"choices" : [
{
"optionLabel" :
"Yes 2"
},
{
"optionLabel" : "No
2"
}
]
}
]
}

Error Codes

Table 340:

Error Code Description

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 required(not a specific code) <field> required.

Field invalid(not a specific code) <field> invalid.

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.

Invalid user(not a specific code) User <userId> is invalid for <field>

Invalid number(not a specific code) <field> has a invalid number format

Invalid date(not a specific code) <field> has a invalid date format

Invalid boolean(not a specific code) <field> has a invalid Boolean format

Invalid template(not a specific code) Template Id <templateId> is invalid or inactive

HCM Suite OData API: Reference Guide


326 PUBLIC Recruiting
Error Code Description

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>

Invalid question id(not a specific code) Question Id <questionId> is invalid.

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 OK(not a specific code) Batch has been executed 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

Unexpected error (not a specific code) Unexpected error occurred <exMessage>

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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 327
Error Code Description

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

ScreeningQuestion not found Error JobReqScreeningQuestion with key (jobReqId=<jobReqId>,or­


der=<order>,locale=<locale>) not found!

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

HCM Suite OData API: Reference Guide


328 PUBLIC Recruiting
9.2.2 JobRequisitionLocale

This entity represents the data about external/internal job description header, footer, external or internal title,
external or internal description, status in different locale.

Required Provisioning Settings

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

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

Operations Allowed

Table 342:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobRequisitionLocale entity is supported in the Q4 2015 release.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 329
Properties

Table 343:

Property Name Description

extJobDescFooter External Job Description Footer

extJobDescHeader External Job Description Header

externalJobDescription External Job Description

externalTitle External Title

intJobDesHeader Internal Job Description Header

intJobDescFooter Internal Job Description Footer

jobDescription Job Description

jobReqId Job Requisition Id

jobReqLocalId Job Requisition Locale Id

jobTitle Job Title

locale Locale

status Posting Status

jobRequisition Job Requisition

Navigation Properties

Table 344:
Navigation Property Related Entity Description

jobRequisition JobRequisition Job Requisition

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

HCM Suite OData API: Reference Guide


330 PUBLIC Recruiting
9.2.3 JobRequisitionOperator

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.

Required Provisioning Settings

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

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

Operations Allowed

Table 346:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobRequisitionOperator entity is supported in the Q4 2015 re­
lease.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 331
Properties

Table 347:

Property Name Description

emailId Operator email id

fax Operator fax

firstName Operator First Name

jobReqId Job Requisition Id

lastName Operator Last Name

phoneNumber Operator phone number

usersSysId Operator Users Sys

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

This entity represents the job requisition posting details.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


332 PUBLIC Recruiting
Permissions

Table 348:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

Operations Allowed

Table 349:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobRequisitionPosting entity is supported in the Q4 2015 re­
lease.

Properties

Table 350:

Property Name Description

agencyComment Agency Comment

boardId Job Board Id

boardName Job Board Name

channelId Job Channel Id

extPartnerAccountId Ext Partner Account...

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 333
Property Name Description

jobPostingId Job Posting Id

jobReqId Job Requisition Id

lastModifiedBy Posting Last Modified by User

lastModifiedDateTime Posting Last Modified by Date and Time

postEndDate Posting End Date

postStartDate Posting Start Date

postedBy Job Posted By

postingStatus Job Posting Status

Navigation Properties

Table 351:
Navigation Property Related Entity Description

jobRequisition JobRequisition Job Requisition

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

This entity represents the job requisition questions details.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


334 PUBLIC Recruiting
Permissions

Table 352:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

Operations Allowed

Table 353:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobRequisitionQuestions entity is supported in the Q4 2015 re­
lease.

Properties

Table 354:

Property Name Description

questionId Question ID

questionSource Question Source

questionName Question Name

questionType Question Type

questionCategory Question Category

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 335
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 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.

Required Provisioning Settings

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

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

HCM Suite OData API: Reference Guide


336 PUBLIC Recruiting
Operations Allowed

Table 356:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re­
lease.

Properties

Table 357:

Property Name Description

referralId Referral ID

type Referral Type

expirationDate Expiration Date

jobReqId Job Requisition ID

createdDate Created Date

lastModifiedDate Last Modified Date

status Referral Status

referredBy Referred By

jobBoardName Job Board Name

rcmAppStatusSetItemId Rcm App Status Set Item ID

referralKey Referral Key

candidateSiteId Candidate Site ID

Navigation Properties

Table 358:

Navigation Property Related Entity Description

candidate Candidate Candidate

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 337
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.7 JobReqScreeningQuestion

This entity represents the details of questions associated to a Job Requisition.

Required Provisioning Settings

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

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

HCM Suite OData API: Reference Guide


338 PUBLIC Recruiting
Operations Allowed

Table 360:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobReqScreeningQuestion entity is supported in the Q4 2015
release.

Properties

Table 361:

Property Name Description

jobReqId Job Requisition Id

order JobReq Question order

questionId JobReq Question Id

questionName JobReq Question Name

locale JobReq Question locale

questionType JobReq Question type

expectedAnswer JobReq Question Expected Answer

expectedDir JobReq Question Expected Dir

questionParentId JobReq Question parent id

questionParentResponse JobReq Question parent response

maxLength JobReq Question max length

questionWeight JobReq Question weight

required Applicant must answer the question

disqualifier Applicant must answer correctly

score Include in screening score

questionDescription JobReq Question description

ratingScale RatingScale name for RATING_SCALE questions

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 339
Navigation Properties

Table 362:

Navigation Property Related Entity Description

choices JobReqScreeningQuestionChoice Choices

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.

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


340 PUBLIC Recruiting
Permissions

Table 363:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Requisition Export

Recruiting Permissions OData API Requisition Create

Recruiting Permissions OData API Requisition Update

Operations Allowed

Table 364:
Operation Description

GET Standard OData call to query the entity.

POST Update or insert operation for the JobReqFwdCandidates entity is supported in the Q4 2015 re­
lease.

Properties

Table 365:

Property Name Description

optionId Option Id

optionValue Option value

locale Option locale

optionName Option name

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 341
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.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).

9.3 Candidate Entities

9.3.1 Candidate and CandidateBackground_*

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.

HCM Suite OData API: Reference Guide


342 PUBLIC Recruiting
Required Provisioning Settings

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

Role-based Recruiting Permissions OData API Candidate Export

Recruiting Permissions OData API Candidate Create

Recruiting Permissions OData API Candidate Update

Recruiting Permissions Candidate Tagging Permission

User-based Recruiting Permissions OData API Candidate Export

Recruiting Permissions OData API Candidate Create

Recruiting Permissions OData API Candidate Update

Recruiting Permissions Candidate Tagging Permission

Required Provisioning Settings

The following provisioning flag needs to be unchecked: Company Settings Web Services Disable OData
API

Operations Allowed

Table 367:
Operation Description

GET Standard OData call to query the entity

POST Update or Insert operation for the Candidate entity is supported in the Q3 2015 release.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 343
Required Fields

Specify the candidateId for Candidate Entity as the business key.

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.

Table 368: Candidate Properties

Property Name Description

address Street Address

anonymized Anonymized Flag

anonymizedDateTime Anonymized Date Time

candidateId Candidate Id

candidateLocale Candidate Locale

cellPhone Primary Phone

city City

contactEmail Contact Email

country Country

creationDateTime Creation Date

currency Currency

custPrimaryPhone Home/Other Phone

dataPrivacyId Data Privacy Id

dateofAvailability Date of Availability

externalCandidate External Candidate

firstName First Name

gender Gender

homePhone Personal Mobile Phone

lastLoginDateTime Last login date

HCM Suite OData API: Reference Guide


344 PUBLIC Recruiting
Property Name Description

lastModifiedDateTime Last Modified Date

lastName Last Name

middleName Middle

minAnnualSal Minimum Annual Salary

partnerMemberId Partner Member Id

partnerSource Partner Source

privacyAcceptDateTime Privacy Acceptence Date

primaryEmail Primary Email

publicIntranet Public Intranet

shareProfile Share Profile flag

state State/Province

usersSysId Users sys id

visibilityOption Visibility Option

workMobilePhone Work Mobile Phone

zip Postal Code

password Password. Not available to query. Create and update only.

shareProfile Profile visibility.

agreeToPrivacyStatement Agreement for privacy statement. Not available to query. Cre­


ate and update only.

Table 369: CandidateComments Properties

Property Name Description

associatedCommentId Associated Comment Id

associatedId Associated Id

commentId Comment Id

commentator Commentator

content Content

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 345
Property Name Description

hasAssociatedComment Has Associated Comment

migratedCommentatorUserName Migrated Commentator User Name

refId Reference Id

refType Reference Type

Table 370: CandidateTags Properties

Property Name Description

label Label

locale Locale

tagId Tag Id

Navigation Properties

Table 371: Candidate Navigation Properties

Navigation Property Related Entity Description

coverLetter Attachment Cover Letter

educationdocs Attachment Education Documents

ethnicity PicklistOption Ethnicity

resume Attachment Resume

comments Candidate comments Comments

tags Candidate tags tags

country PicklistOption Country

state PicklistOption State

outsideWorkExperience CandidateBackground_OutsideWorkEx­ Outside Work Experience


perience

education CandidateBackground_Education Education

HCM Suite OData API: Reference Guide


346 PUBLIC Recruiting
Table 372: CandidateComments Navigation Properties

Navigation Property Related Entity Description

candidate Candidate Candidate

Use Cases

Table 373:

API Call Operation Description

../odata/v2/ GET Get the candidate where candidateId is


Candidate(‘12333’) 12333

../odata/v2/ GET Get the candidate along with the resume


Candidate('12333')? where candidate is 12333
$expand=resume

../odata/v2/ GET Get all applications associated with cur­


Candidate('12333')? rently candidate.
$expand=jobsApplied

POST Inserts a candidate with 5 basic fields.


Sample Code
There will be no other validation for re­
../odata/v2/Candidate quired fields unless user sends any addi­
{ tional required field.
"firstName":
"John",
"lastName": "Doe",
"country": "US",
"cellPhone": "+1
866 9999-9999",
"primaryEmail":
"john.doe@acffgt.com"
}

POST Updates candidateId 45417 on its first­


Sample Code
Name and minAnnualSal fields.
../odata/v2/upsert
{
"__metadata":{

"type":"SFOData.Candida
te",

"uri":"Candidate(45417)
"
},
"firstName":"Test",
"minAnnualSal" :
"70000"
}

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 347
API Call Operation Description

POST Inserts a candidate with education back­


Sample Code
ground information.
../odata/v2/Candidate
{
"firstName" : "John",
"lastName" : "Doe",
"gender" : "M",
"country" : "US",
"primaryEmail" : "
john.doe@acffgt.com ",
"cellPhone":""+1 866
9999-9999",
"education" : {
"school": "ABC
institute",
"major": "asdas",
"degree":
"Bachelor"
}
}

HCM Suite OData API: Reference Guide


348 PUBLIC Recruiting
API Call Operation Description

POST Inserts candidate with two multi-attach­


Sample Code
ments
../odata/v2/Candidate
{
"__metadata":{

"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"
}
]
}

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 349
API Call Operation Description

POST Insert candidate with background ele­


Sample Code
ments
../odata/v2/Candidate
{
"primaryEmail":
"candidate@sap.com",
"firstName":
"Education",
"lastName":
"Master",
"country": "BR",
"cellPhone": "55
51 9999-9999",
"education" : {
"results":[
{
"degree": "217",
"school":
"UNISINOS",
"major":"111"
}
]}
}

POST Update candidate with background ele­


Sample Code
ments
../odata/v2/upsert
{
"__metadata" : {
"type":
"SFOData.Candidate",
"uri" :
"Candidate(1181L)"
},
"education" : {
"results":[
{
"degree": "217",
"school":
"UNISINOS",
"major":"111"

}
]}
}

HCM Suite OData API: Reference Guide


350 PUBLIC Recruiting
API Call Operation Description

POST Insert candidate with comments and


Sample Code
tags
../odata/v2/Candidate
{
"primaryEmail":
"candidate@sap.com",
"firstName":
"Education",
"lastName":
"Master",
"country": "BR",
"cellPhone": "55
51 9999-9999",
"comments": [
{"content":
"comment one"},
{"content":
"comment two"}
],
"tags" : [
{ "label" :
"Favorite"},
{ "label":
"Excellent"},
{ "label" :
"Good"}
]
}

POST Update tag id 999 and comment id 123


Sample Code
where candidate id is 4333
../odata/v2/upsert
{
"__metadata":
{ "uri":
"Candidate(4333)" },
"comments": {

“commentId”: “123”,

"content": "comment
one"
},
"tags" : {
“id”:
“999”,
"label" :
"Good"},
}
}

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 351
API Call Operation Description

POST Insert candidate with a picklist field


Sample Code
(state)
../odata/v2/Candidate
{
"primaryEmail":
"candidate@sap.com",
"firstName":
"Education",
"lastName":
"Master",
"country": "BR",
"cellPhone": "55
51 9999-9999",
"state":
{"id":"480"}
}

POST Insert a candidate with a password, visi­


Sample Code
bility profile as “Any company recruiter
../odata/v2/Candidate worldwide” and accepting the Privacy
{ Statement
"firstName":
"Test4",
"lastName":
"Privacy",
"country": "BR",
"cellPhone": "55
51 9999-9999",
"primaryEmail":
"privacy4@test.com",
"shareProfile":"2",
"password":"123",

"agreeToPrivacyStatemen
t":"true"
}

Error Codes

Table 374:

Error Code Description

Permission not enabled(not a specific code) OData API Candidate <editType> permission in Admin Center
is not enabled.

Tags Permission Recruiting Candidate Tagging permission is Admin Center is


not enabled.

Candidate already exists(not a specific code) Candidate already exists.

HCM Suite OData API: Reference Guide


352 PUBLIC Recruiting
Error Code Description

Field required(not a specific code) <field> required.

Field invalid(not a specific code) <field> invalid.

Invalid number(not a specific code) <field> has a invalid number format

Invalid date(not a specific code) <field> has a invalid date format

Invalid boolean(not a specific code) <field> has a invalid Boolean format

SCA Error(not a specific code) Unable to insert Candidate due to a SCA Error

DPCS not enabled(not a specific code) DPCS 2 not enabled

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

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 353
Permissions

Table 375:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Candidate Export

Recruiting Permissions OData API Candidate Create

Recruiting Permissions OData API Candidate Update

Recruiting Permissions Candidate Tagging Permission

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Candidate Export

Recruiting Permissions OData API Candidate Create

Recruiting Permissions OData API Candidate Update

Recruiting Permissions Candidate Tagging Permission

Operations Allowed

Table 376:
Operation Description

GET Standard OData call to query the entity.

Properties

Table 377:

Property Name Description

backgroundElementId Entity Id

startDate Start Date

bgOrderPos Field Order Position

school School Name (label)

degree Degree id

HCM Suite OData API: Reference Guide


354 PUBLIC Recruiting
Property Name Description

applicationId Application Id

endDate End Date

lastModifiedDateTime Last Modified Date

major Major id

degreeNav Details of the degree Id

majorNav Details of the major Id

Navigation Properties

Table 378:

Navigation Property Related Entity Description

jobApplication JobApplication Job Application

degreeNav PicklistOption Details of the Degree Id

majorNav PicklistOption Details of the Major Id

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

Required Provisioning Settings

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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 355
Permissions

Table 379:
Permission System Required Setting

Role-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Candidate Export

Recruiting Permissions OData API Candidate Create

Recruiting Permissions OData API Candidate Update

Recruiting Permissions Candidate Tagging Permission

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Candidate Export

Recruiting Permissions OData API Candidate Create

Recruiting Permissions OData API Candidate Update

Recruiting Permissions Candidate Tagging Permission

Operations Allowed

Table 380:
Operation Description

GET Standard OData call to query the entity.

Properties

Table 381:

Property Name Description

backgroundElementId Entity Id

startDate Start Date

bgOrderPos Field Order Position

applicationId Application Id

startTitle Title Name (label)

HCM Suite OData API: Reference Guide


356 PUBLIC Recruiting
Property Name Description

employer Employer Name (label)

endDate End Date

businessType Business type id

lastModifiedDateTime Last Modified Date

businessTypeNav Details of the Business type

Navigation Properties

Table 382:

Navigation Property Related Entity Description

jobApplication JobApplication Job Application

businessTypeNav PicklistOption Details of the Business type

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 Job Offer Entities

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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 357
● The JobOffer inherits some fields from JobApplication and from JobRequisition. These fields are defined on
the offer template at provisioning. They are initially filled with it’s inherited value, and they will keep these
values if not edited or changed during the creation operation

Required Provisioning Settings

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

Recruiting Permissions OData API Offer Approval Export

Recruiting Permissions OData API Offer Approval Create

Recruiting Permissions OData API Offer Approval Update

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Offer Approval Export

Recruiting Permissions OData API Offer Approval Create

Recruiting Permissions OData API Offer Approval Update

Operations Allowed

Table 384:
Operation Description

GET Standard OData call to query the entity.

POST Update and Insert operations for OfferApproval are supported in the Q2 2016 release.

HCM Suite OData API: Reference Guide


358 PUBLIC Recruiting
Properties

Table 385:

Property Name Description

offerApprovalId Offer Detail Id

applicationId Application Id

templateId Template Id

formTemplateId Form Template Id

formDataId Form Data Id

internalStatus Internal Status

String Message String Message

initialComment Initial Comment

createdBy Created By String Name

createdDate Created Date

lastModifiedBy Last Modified By String Name

lastModifiedDate Last Modified Date

anonymizedFlag Anonymized Flag

anonymizedDate Anonymized Date

version Offer Detail Version

approvers Navigation to OfferApprover

redefineTemplateApprovers Flag for redefining the approvers set on template

Navigation Properties

Table 386:

Navigation Property Related Entity Description

Approvers OfferApprover Approvers

Application JobApplication Job Application

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 359
Use Cases

Table 387:

API Call Operation Description

/odata/v2/ GET Get the offer approver with id 221.


OfferApprover(221)

/odata/v2/ GET Get the offer approval detail with id 191.


OfferApproval(191)

/odata/v2/ GET Get the offer approval list from applica­


JobApplication(601L)/ tionId 601.
offerApproval

/odata/v2/ GET Get the offer approver list from Offer Ap­
JobApplication(601L)/ proval 191 from Applicationid 601.
offerApproval(191)/
approvers

/odata/v2/approveOffer? GET The import function works to approve a


applicationId=601L&comment= candidate based on application id. To ex­
’None’
ecute the action, the "application id" and
"comment" parameters are required.

/odata/v2/declineOffer? GET The import function works to decline a


applicationId=601L&comment= application offer based on application id.
’None’
To execute the action, the "application
id" and "comment" parameters are re­
quired.

/odata/v2/ GET This functionsends an Offer in the


sendOfferForApproval? “Draft” stage for approval to the approv­
applicationId=601L
ers. To execute this action, the "applica­
tion id" parameter is required.

Error Codes

Table 388:

Error Code Description

Permission not enabled(not a specific code) OData API Candidate <editType> permission in Admin Center
is not enabled.

HCM Suite OData API: Reference Guide


360 PUBLIC Recruiting
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

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 361
Custom Functions

Table 389:

Function Imports Parameters Return type Description

approveOffer applicationId (long) XML The function import makes


action to approve a candidate
comment (String)
based on application id. To ex­
ecute the action two parame­
ters are required: application
id and comment.

Please Note:

1. You need approve the ap­


plication offer in a spe­
cific order. The order is
defined on approver list
in the offer application.
2. You need this application
in a “offer” status.
3. One approver for time
can execute the action
“approve”, only in his
turn.
4. The application will
change to status “com­
pleted” only after all ap­
provers approve it,
meantime the status is
“pending”.

Request Sample:

● Get the application,


where the id 601 and
make a approve action.
● Operation: GET

…/odata/v2/approveOffer?
applicationId=601L&com­
ment=”

…/odata/v2/approveOffer?
applicationId=601L&com­
ment=’None’

Error expected:

● SCA Error(not a specific


code): Unable to decline
offer due to an SCA Error.

HCM Suite OData API: Reference Guide


362 PUBLIC Recruiting
Function Imports Parameters Return type Description

● Wrapped Ex(not a spe­


cific code): Unexpected
error occurred and the e-
mail to Candidate could
not be sent: <error>
● User isn’t a valid ap­
prover(not a specific
code): User <field> is not
an approver for this offer.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 363
Function Imports Parameters Return type Description

declineOffer applicationId (long) XML The function import makes


action to decline a application
comment (String)
offer based on application id.
To execute the action two pa­
rameters are required: appli­
cation id and comment.

Please Note:

1. You can decline a appli­


cation offer only in your
turn.
2. Only one approver of the
approvers list needs de­
cline.
3. Even if other approver
approve you can decline.

Request Sample:

● Get the application,


where the id 601 and
make a decline action.
● Operation: GET

…/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:

● SCA Error(not a specific


code): Unable to decline
offer due to an SCA Error.
● Wrapped Ex(not a spe­
cific code): Unexpected
error occurred and the e-
mail to Candidate could
not be sent: <error>
● User isn’t a valid ap­
prover(not a specific
code): User <field> is not
an approver for this offer.

HCM Suite OData API: Reference Guide


364 PUBLIC Recruiting
Function Imports Parameters Return type Description

sendOfferForApproval applicationId (long) XML The function import makes


action to send for approval an
application offer based on ap­
plication id. To execute the
action application id is re­
quired.

Please Note:

1. The Offer must be in


“Draft” state.

Request Sample:

● Make a request informing


the application which has
the offer in Draft state.
● Operation: GET

…/odata/v2/sendOfferFor­
Approval?applicationId=601L

Errors expected:

● Failed to send offer for


approval.
● Invalid application id.
● Offer is not in draft state.
● applicationId required.

Pre-defined Approvers Scenarios

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:

● When “editable=”true”” and “reorder=”true””


On INSERT, the template approvers will always be added in the beginning of the approver order. Adhoc
approvers can be sent on INSERT payload, and they will be put after the approvers from the template. The
template approvers do not need to be on the payload. If a group type is defined, the user must inform it on the
payload, with the id of the approvalStep on the property “approvalStepId.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 365
On INSERT with the flag “redefineTemplateApprovers”=”true”, the approvers on the payload will be the ones
inserted, ignoring the ones loaded from the template. The user can add a template approver in the payload,
with its respective approvalStepId, in any order it desires.
On UPDATE, one can reorder the approvers, remove or add ad-hoc ones; all approvers must be on the
payload, including the ones from the template with their respecting approvalStepId. Otherwise, the approvers
from template that are not in the payload will be removed from the offer approval.
● When “editable=”true”” and “reorder=”false””
On INSERT, the behavior is the same as the previous case. Template approvers are first, and then ad-hoc
approvers set on the payload. In addition, the user can send a payload without approvers; in this case, only the
approvers from the template are set. If a group type is defined, the user must inform it on the payload, with the
id of the approvalStep on the property “approvalStepId.
On INSERT with the flag “redefineTemplateApprovers”=”true”, the behavior is the same as the previous case,
except that the order of the template approvers must be maintained. One can add ad-hoc approvers even
between the template ones, but cannot change the order of the pre-defined approvers.
On UPDATE, it is not possible to reorder the approvers, but one can add or remove ad-hoc approvers. The
template approvers must be in the correct order in the payload.
● When “editable=”false”” and “reorder=”true””
On INSERT, only the template approvers are set. If a group type is defined, the user must inform it on the
payload, with the id of the approvalStep on the property “approvalStepId’. Ad-hoc approvers on the payload
will be ignored.
On INSERT with the flag “redefineTemplateApprovers”=”true”, the approvers on the payload will be the ones
inserted, ignoring the ones loaded from the template. The user must add all template approvers in the
payload, as they cannot be deleted, with its respective approvalStepId, in any order it desires. Ad-hoc
approvers will be ignored.
On UPDATE, they can be reordered, but none of them can be removed. On UPDATE payload, if one wants to
reorder the approvers, they all must be on the payload with its respective approvalStepId.
● When “editable=”false”” and “reorder=”false””
On INSERT, only the template approvers are set. If a group type is defined, the user must inform it on the
payload, with the id of the approvalStep on the property “approvalStepId.
On INSERT with the flag “redefineTemplateApprovers”=”true”, the approvers on the payload will be the ones
inserted, ignoring the ones loaded from the template. The user must add all template approvers in the
payload, as they cannot be deleted, with its respective approvalStepId, in any order it desires. Ad-hoc
approvers will be ignored.
On UPDATE, all template approvers must be in the payload, with their respective approvalStepIds, in the order
set on the template.

The default-user “type” attribute.

● 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

HCM Suite OData API: Reference Guide


366 PUBLIC Recruiting
The user set on the template must be a valid user, 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.

9.4.2 JobOfferApprover

This entity represents the approvers of the Job Offer.

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.

Required Provisioning Settings

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

Recruiting Permissions OData API Offer Approval Export

Recruiting Permissions OData API Offer Approval Create

Recruiting Permissions OData API Offer Approval Update

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 367
Permission System Required Setting

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Offer Approval Export

Recruiting Permissions OData API Offer Approval Create

Recruiting Permissions OData API Offer Approval Update

Operations Allowed

Table 391:
Operation Description

GET Standard OData call to query the entity.

Properties

Table 392:

Property Name Description

backgroundElementId Offer Detail Id

Username Application Id

approverOrder Approver Order

createdBy Created By String Name

createdDate Created Date

lastModifiedBy Last Modified By String Name

lastModifiedDate Last Modified Date

offerDetailId OfferApproval Id (Parent)

Comment Approver Comment String Message

approvalStepId Approval Step Id

Navigation Properties

None.

HCM Suite OData API: Reference Guide


368 PUBLIC Recruiting
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.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.

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 369
Required Provisioning Settings

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

Recruiting Permissions OData API Offer Letter Export

Recruiting Permissions OData API Offer Letter Create

User-based
Integration Tools Admin access to OData API

Recruiting Permissions OData API Offer Letter Export

Recruiting Permissions OData API Offer Letter Create

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.

HCM Suite OData API: Reference Guide


370 PUBLIC Recruiting
Properties

Table 395:

Property Name Description

rcmOfferId Offer Id

applicationId Application Id

jobTitle Job Title

salaryRate Salary Rate

salaryRateType Salary Rate Type

currencyCode Currency Code

overtimeRate Overtime Rate

targetBonusPercent Target Bonus Percent

targetBonusAmout Target Bonus Amount

bonusPayoutFreg Bonus Payout Freq

stockOption Stock Option

stockGrant Stock Grant

jobStartDate Job Start Date

offerSentDate Offer Sent Date

offerExpirationDate Offer Expiration Date

sendMode Send Mode

status Status

createdDate Created Date

createdBy Created By

lastModifiedDate Last Modified Date

lastModifiedBy Last Modified By

countryName Country Name

countryCode Country Code

Locale Locale

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 371
Property Name Description

localeCode Locale Code

templateName Template Name

templateId Template Id

subject E-mail subject

body Offer Letter HTML format

mailBoxes E-mail destination address

ccRecipients E-mail Cc address

bccRecipients E-mail Bcc address

tokens Token’s values list

Navigation Properties

Table 396:

Navigation Property Related Entity Description

attachments Attachments Files attached to the offer letter.

offerLetterPDF Attachments Offer Letter in PDF file format

Attachments Properties

Table 397:

Property Name Description

rcmAttachmentId Rcm Attachment Id

source Source

referenceId Reference Id (filled with offerId)

attributeId Attribute Id

attachmentId Attachment Id

createdDate Created Date

HCM Suite OData API: Reference Guide


372 PUBLIC Recruiting
Property Name Description

createdBy Created By

Use Cases

Table 398:

API Call Operation Description

/odata/v2/OfferLetter(163L) GET Get the offer letter with id 163.

/odata/v2/OfferLetter GET Get all offer letters sent for all job appli­
cation.

/odata/v2/ GET Get offer letter with id 163 in Json for­


OfferLetter(163L)/? mat.
format=json

/odata/v2/ GET Get offer letter with id 163 in Json format


OfferLetter(163L)/? and navigation attachments expanded.
format=json&
$expand=attachments

/odata/v2/ GET Get offer letter with id 163 in Json format


OfferLetter(163L)/? and navigation to offer letter encoded in
format=json&
pdf file format relating with sendMode.
$expand=offerLetterPDF

/odata/v2/ GET Function import to sendMode email.


sendMailOfferLetter?
offerLetterId=261L&sendMode
=’email’

/odata/v2/ GET Function import to sendMode print.


sendMailOfferLetter?
offerLetterId=261L&sendMode
=’print’

/odata/v2/ GET Function import to sendMode verbal.


sendMailOfferLetter?
offerLetterId=261L&sendMode
=’verbal’

/odata/v2/ GET Function import to sendMode emai­


sendMailOfferLetter? laspdf. For this case is required the pa­
offerLetterId=261L&sendMode
rameter bodyTemplate and bodyLocale.
=’emailaspdf’&bodyTemplateI
d=811L&bodyLocale=’en_US’

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 373
Error Codes

Table 399:

Error Code Description

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

HCM Suite OData API: Reference Guide


374 PUBLIC Recruiting
Custom Functions

Table 400:

Function Imports Parameters Return type Description

sendMailOfferLetter offerLetterId (Long) XML The function import makes


action to send the offer letter
sendMode (String)
by e-mail. To execute the ac­
bodyTemplateId (Long) tion if the send mode is equal
“email”, “verbal” or “print”
bodyLocale
two parameters are required:
(Long) offerLetterId and sendMode.

Please Note:

1. You need the offer letter


with a sendMode “pend­
ing”.
2. The action will update the
fields lastModifyBy and
lastModifyDate, send­
Mode, offerSentDate

Request Sample:

● Get the offerLetter,


where the id 261 and
make a send mail action.
● Operation: GET

…/odata/v2/sendMailOffer­
Letter?offerLet­
Zìvín³dkÚY�× OÔ�ƒ-Šâ¬¤*¯g«IQIÿ“Ÿ¬Ç
Mode=’email’

● Get the offerLetter,


where the id 261 and
make a send mail as pdf
action, using the tem­
plate 811 with language
en_US.
● Operation: GET

…/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’

HCM Suite OData API: Reference Guide


Recruiting PUBLIC 375
Function Imports Parameters Return type Description

Error expected:

● Recruiting OData API Of­


fer Letter Create and Ex­
port permission in Admin
Center is not enabled
● The offer letter is not in
pending state.
● Invalid send mode for of­
fer letter
● Template Invalid

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

HCM Suite OData API: Reference Guide


376 PUBLIC Recruiting
10 Employee Central

You can get information about Employee Central entities in the dedicated guide, Employee Central OData API
Reference Guide.

Related Information

Employment Central OData API Reference Guide

HCM Suite OData API: Reference Guide


Employee Central PUBLIC 377
11 Onboarding

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.

Required Provisioning Settings

In provisioning account company settings, Onboarding Application feature must be turned ON.

Operations Allowed

Table 402:
Operation Description

GET Standard MDF OData settings are applicable.

PUT Standard MDF OData settings are applicable.

MERGE Standard MDF OData settings are applicable.

DELETE Standard MDF OData settings are applicable.

UPSERT/POST Standard MDF OData settings are applicable.

HCM Suite OData API: Reference Guide


378 PUBLIC Onboarding
Properties

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.

candidateID In RX-OB integration flow, this is set to the id of the candidate.


In external-ATS (xATS) – OB integration, this is generated us­
ing the rcm_job_application_seq sequence counter. (For xATS
– OB flow, this is same as application ID.)

managerId The user-id of the manager

hrManagerId The user-id of the HR Manager

kmsUserId The onboarding-activity-id; i.e, the hr-data-id of the onboard­


ing activity.

userId User-id of this candidate.

readytoHire Whether or not the candidate ready to be hired. This is false by


default. When paperwork-done notification under SF_Notifica­
tions feature in KMS is enabled (recommended configuration),
it is set to true when NES step of onboarding activity is com­
pleted.

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.

hireDate The start date of the employee.

fName First Name

lName Last Name

email Email address

division Division

department Department

location Location

payGrade Pay Grade

jobTitle Job Title

internalHire Whether or not the candidate is an internal hire. Default is


false. In RX – OB flow, RX (RMK) sets this flag depending upon
if the candidate is internal or external. For xATS – OB integra­
tions: When SF_Notifications feature in KMS is enabled, this
field is updated after the candidate-created, post-phv and pa­
perwork-done notifications. (Note that once set to true, this
flag cannot be set to false by notifications.)

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.

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 379
Navigation Properties

Table 404:
Navigation Property Related Entity Description

hrManagerIdNav User The HR manage related to this entity.

managerIdNav User The manager related to this entity.

userId User The user ID of the candidate.

Entity Relation Diagram

Use Cases

Table 405:
API Call Description

/odata/v2/OnboardingCandidateInfo?$filter= Get OnboardingCandidateInfo object for applicant with appli­


applicantId eq '2443' cation-id 2443.

/odata/v2/OnboardingCandidateInfo?$filter= Get candidates ready to be hired (but not yet hired).


readyToHire eq 'true' and hired eq ‘false’

/odata/v2/OnboardingCandidateInfo?$filter= Get candidate data created on or after a given date.


createdDate ge
datetime'2014-12-30T00:00:00'

HCM Suite OData API: Reference Guide


380 PUBLIC Onboarding
11.2 HRData

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

Table 406: API Permissions

Permission System Required Settings

Role based None

User based None

Operations Allowed

Table 407:
Operation Description

GET To authenticate for other OData API Services

PUT To update the existing HR Data of a candidate

Properties

There are separate Metadata API provided to the list of fields which can be queried:

Filter Fields: https://<Hostname>/<PartnerName>/odata/v2/hrdata/metadata/FilterFields

Expand Tags: https://<Hostname>/<PartnerName>/odata/v2/hrdata/metadata/ExpandTags

Update Fields: https://<Hostname>/<PartnerName>/odata/v2/hrdata/metadata/UpdateFields

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.

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 381
Prerequisite: For GET operation

1. Get a valid authorization token.


Fetch a valid token, from the OData Authentication API, which is mentioned previously.
2. Setting up Index Fields.
To filter on a field, it should be part of the process’s Index field. Index fields can be added/edited in Super
AdminAccountProcesses Index Fields of the process. This is mandatory param and must be passed.
3. Setting up Expand tags.
Name of the data-dictionary (data-dictionaries) whose fields should be returned in the response. One or more
expand tags can be provided. When multiple tags are provided, fields of both the tags will be returned in the
response. If certain specific fields are required then new data-dictionary need to be created.
4. Format for sending Request Params.
1. $filter:
Filter Condition which needs be used to filter and get the HRData.
For filter param in the request:
Filter format: FCode eq '<Code of Index Field>' and FVal <Condition to Use> '<Value to be checked>'
Conditions:
○ Multiple conditions can be joined with and/or.
○ To filter using Date fields like startDate, HireDate use FValDt instead of FVal.
○ To filter using Number/Decimal/Numeric fields like Payrate, Hours per day use FValNum instead of
FVal.
○ Supported string functions are substringof, startswith and endswith. Use them with FVal.
○ Valid operators for Date, Number and string are Greater than (gt) or equal (ge), Lesser than (lt) or
equal (le), not equal (ne) and equals (eq).
○ All the above operators can be applied only for FVal, FValDt and FValNum.
○ For FCode equals is the only operation allowed.
Examples:
○ FCode eq 'FirstName' and FVal eq 'John'.
○ (FCode eq 'LastName' and FVal eq 'Smith').
○ ((FCode eq 'Payrate' and FValNum le 20) or (FCode eq 'StartDate' and FValDt gt
datetime'2016-01-01T00:00:00.0Z').
○ ((FCode eq 'MiddleName' and substringof('Ch', FVal) eq true) and (FCode eq 'City' and
startswith('Ca', FVal) eq false)).
The FCode, is code of the Index Field. To filter on a field, it should be part of the process’s Index field.
Index fields can be added/edited in Super Admin Account Processes Index Fields of the
process . This is a mandatory parameter and must be passed.
2. $select:
Fields that needs to come in the response and not return all the other fields of the HRData. These fields
should be part of the HR Data.
Example:
$select=FirstName,LastName
3. $expand:
Name of the data-dictionary (data-dictionaries) whose fields should be returned in the response. One or
more expand tags can be provided. When multiple tags are provided, fields of both the tags will be
returned in the response.
Example:
$expand=EC,Offboarding

HCM Suite OData API: Reference Guide


382 PUBLIC Onboarding
4. $top:
Maximum number of records to be returned as part of the response. The upper limit is 100.
Example:
$top=50
5. $skip:
Skip the number of records and fetch from the number provided.
Example:
$skip=100

Table 408: Request Information

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.

Headers Authorization: Token (Obtained from OData API Authentica­


tion).

Payload No

Example:

https://<Hostname>/<PartnerName>/odata/v2/HRData?$filter=(FCode eq 'LastName' and FVal eq 'Smith')&


$select=FirstName,LastName&$expand=EC,Offboarding&$top=50&$skip=100

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"
}
]

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 383
},{
"hrDataId":"117b9794-db59-4373-9bb6-afbdd3cc5789","HrdataDetails":[
{
"Key":"FirstName","Value":"Graeme"
},{
"Key":"LastName","Value":"Smith"
}
]
},{
"hrDataId":"b497178c-f262-4f72-8751-8ae07e52ce2a","HrdataDetails":[
{
"Key":"FirstName","Value":"John"
},{
"Key":"LastName","Value":"Smith"
}
]
}
],"nextLink":null
}

“nextLink” will point to next Page to further links. If this value is null, then it means no further pages are available.

Use Case: GET operation

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:

https://<Hostname>/<PartnerName>/odata/v2/HRData?$filter=(FCode eq 'LastName' and FVal eq 'Smith')&


$select=FirstName,LastName&$expand=EC,Offboarding&$top=50&$skip=100.

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.

Prerequisite: For PUT operation

1. Get a valid authorization token


Fetch a valid token, from the OData Authentication API, which is mentioned previously.
2. The fields that needs to be updated should be part of HrDataAPIUpdate Data dictionary.

Table 409: Request Information

Operation PUT

URI https://<Hostname>/<PartnerName>/odata/v2/
HRData

Description To update field for a HR Data based on the payload passed.

HCM Suite OData API: Reference Guide


384 PUBLIC Onboarding
Headers Authorization: Token (Obtained from OData API Authentica­
tion)

Payload Yes

Request Payload Example:

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.

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 385
If the candidate has completed the process, then 403 will be returned in the response as the Update is not allowed
for such a candidate.

Use Case: PUT operation

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

Table 410: API Permissions

Permission System Required Settings

Role based None

User based None

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

TagName Name of the data-dictionary.

HCM Suite OData API: Reference Guide


386 PUBLIC Onboarding
Property Description

NavigationLink Link to get the fields under the data-dictionary.

Table 413:
Properties of the Fields under the Tag.

Property Description

TagName Name of the data-dictionary.

Fields List of fields under the data-dictionary..

Prerequisite: Get a valid authorization token

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.

Table 414: Request Information

Operation <Your Input>

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.

Headers Authorization: Token (Obtained from OData Authentication


API)

Payload No

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 387
Response

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",

HCM Suite OData API: Reference Guide


388 PUBLIC Onboarding
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('HrDataAPIUpdate')/Fields"
},
{
"TagName": "I-9",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('I-9')/Fields"
},
{
"TagName": "I9 Info",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('I9 Info')/Fields"
},
{
"TagName": "I9 Personal Information",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('I9 Personal Information')/Fields"
},
{
"TagName": "Job Related Info",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('Job Related Info')/Fields"
},
{
"TagName": "JobReq",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('JobReq')/Fields"
},
{
"TagName": "Offboarding",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('Offboarding')/Fields"
},
{
"TagName": "OfferInfo",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('OfferInfo')/Fields"
},
{
"TagName": "Onboarding",
"NavigationLink": "https://<HostName>/<PartnerName>/odata/v2/hrdata/
metadata/ExpandTags('Onboarding')/Fields"
}
}
“NavigationLink” will provide the fields under that Tag Name, below is example
for Application Info Tag Name, the navigation link is
https://<HostName>/<PartnerName>/odata/v2/hrdata/metadata/
ExpandTags('ApplicationInfo')/Fields
On calling this API with same Authorization, the response is
{
"odata.metadata": "https://<HostName>/<PartnerName>/odata/v2/hrdata/metadata/
$metadata#Fields/@Element",
"TagName": "ApplicationInfo",
"Fields": [
"City",
"FirstName",
"Zip",
"Gender",
"VeteranStatus",
"EmergencyState",
"EmergencyAddress",
"EmergencyCity",
"Address2",
"DaytimePhoneAC",
"DaytimePhoneNum",
"EveningPhoneAC",
"EveningPhoneNum",
"EmergencyDaytimePhoneAC",

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 389
"EmergencyFirstName",
"EmergencyZip",
"MaritalStatus",
"State",
"LastName",
"Zip4",
"DateOfBirth",
"EMail",
"EmployeeId",
"EmergencyZip4",
"Address1",
"EmergencyDaytimePhoneNum",
"EmergencyLastName",
"MiddleName",
"Address2",
"EmergencyAddress2",
"Address3",
"EmergencyAddress3",
"Address4",
"EmergencyAddress4",
"Country",
"EmergencyCountry",
"DisabledPerson",
"Ethnicity",
"NeedAccomodation",
"DaytimePhoneAC",
"EveningPhoneAC",
"DaytimePhoneNum",
"EveningPhoneNum",
"Suffix",
"ApplicantId"
]
}

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 415: API Permissions

Permission System Required Settings

Role based None

User based None

HCM Suite OData API: Reference Guide


390 PUBLIC Onboarding
Operations Allowed

Table 416:
Operation Description

GET To get the list of index fields and the processes.

Properties

Table 417:
Properties of the Expand Tags.

Property Description

ProcessName Name of the process..

QueryableFields Index fields under the process that can be queried with OData
API.

Prerequisite: Get a valid authorization token

Fetch a valid token, from the OData Authentication API, which is mentioned previously.

Table 418: Request Information

Operation Get list of filter fields

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.

Headers Authorization: Token (Obtained from OData Authentication


API)

Payload No

Response

Sample Code

{
"odata.metadata": "https://<HostName>/<PartnerName>/odata/v2/hrdata/metadata/
$metadata#FilterFields",
"value": [

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 391
{
"ProcessName": "Onboarding",
"QueryableFields": [
"ProcessDueDate",
"StartDate",
"OrientationDate",
"FirstName",
"LastName",
"MiddleName",
"SSN",
"JobTitle",
"Department",
"Location",
"ManagerLoginName",
"State",
"Country",
"Division",
"Gender",
"EthnicGroup",
"DeptCode",
"DivCode",
"DistrictCode",
"LocNumber",
"ActivityCreateDate",
"ActivityHireDate",
"JobCode",
"HiringManagerLogin",
"RecruiterLogin",
"UnassignedFlag",
"ReasonMessage",
"I9AlienWorkUntilDate",
"DepartmentType",
"BackgroundType",
"PJCode",
"AssociateUserId",
"DateOfBirth",
"EmployeeId"
]
},
{
"ProcessName": "72 Hour",
"QueryableFields": [
"ProcessDueDate",
"StartDate",
"OrientationDate",
"FirstName",
"LastName",
"MiddleName",
"SSN",
"JobTitle",
"Department",
"Location",
"ManagerLoginName",
"State",
"Country",
"Division",
"Gender",
"EthnicGroup",
"DeptCode",
"DivCode",
"DistrictCode",
"LocNumber",
"ActivityCreateDate",
"ActivityHireDate",
"JobCode",
"HiringManagerLogin",
"RecruiterLogin",
"UnassignedFlag",

HCM Suite OData API: Reference Guide


392 PUBLIC Onboarding
"ReasonMessage",
"I9AlienWorkUntilDate",
"DepartmentType",
"BackgroundType",
"PJCode",
"ParentHRDataId",
"AssociateUserId"
]
},
{
"ProcessName": "I9 - Reverification",
"QueryableFields": [
"ProcessDueDate",
"StartDate",
"OrientationDate",
"FirstName",
"LastName",
"MiddleName",
"SSN",
"JobTitle",
"Department",
"Location",
"ManagerLoginName",
"State",
"Country",
"Division",
"Gender",
"EthnicGroup",
"DeptCode",
"DivCode",
"DistrictCode",
"LocNumber",
"ActivityCreateDate",
"ActivityHireDate",
"JobCode",
"HiringManagerLogin",
"RecruiterLogin",
"UnassignedFlag",
"ReasonMessage",
"I9AlienWorkUntilDate",
"DepartmentType",
"BackgroundType",
"PJCode",
"AssociateUserId"
]
},
{
"ProcessName": "FormsOnDemand",
"QueryableFields": [
"ProcessDueDate",
"StartDate",
"OrientationDate",
"FirstName",
"LastName",
"MiddleName",
"SSN",
"JobTitle",
"Department",
"Location",
"ManagerLoginName",
"State",
"Country",
"Division",
"Gender",
"EthnicGroup",
"DeptCode",
"DivCode",
"DistrictCode",

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 393
"LocNumber",
"ActivityCreateDate",
"ActivityHireDate",
"JobCode",
"HiringManagerLogin",
"RecruiterLogin",
"UnassignedFlag",
"ReasonMessage",
"I9AlienWorkUntilDate",
"DepartmentType",
"BackgroundType",
"PJCode",
"AssociateUserId"
]
},
{
"ProcessName": "Offboarding",
"QueryableFields": [
"ProcessDueDate",
"StartDate",
"OrientationDate",
"FirstName",
"LastName",
"MiddleName",
"SSN",
"JobTitle",
"Department",
"Location",
"ManagerLoginName",
"State",
"Country",
"Division",
"Gender",
"EthnicGroup",
"DeptCode",
"DivCode",
"DistrictCode",
"LocNumber",
"ActivityCreateDate",
"ActivityHireDate",
"JobCode",
"HiringManagerLogin",
"RecruiterLogin",
"UnassignedFlag",
"ReasonMessage",
"I9AlienWorkUntilDate",
"DepartmentType",
"BackgroundType",
"PJCode",
"AssociateUserId"
]
}
]
}

Use Case: Get the List of Index fields

When the above request is called, the list of the processes and the index fields under each process.

HCM Suite OData API: Reference Guide


394 PUBLIC Onboarding
11.2.3 UpdateFields

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

Table 419: API Permissions

Permission System Required Settings

Role based None

User based None

Operations Allowed

Table 420:
Operation Description

GET To get the list of updatable fields of HRData.

Properties

Table 421:
Properties of the Expand Tags.

Property Description

Fields Fields under the data-dictionary HrDataAPIUpdate. These


fields can be updated in HRData using OData API.

Prerequisite:

1. Get a valid authorization token


Fetch a valid token, from the OData Authentication API, which is mentioned previously.
2. Fields under Data-dictionary HrDataAPIUpdate
Data-dictionary HrDataAPIUpdate will be present, fields need to be added under the data-dictionary.

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 395
Table 422: Request Information

Operation Get list of fields that can be updated

URI https://<Hostname>/<PartnerName>/odata/v2/
hrdata/metadata/UpdateFieldss

Description The Odata API will return the list of fields present under HrDa­
taAPIUpdate tag

Headers Authorization: Token (Obtained from OData Authentication


API)

Payload No

Response

Sample Code

{
"odata.metadata": “https://<Hostname>/<PartnerName>/odata/v2/hrdata/metadata/
$metadata#UpdateFields/@Element",
"Fields": [
"FirstName",
"LastName"
]
}

Use Case: Get the List of Fields under HrDataAPIUpdate tag

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.

HCM Suite OData API: Reference Guide


396 PUBLIC Onboarding
11.3 ODataAuthentication

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

Table 423: API Permissions

Permission System Required Settings

Role based None

User based None

Operations Allowed

Table 424:
Operation Description

GET To authenticate for other Odata API Services

Properties

Table 425:
Property Description

Token Token which needs to be used as Authorization for subse­


quent Odata API calls.

ExpiryTimeStamp Time within which the token needs to be used at least once,
else token will be expired.

Prerequisite: Set up ODataService Login Set

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.

HCM Suite OData API: Reference Guide


Onboarding PUBLIC 397
Table 426: Request Information

Operation GET

URI http://<Hostname>/<PartnerName>/odata/v2/
ODataAuthentication<>

Headers Authorization: Basic <Base 64 encoded ({"Username":"<Serv­


ice Login Username>","Password":"<Service Login pass­
word>"})> OR Authorization: Basic Base 64 encoded (<Serv­
ice Login Username>:<Service Login password>)

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"
}

HCM Suite OData API: Reference Guide


398 PUBLIC Onboarding
12 Goals

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

Table 427: Permissions for Query


Permission System Required Setting

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

2. Add Target Population Grant select yourself Target Population select target user

Goal Plan Permission: Provisioning Choose an instance Import/Update/Export Objective


Plan Template Download a goal plan template Add field id to read field permission in open goal
plan template Upload the goal plan template

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

Goal Plan Permission: Provisioning Choose an instance Import/Update/Export Objective


Plan Template Download a goal plan template Add field id to read field permission in open goal
plan template Upload the goal plan template

Table 428: Permissions to Add or Modify Personal Goal


Permission System Required Setting

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

2. Add Target Population Grant select yourself Target Population select target user

Goal Plan Permission: Provisioning Choose an instance Import/Update/Export Objective


Plan Template Download a goal plan template Add field id to write field permission in open goal
plan template Upload the goal plan template

HCM Suite OData API: Reference Guide


Goals PUBLIC 399
Permission System Required Setting

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

Goal Plan Permission: Provisioning Choose an instance Import/Update/Export Objective


Plan Template Download a goal plan template Add field id to write field permission in open goal
plan template Upload the goal plan template

Table 429: Permissions to Add or Modify Group Goal


Permission System Required Setting

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

Table 430: Permissions to Delete Personal Goal


Permission System Required Setting

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

2. Add Target Population Grant select yourself Target Population select target user

Goal Plan Permission: Provisioning Choose an instance Import/Update/Export Objective


Plan Template Download a goal plan template Add permission for delete Upload the goal
plan template

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

Goal Plan Permission: Provisioning Choose an instance Import/Update/Export Objective


Plan Template Download a goal plan template Add permission for delete Upload the goal
plan template

HCM Suite OData API: Reference Guide


400 PUBLIC Goals
Table 431: Permissions to Delete Group Goal
Permission System Required Setting

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

Required Provisioning Settings

● 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

GET filter=userId eq ‘userId’ or goal id is required in a query. Field readable permission.

PUT Standard OData call.

MERGE Standard OData call.

DELETE Standard OData call.

UPSERT/POST Standard OData call.

Properties

Table 433:

Property Description

Id Goal id

HCM Suite OData API: Reference Guide


Goals PUBLIC 401
Property Description

Type Personal goal or new group goal

userId Goal assignee

Flag Public goal or private goal

mltAchievementType Target achievement type for a goal.

category Goal category.

guid guid for the goal.

name Goal name, sometimes relabeled as goal description. This is


the only field that needs to be defined.

desc Description of the goal.

weight The value in this field is used to auto-populate the objective


weight when the goal is added to a PM form. If configured as
enum, the value is used in the form not the label, e.g. <enum-
value value="3">; if configured as text, the text value entered
is used verbatim.

state Typically presented as a drop down list of values with colors to


report the goal state or status. It is used as such in dashboard
reports. Limited to 128 characters. Often labeled "Status".

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

done Percentage done. Displayed as a whole number with a graphi­


cal "progress" bar.

metric Used to describe how a goal will be measured, in other words,


success criteria.

actualAchievement Actual achievment.

actualAchievementText Text for the actual achievement.

rating rating

bizxStrategic bizxStrategic

bizxActual bizxActual

HCM Suite OData API: Reference Guide


402 PUBLIC Goals
Property Description

bizxTarget bizxTarget

bizxPos bizxPos

all custom field All customer field

Navigation Properties

Table 434:

Navigation Property Related Entity Description

Tasks COTGMMilestoneEntity Goal and tasks association

milestones COTGMMilestoneEntity Goal and milestones association

targets COTGMMilestoneEntity Goal and targets association

metriclookup COTGMMLTEntity Goal and metriclookup association

Comment COTGMCommentEntity Goal and comment association

HCM Suite OData API: Reference Guide


Goals PUBLIC 403
Entity Relation Diagram

Use Cases

Table 435:
API Call Description

<hostname>/odata/v2/Goal_1? Query Goals of cgrant in goal plan id 1


$format=json&filter=userId eq
‘cgrant1’&expand=milestones

<hostname>/odata/v2/Goal_1 body: Add a goal name “goal name”. Insert operation.


{"userId":"cgrant1","type":"user","flag":"
0","name":"goal name","category":"Other"}

HCM Suite OData API: Reference Guide


404 PUBLIC Goals
API Call Description

<hostname>/odata/v2/upsert body: Upsert operation.


[{"__metadata" : { "uri" : "http://
localhost:8080/odata/v2/Goal_1(1L)",
"type" : "SFOData.Goal_1" },"name":"upsert
updated", "desc":"desc",
"metric":"testtest", "start":"/
Date(1262304000000)/", "due":"/
Date(1293839999000)/","done":"11","state":
"green" }]

http://localhost:8080/odata/v2/Goal_1(1) Modify a goal id 1. Update operation.


body: {"name":"goal
name","category":"Other"}

Error Codes

Table 436:
Error Code Description

400 Query or edit fail.

401 Query or edit fail.

500 Query or edit fail.

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

COTGMObjectiveEntity [page 399]

HCM Suite OData API: Reference Guide


Goals PUBLIC 405
12.3 COTGMMLTEntity

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

COTGMObjectiveEntity [page 399]

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

lastModified last modified date

commentator commentator

content content

Related Information

COTGMObjectiveEntity [page 399]

HCM Suite OData API: Reference Guide


406 PUBLIC Goals
12.5 GoalPlanTemplate

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

Role-based Role management Goal Select Goal Plan Template

● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB

User-based User Default Permission Select Goal Plan Template

● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB

Operations Allowed

Table 439:
Operation Description

GET Fetch a GoalPlanTemplate entity

Properties

Table 440:
Property Description

id Id of the goal template

name Name of the goal template

description Description of the goal template

parentPlanId Id of the parent goal plan.

displayOrder Display order of the goal template

startDate Goal start date

HCM Suite OData API: Reference Guide


Goals PUBLIC 407
Property Description

dueDate Goal due date

Navigation Properties

Table 441:
Navigation Property Related Entity Description

goals SimpleGoal

Entity Relation Diagram

Use Cases

Table 442:
API Call Description

/odata/v2/GoalPlanTemplate Query all goal plan templates

/odata/v2/GoalPlanTemplate?$expand=goals Query all goal plan templates and expand associated goals

/odata/v2/getDefaultGoalPlanTemplateId Query default goal plan template Id

HCM Suite OData API: Reference Guide


408 PUBLIC Goals
12.6 SimpleGoal

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

Role-based Role management Goal Select Goal Plan Template

● Enable TGM
● Enable TGM_V10
Enable GOALS_TAB

User-based User Default Permission Select Goal Plan Template

● 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

HCM Suite OData API: Reference Guide


Goals PUBLIC 409
Entity Relation Diagram

Use Cases

Use Case 1: Expand simple goals within your Goal Plan

Table 445: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
GoalPlanTemplate?$expand=goals

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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",

HCM Suite OData API: Reference Guide


410 PUBLIC Goals
"mobileFields": "",
"dueDate": null,
"goals": {
"results": [
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3839L)",
"type": "SFOData.SimpleGoal"
},
"id": "3839",
"flag": 0,
"userId": "cgrant1",
"name": "Ensure 50% of total revenue comes from products developed
in last 3 years",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3850L)",
"type": "SFOData.SimpleGoal"
},
"id": "3850",
"flag": 0,
"userId": "cgrant1",
"name": "Add a new goal for testing.",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3851L)",
"type": "SFOData.SimpleGoal"
},
"id": "3851",
"flag": 0,
"userId": "cgrant1",
"name": "Increase Available Customer References",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3853L)",
"type": "SFOData.SimpleGoal"
},
"id": "3853",
"flag": 0,
"userId": "cgrant1",
"name": "Complete sales compensation plan by 00/00/0000",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3871L)",
"type": "SFOData.SimpleGoal"
},
"id": "3871",
"flag": 0,
"userId": "cgrant1",
"name": "Present at Key Industry and Technical Conferences to Build
Awareness of Innovation and Brand",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3873L)",
"type": "SFOData.SimpleGoal"
},
"id": "3873",
"flag": 0,

HCM Suite OData API: Reference Guide


Goals PUBLIC 411
"userId": "cgrant1",
"name": "Cascading this goal as a test.",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3870L)",
"type": "SFOData.SimpleGoal"
},
"id": "3870",
"flag": 0,
"userId": "cgrant1",
"name": "Relentless Focus on Customer Satisfaction",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(2279L)",
"type": "SFOData.SimpleGoal"
},
"id": "2279",
"flag": 1,
"userId": "cgrant1",
"name": "Improve performance of South Central region",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(2L)",
"type": "SFOData.SimpleGoal"
},
"id": "2",
"flag": 1,
"userId": "cgrant1",
"name": "Customer Satisfaction",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(4L)",
"type": "SFOData.SimpleGoal"
},
"id": "4",
"flag": 1,
"userId": "cgrant1",
"name": "Financial industry accounts",
"type": "user"
}
]
},
"enums": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/GoalPlanTemplate(1L)/enums"
}
}
}
]
}
}

HCM Suite OData API: Reference Guide


412 PUBLIC Goals
Use Case 2: Expand simple goals from a specific employee's Goal Plan

Table 446: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
GoalPlanTemplate?$expand=goals&
$format=json&userId=mhoff1&$top=1

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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": {

HCM Suite OData API: Reference Guide


Goals PUBLIC 413
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3857L)",
"type": "SFOData.SimpleGoal"
},
"id": "3857",
"flag": 0,
"userId": "mhoff1",
"name": "Increase Available Customer References",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(3874L)",
"type": "SFOData.SimpleGoal"
},
"id": "3874",
"flag": 0,
"userId": "mhoff1",
"name": "Relentless Focus on Customer Satisfaction",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(5L)",
"type": "SFOData.SimpleGoal"
},
"id": "5",
"flag": 1,
"userId": "mhoff1",
"name": "Customer Satisfaction",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(6L)",
"type": "SFOData.SimpleGoal"
},
"id": "6",
"flag": 1,
"userId": "mhoff1",
"name": "Financial industry accounts",
"type": "user"
},
{
"__metadata": {
"uri": "https://<Hostname>/odata/v2/SimpleGoal(7L)",
"type": "SFOData.SimpleGoal"
},
"id": "7",
"flag": 1,
"userId": "mhoff1",
"name": "Financial Industy Accounts - NE",
"type": "user"
}
]
},
"enums": {
"__deferred": {
"uri": "https://<Hostname>/odata/v2/GoalPlanTemplate(1L)/enums"
}
}
}
]
}
}

HCM Suite OData API: Reference Guide


414 PUBLIC Goals
Use Case 3: Query a specific simple goal

Table 447: Request Information

Operation GET

URI http://<Hostname>/odata/v2/SimpleGoal(2L)

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Response

Sample Code

<?xml version="1.0" encoding="utf-8"?>


<entry xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://
schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://
schemas.microsoft.com/ado/2007/08/dataservices" xml:base="https://<Hostname>/
odata/v2/">
<id>https://<Hostname>/odata/v2/SimpleGoal(2L)</id>
<title type="text"></title>
<updated>2016-07-25T06:02:26Z</updated>
<author>
<name></name>
</author>
<link rel="edit" title="SimpleGoal" href="SimpleGoal(2L)"></link>
<category term="SFOData.SimpleGoal" scheme="http://schemas.microsoft.com/ado/
2007/08/dataservices/scheme"></category>
<content type="application/xml">
<m:properties>
<d:id m:type="Edm.Int64">2</d:id>
<d:flag m:type="Edm.Int32">1</d:flag>
<d:userId>cgrant1</d:userId>
<d:name>Customer Satisfaction</d:name>
<d:type>user</d:type>
</m:properties>
</content>
</entry>

HCM Suite OData API: Reference Guide


Goals PUBLIC 415
13 Employee Profile

13.1 Current Dashboard Types

The following is the list of available dashboards. The API currently returns the scorecard and publicprofile
type.

Table 448:
scorecard perfprofile varpayindview notes

compstatement varpaystatement pendingapprovals personalInfoTab

employmentHistory combinedstatement publicprofile ectbenefitsfocus

payrollIntegration payrollPayslip timeOffAdminTab employeeBenefitsTab

payrollIntegration payrollPayslip timeOffAdminTab employeeBenefitsTab

13.2 EPProfileView

This entity is used to query dashboard configurations.

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

GET Returns the dashboard configurations for the currently logged


in user. You cannot query dashboard configurations of other
users using this API.

HCM Suite OData API: Reference Guide


416 PUBLIC Employee Profile
Properties

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.

userId The ID of the user who is currently logged in to the system.

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.

dashboardType There are 20 different dashboard types in the system.

Use Cases

Table 452:
API Call Description

http:<hostname>/odata/v2/EPProfileView? Queries the dashboard configuration for a user whose ID is ad­


$filter=userId eq 'admin'&$format=json min.

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.

HCM Suite OData API: Reference Guide


Employee Profile PUBLIC 417
Properties

Table 454:
Property Description

dashboardId Every dashboard has its own dashboard ID. It is auto-gener­


ated from the system and specific to each customer. Dash­
boardId changes when dashboard is deleted/added/
imported.

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.

userId The ID of the user who is currently logged in to the system.

backgroundElementId The ID of the background element.

instructionalText The instructional text for the portlet.

isEditable A boolean indicating whether the portlet can be edited.

isFeedbackPortlet Identifies whether feedback is allowed for the portlet.

portletLabel The label of the portlet.

portletType The type of the portlet.

Use Cases

Table 455:
API Call Description

http://<hostname>/odata/v2/ Queries the portlets in the Talent Profile dashboard (dash­


EPProfilePortlet?$filter=userId eq 'admin' boardId is socrecard417) for an Admin user.
and dashboardId eq 'scorecard417'&
$format=json

HCM Suite OData API: Reference Guide


418 PUBLIC Employee Profile
13.4 EPProfileUserInfoPortlet

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

dashboardId Every dashboard has its own unique ID. It is auto-generated


from the system and specific to each customer. The dashboard
ID changes when it is deleted, added, or imported.

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.

userId The ID of a user who is currently logged in to the system.

isPII

isWritable

standardOrUserInfoElementId

Navigation Properties

None.

HCM Suite OData API: Reference Guide


Employee Profile PUBLIC 419
Use Cases

Table 458:
API Call Description

http://<hostname>/odata/v2/ Queries the elements in the Employee Information Portlet


EPProfileUserInfoPortlet?$filter=userId eq (portlet Id is p_0_1) the in Talent Profile (dashboardId is socre­
'admin' and dashboardId eq 'scorecard417' card417) for a user whose userId is "admin".
and portletId eq 'p_0_1'&$format=json

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

Set “Enable Public Profile“ in Provisioning.

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

http://<hostname>/odata/v2/ Queries the EPPublicProfile.


EPPublicProfile?$filter=userId eq 'admin'&
$format=json

HCM Suite OData API: Reference Guide


420 PUBLIC Employee Profile
13.6 BadgeTemplates

This entity provides information about badge templates.

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

QUERY Query badge templates.

Properties

Table 461:

Property Description

badgeInstanceId The unique identifier for a badge template record.

userId The owner of user badge template information. The API re­
turns templates for the currently logged in user if no userId is
specified.

customBadge True if the template is custom.

photo A link to the photo associated with the template.

Navigation properties

None.

HCM Suite OData API: Reference Guide


Employee Profile PUBLIC 421
Use Cases

Table 462:
API Call Description

GET https://<localhost>/odata/v2/ Queries badge templates.


BadgeTemplates?$format

13.7 UserBadges

This entity exposes user badge information for a specified user.

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

QUERY Query user badge information for a specified user.

INSERT Give a badge to another user (not to self).

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

badgeInstanceId The unique identifier for a user badge record.

userId The unique ID for the badge owner.. The API returns badges
for the currently logged in user if no userId is specified.

badgeCreatorName The name of the person who created the badge..

HCM Suite OData API: Reference Guide


422 PUBLIC Employee Profile
Property Description

badgeId The ID of the badge.

badgeTitle The title of the badge.

comment Comment for the badge.

creatorUserID The ID of the person who created the badge.

lastModified The date and time on which the badge was created.

photo The photo for the badge.

Navigation Properties

None.

Use Cases

Table 465:
API Call Description

GET /odata/v2/BadgeTemplates?$format=json Queries badge templates.

/odata/v2/UserBadges?$filter=userId eq Queries the user's badge.


'admin'&$format=json

GET /odata/v2/UserBadges?$format=json Queries logged in user's badges.

POST /odata/v2/UserBadges?$format=json Assigns a user badge to someone. For example, Admin.


{ ”badgeInstanceId” : -1, ”userId” :
“admin”, ”badgeId” : 2, ”great job” :
“kudos” }

DELETE /odata/v2/ Deletes a user badge.


UserBadges(badgeInstanceId=450,userId=’adm
in’)?$format=json

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

HCM Suite OData API: Reference Guide


Employee Profile PUBLIC 423
is configured in datamodel, but we convert the first letter to uppercase. For example, if the background-element Id
is “insideWorkExperience” in the data model, then the entity name is “Background_InsideWorkExperience”.

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.

API only supports single-user, non-batch EDIT operations(insert and upsert).

ODATA Background API supports both RBP and Non-RBP permission check same as in Employee Profile UI.

Operations Allowed

Table 466:
Operation Description

GET Three kinds of GET (query) operations are supported:

1. Query logged in user's background.


2. Sort a result.
3. Navigation Query.

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.

DELETE Delete a background record.

UPSERT/POST Insert or Upsert a background record.

Global Assignment operations are supported.

Following list of operations is not supported:

1. The API can’t judge which picklist option ID belongs to which picklist ID, parent picklist ID or child picklist.

HCM Suite OData API: Reference Guide


424 PUBLIC Employee Profile
2. The API can’t do the URL-LINK validation(Display Name required validation and URL regex validation)
3. The API doesn’t support any operations on attachment data-fields.
4. The API doesn’t support Global Assignment for batch query operation.

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”.

Entity Relation Diagram

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.


Background_InsideWorkExperience?
$filter=userId eq 'admin'&$format=json
HTTP/1.1

HCM Suite OData API: Reference Guide


Employee Profile PUBLIC 425
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

GET odata/v2/ Navigation,query picklist label Example: Property “division“ is


Background_InsideWorkExperience? configured as a picklist in datamodel
$filter=userId eq 'admin'&
$orderby=bgOrderPos desc&
$expand=divisionNav/picklistLabels&
$format=json HTTP/1.1

odata/v2/Background_InsideWorkExperience? Query all user's background information..


$format=json HTTP/1.1

GET /odata/v2/ Batch query operation: Example: query multiple users‘(“ad­


Background_InsideWorkExperience? min“and “MultJob1“) background information. You can specify
$filter=userId eq 'admin' or userId eq any numbers of target users by youself.
'MultJob1'&$format=json HTTP/1.1

Insert operation. Insert a new record for a Background_Inside­


POST WorkExperience entity
/odata/v2/
Background_InsideWorkExperience?$
HTTP/1.1
{
"usersId" : "MultJob1",
"testDate" : null,
"startDate" : "\/Date(1388563200000)\/",
"title" : "test12",
"testVarchar" : "[test4][http://
www.example.com]",
"endDate" : "\/Date(1388563200000)\/",
"testInteger" : 0,
"testFloat" : null,
"division":"240", //division is
configured as a picklist,insert the
picklist option Id
}

HCM Suite OData API: Reference Guide


426 PUBLIC Employee Profile
API Call Description

Upsert(insert) Insert operation. Insert a new record for the


POST Background_InsideWorkExperience entity
/odata/v2/upsert?$ HTTP/1.1
{
"__metadata":{"uri":"
Background_InsideWorkExperience "},
" backgroundElementId " :0,//
backgroundElementId=0 means this is the
insert operation
"usersId" : "MultJob1",
“bgOrderPos”:-1, //Here set the
bgOrderPos<0
"testDate" : null,
"startDate" : "\/Date(1388563200000)\/",
"title" : "test12",
"testVarchar" : "[test4][http://
www.baidu.com]",
"endDate" : "\/Date(1388563200000)\/",
"testInteger" : 0,
"testFloat" : null,
"division":"240", //division is
configured as a picklist,insert the
picklist option Id
}

Upsert(update) update operation. Update the record for a


POST Background_InsideWorkExperience entity
/odata/v2/upsert?$ HTTP/1.1
{
"__metadata":{"uri":"
Background_InsideWorkExperience "},
" backgroundElementId " :234,//
backgroundElementId!=0 means this is
the update operation, the id “234” is
the original ID
"usersId" : "MultJob1",
“bgOrderPos”:10, // bgOrderPos=10,
original bgOrderPos
"testDate" : null,
"startDate" : "\/Date(1388563200000)\/",
"title" : "test12",
"testVarchar" : "[test4][http://
www.baidu.com]",
"endDate" : "\/Date(1388563200000)\/",
"testInteger" : 0,
"testFloat" : null,
"division":"240",
}

DELETE /odata/v2/ Delete a record for the Background_InsideWorkExperience en­


Background_InsideWorkExperience tity
(backgroundElementId
=2807L,userId='admin')?$format=json
HTTP/1.1

HCM Suite OData API: Reference Guide


Employee Profile PUBLIC 427
14 Job Profile Builder

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:

Permission Model Configuration

Role-based Go to Admin Tools Manage Permission Roles all_perm


Permission Manage Job Profile Builder Manage Job
Profiles Content . Select View.

Operations Allowed

Table 470:
Operation Description

GET Query a competency by guid or business properties.

Properties

Table 471:
Property Description

rowId The row ID.

internalId The internal ID.

externalCode The external competency code.

name The competency name.

libName The name of the competency library.

category The competency category.

HCM Suite OData API: Reference Guide


428 PUBLIC Job Profile Builder
Property Description

description The competency description.

core Indicate if it is a core competency.

status The status of the competency.

createdBy The ID of the person who created the competency.

createdDate The date on which the competency was created.

lastModifiedBy The ID of the person who last modified the competency.

lastModifiedDate The date on which the competency was modified.

Navigation Properties

Table 472:
Navigation Property Related Entity Description

behaviors BehaviorMappingEntity A one-to-many association between


CompetencyEntity and BehaviorMappin­
gEntity. Each CompetencyEntity can
have zero or more behaviors.

statusNav statusNav

Use Cases

Table 473:
API Call Description

/odata/v2/ Queries competency whose externalCode equals to 6666. The


CompetencyEntity(externalCode='6666')?& return data will only include en_US translation values.
$format=json&
$select=externalCode,name_en_US,libName_en
_US,category_en_US,description_en_US&
$format=json&
$select=externalCode,name_en_US,libName_en
_US,category_en_US,description_en_US

/odata/v2/CompetencyEntity?&$format=json Queries all competencies.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 429
14.2 FamilyEntity

This entity is the primary classification of a job, which is also known as job family.

Permissions

Table 474:
Permission Model Configuration

Role-based Go to Admin Tools Manage Permission Roles . Choose a permis­


sion role. Permission Manage Job Profile Builder Manage Job
Profile Content . Select View

Operations Allowed

Table 475:
Operation Description

GET Query a family by guid or business properties.

Properties

Table 476:
Property Description

rowId The row ID.

internalId The internal ID.

externalCode The customer oriented ID or GUID.

name The family name.

createdLocale This property is only used for JDM1.0.

status The status of the family.

createdBy The person who created the family.

createdDate The date on which the family was created.

lastModifiedBy The person who last modified the family.

lastModifiedDate The date on which the family was created.

HCM Suite OData API: Reference Guide


430 PUBLIC Job Profile Builder
Navigation Properties

Table 477:
Navigation Prop­ Related Entity Description
erty

competencies FamilyCompeten­ A one-to-many as­


cyMappingEntity sociation between
FamilyEntity and
FamilyCompeten­
cyMappingEntity.
For each FamilyEn­
tity, there can be
zero or more family
competency map­
pings. All job
roles(RoleEntity)
under this family
will automatically
inherit these family
level competen­
cies.

skills FamilySkillMappin­ A one-to-many as­


gEntity sociation between
FamilyEntity and
FamilySkillMappin­
gEntity. For each
FamilyEntity, there
can be zero or
more family skill
mappings. All job
roles(RoleEntity)
under this family
will automatically
inherit these family
level skills.

Use Cases

Table 478:
API Call Description

/odata/v2/ Query family whose externalCode equals to 1000596, the re­


FamilyEntity(externalCode='1000596')? turn data will only include en_US locale values.
&format=json&
$select=externalCode,name_en_US

/odata/v2/FamilyEntity?&$format=json Query all families.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 431
14.3 JobDescTemplate

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:

Permission Model Configuration

Role-based Go to Admin Tools Manage Permission Roles . Choose a


permission role. Permission Manage Job Profile
Templates

Operations Allowed

Table 480:
Operation Description

GET Query a template by guid or business properties.

Properties

Table 481:
Property Description

rowId The row ID.

internalId An internal ID.

externalCode An external code.

title The job description template title.

status The status of the job template.

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.

subModule Indicates the sub-job template that is used by RCM.

HCM Suite OData API: Reference Guide


432 PUBLIC Job Profile Builder
Navigation Properties

Table 482:
Navigation Property Related Entity Description

jdFamilyMappings JDTemplateFamilyMapping A one-to-many association between Job­


DescTemplate and JDTemplateFamily­
Mapping. For each JobDescTemplate,
there can be one or more associated
JDTemplateFamilyMappings.

sections JobDescSection A one-to-many association between Job­


DescTemplate and JobDescSection. For
each JobDescTemplate, there can be
zero or more associated JobDescSec­
tion.

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

/odata/v2/JobDescTemplate?&$format=json Queries all job profile templates.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 433
14.4 JobProfile

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.

Go to: Admin Tools Manage Permission Roles Choose a permission role. Go to

Permission Manage Job & Skill Profile Visibility Job Profile . Select View.

Operations Allowed

Table 485:
Operation Description

GET Query a job profile by guid or business properties.

UPSERT/POST/MERGE/PUT Update a job profile.

Properties

externalCode(guid) and business properties are required while querying profiles.

Table 486:
Property Description

rowId The row ID.

internalId An internal ID.

externalCode An external code.

template A job template.

name The job profile name.

draft Indicates that the job profile has not been activated.

HCM Suite OData API: Reference Guide


434 PUBLIC Job Profile Builder
Property Description

position Indicates whether the profile is a role or position profile.

subModule Indicates the sub-job profile type, like jobReqProfile which is used in RCM.

Navigation Properties

Table 487:
Navigation Property Related Entity Description

jobProfileRoleMappings JobProfileRoleMappingEn­ A one-to-many association


tity between JobProfile and Job­
ProfileRoleMappingEntity.
For each JobProfile, there
has to be at least one associ­
ated JobProfileRoleMappin­
gEntity. In JPB, a job profile
is the extension of a job role.

certificationContents CertificationContent A one-to-many association


between JobProfile and Cer­
tificationContent. For each
JobProfile, there can be zero
or more associated Certifica­
tionContents.

competencyContents CompetencyContent A one-to-many association


between JobProfile and
CompetencyContent. For
each JobProfile, there can be
zero or more associated
CompetencyContents.

educationDegreeContents educationDegreeContents A one-to-many association


between JobProfile and Edu­
cationDegreeContent, for
each JobProfile, there can be
zero or more associated Edu­
cationDegreeContents.

educationMajorContents educationMajorContents A one-to-many association


between JobProfile and Edu­
cationMajorContent. For
each JobProfile, there can be
zero or more associated Edu­
cationMajorContents.

employmentConditionContents EmploymentConditionCon­ A one-to-many association


tent between JobProfile and Em­
ploymentConditionContent.
For each JobProfile, there
can be zero or more associ­
ated EmploymentCondition­
Contents.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 435
Navigation Property Related Entity Description

jobResponsibilityContents JobResponsibilityContent A one-to-many association


between JobProfile and Jo­
bResponsibilityContent, for
each JobProfile, there can be
zero or more associated Jo­
bResponsibilityContents.

interviewQuestionContents InterviewQuestionContent A one-to-many association


between JobProfile and In­
terviewQuestionContent. For
each JobProfile, there can be
zero or more associated In­
terviewQuestionContents.

physicalReqContents PhysicalReqContent A one-to-many association


between JobProfile and
PhysicalReqContent. For
each JobProfile, there can be
zero or more associated
PhysicalReqContents.

relevantIndustryContents RelevantIndustryContent A one-to-many association


between JobProfile and Rele­
vantIndustryContent. For
each JobProfile, there can be
zero or more associated Rel­
evantIndustryContents.

skillContents SkillContent A one-to-many association


between JobProfile and Skill­
Content. For each JobProfile,
there can be zero or more as­
sociated SkillContents.

shortDescriptions JobProfileLocalizedData A one-to-many association


between JobProfile and Job­
ProfileLocalizedData. For
each JobProfile, there can be
zero or more associated Job­
ProfileLocalizedData. Here
the JobProfileLocalizedData
is used to store short de­
scription information.

longDescriptions JobProfileLocalizedData A one-to-many association


between JobProfile and Job­
ProfileLocalizedData. For
each JobProfile, there can be
zero or more associated Job­
ProfileLocalizedData. Here
the JobProfileLocalizedData
is used to store long descrip­
tion information.

HCM Suite OData API: Reference Guide


436 PUBLIC Job Profile Builder
Navigation Property Related Entity Description

headers JobProfileLocalizedData A one-to-many association


between JobProfile and Job­
ProfileLocalizedData. For
each JobProfile, there can be
zero or more associated Job­
ProfileLocalizedData. Here
the JobProfileLocalizedData
is used to store header infor­
mation.

footers JobProfileLocalizedData A one-to-many association


between JobProfile and Job­
ProfileLocalizedData. For
each JobProfile, there can be
zero or more associated Job­
ProfileLocalizedData. Here
the JobProfileLocalizedData
is used to store footer infor­
mation.

compDatas JobProfileLocalizedData A one-to-many association


between JobProfile and Job­
ProfileLocalizedData. For
each JobProfile, there can be
zero or more associated Job­
ProfileLocalizedData. Here
the JobProfileLocalizedData
is used to store compensa­
tion information.

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

/odata/v2/ Queries a job profile whose externalCode equals to 1035961


JobProfile(externalCode='1035961')?& and expand position data.
$format=json&$expand=positionNav

/odata/v2/JobProfile?&$format=json Queries all job profiles.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 437
14.5 RoleEntity

The secondary classification of a job. It usually refers to a particular job title and is also called a job role.

Permissions

Table 489:

Permission Model Configuration

Role-based Got to Admin Tools Manage Permission Roles . Choose


a permission role.

Go to Permission Manage Job Profile Builder Manage

Job Profile Content . Select View.

Operations Allowed

Table 490:
Operation Description

GET Query a role by guid or business properties.

Properties

Table 491:
Property Description

rowId The row ID.

internalId An internal ID.

externalCode An external code.

name The role name. A role only belongs to one family.

family The family name.

createdLocale The role created locale. This property used in JDM1.0.

status The status of the role.

createdBy The ID of the person who created the role.

createdDate The date on which the role was created.

lastModifiedBy The ID of the person who last modified the role.

HCM Suite OData API: Reference Guide


438 PUBLIC Job Profile Builder
Property Description

lastModifiedDate The date on which the role was modified.

Navigation Properties

Table 492:
Navigation Property Related Entity Description

jobCodeMappings JobCodeMappingEntity A one-to-many association between


RoleEntity and JobCodeMappingEn­
tity. For each RoleEntity, there can
be zero or more mapped jobcodes.
Jobcode(job classification) is usually
used to connect to a certain em­
ployee in BizX.

roleSkillMappings RoleSkillMappingEntity A one-to-many association between


RoleEntity and RoleSkillMappingEn­
tity. For each RoleEntity, there can
be zero or more role skill mappings.

roleCompetencyMappings RoleCompetencyMappingEntity A one-to-many association between


RoleEntity and RoleCompetency­
MappingEntity. For each RoleEntity,
there can be zero or more role com­
petency mappings.

roleTalentPoolMappings RoleTalentPoolMappingEntity A one-to-many association between


FamilyEntity and RoleTalentPool­
MappingEntity. For each RoleEntity,
there can be zero or more role talent
pool mappings. These mappings are
used by Successfactors SCM mod­
ule .

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

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 439
API Call Description

/odata/v2/RoleEntity?&$format=json Queries all roles.

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:

Permission Model Configuration

Role-based Go to Admin Tools Manage Permission Roles .


Choose a permission role.

Go to Permission Manage Job Profile Builder Manage

Job Profile Content . Select View.

Operations Allowed

Table 495:
Operation Description

GET Query a skill by guid or business properties.

Properties

Table 496:
Property Description

rowId The row ID.

internalId An internal ID.

externalCode An external code.

name The skill name.

libName The skill library name.

HCM Suite OData API: Reference Guide


440 PUBLIC Job Profile Builder
Property Description

category The skill category.

group The skill group.

definition The skill definition.

proLevel1 The skill proficiency level 1.

proLevel2 The skill proficiency level 2.

proLevel3 The skill proficiency level 3.

proLevel4 The skill proficiency level 4.

proLevel5 The skill proficiency level 5.

status The status of the role.

createdBy The ID of the person who created the skill.

createdDate The date on which the skill was created.

lastModifiedBy The ID of the person who last modified the skill.

lastModifiedDate The date on which the skill was modified.

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

/odata/v2/SkillEntity?&$format=json Queries all skills.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 441
14.7 SkillProfile

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

Definition, search value: Skill Profile Take Action: Make correction

Security: change to Yes Permission Category: change to Manage Job &

Skill Profile Visibility . Click Save.

Go to Admin Tools Manage Permission Roles . Choose a permission


role.

Go to Permission Manage Job & Skill Profile Visibility Skill Profile .


Select View.

Operations Allowed

Table 499:
Operation Description

GET Query a skill profile by the user ID.

Properties

Table 500:
Property Description

rowId The row ID.

internalId An internal ID.

externalCode An external code.

createdBy The ID of the person who created the skill.

createdDate The ID of the person who created the skill.

HCM Suite OData API: Reference Guide


442 PUBLIC Job Profile Builder
Property Description

lastModifiedBy The ID of the person who last modified the skill.

lastModifiedDate The date on which the skill was modified.

Navigation Properties

Table 501:
Navigation Property Related Entity Description

ratedSkills RatedSkillMapping A one-to-many association between


SkillProfile and RatedSkillMapping. For
each SkillProfile, there can be zero or
more RatedSkillMappings.

selfReportSkills SelfReportSkillMapping A one-to-many association between


SkillProfile and SelfReportSkillMapping,
for each SkillProfile, there can be zero or
more SelfReportSkillMappings.

Use Cases

Table 502:
API Call Description

/odata/v2/ Queries the skill profile whose externalCode(userId) is


SkillProfile(externalCode='cgrant1')?& "cgrant1", expanding user, rated skills and self report skills.
$format=json&
$expand=externalCodeNav,ratedSkills,selfRe
portSkills

/odata/v2/SkillProfile?&$format=json Queries all skill profiles.

HCM Suite OData API: Reference Guide


Job Profile Builder PUBLIC 443
15 SuccessStoreContent

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.

Required Provisioning Settings

● "Manage Success Store Content Permission" link in Manage Provisioners page

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

contentId A unique Identifier given to each Content.

comments Comments specific to the content.

publishOnDate Publish date for the content.

HCM Suite OData API: Reference Guide


444 PUBLIC SuccessStoreContent
Property Description

expiryOnDate Expiry date for the content.

customField customField helps store any Content specific Information.


Some times you can avoid parsing entire content by knowing
just this piece of information.

Domain Domain helps to store any Content specific Information. Some


times you can avoid parsing entire content by knowing just
this piece of information.

contentType This column holds information about the type of content. e.g.
COMPENSATION, REVIEW etc.

Status Status of Content. e.g. Approved, Deleted etc

wizardable Whether the content is showable in wizard.

default_content Whether the content is the default content in its category.

bestPractice Whether the content is the best practice content in its cate­
gory.

revisionNo The revision number of the content.

Navigation Properties

None.

Use Cases

Table 506:
API Call Description

<hostname>/odata/v2/SuccessStoreContet? Query a SuccessStoreContent by contentId.


$filter=contentType eq 'COMPETENCY_LIB'
and contentId eq '20110003'

<hostname>/odata/v2/SuccessStoreContet? Query for latest revision data.


$filter=contentType eq 'COMPETENCY_LIB'
and contentId eq '20110003' and revisionNo
eq '999'

<hostname>/odata/v2/ Query for exact contentId.


SuccessStoreContent(20110001L)?
$format=json

HCM Suite OData API: Reference Guide


SuccessStoreContent PUBLIC 445
API Call Description

<hostname>/odata/v2/SuccessStoreContent? Query for a given contentType.


$filter=contentType eq 'CDP'

<hostname>/odata/v2/ Query content blob data.


SuccessStoreContent(20110001L)/
contentData?$format=json

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..

HCM Suite OData API: Reference Guide


446 PUBLIC SuccessStoreContent
16 Theming

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

id The ID of the theme.

themeConfiguration A collection of theme configurations.

Use Cases

‹‹ If necessary, add any supplementary information about the use cases here ››

Table 509:
API Call Description

GET https://<hostname>/odata/v2/ Query default theme configurations.


ThemeConfig

GET https://<hostname>/odata/v2/ Query theme by ID.


ThemeConfig(‘lightGrayPlacematBlueAccentNo
Texture‘)

HCM Suite OData API: Reference Guide


Theming PUBLIC 447
16.2 ThemeTemplate

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

API Call parameters

Following is the list of parameters for setting up the query:

Table 510:

Name Description

moduleId For this “ThemeTemplate” API, “moduleId” is a required


param, and is your module name (could HOME, ADMIN or
JAM). So the module picker will automatically select this mod­
ule. (Note: make sure the module you request is available in
your instance.)

useAbsPaths (optional) All urls inside template uses absolute path or relative path. De­
fault is true.

layoutType (optional) Default=minimize

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.

Otherwise, we will only return everything as a full template.

Default is false.

includeTemplate This is in additional to breakdown for debug purpose. So we


will return the “template” content as well here, even though
the content is redendent from above header/footer/scripts/
styles sections.

Default is false.

HCM Suite OData API: Reference Guide


448 PUBLIC Theming
Use Cases

Table 511:
API Call Description

https://<hostname>/odata/v2/ThemeTemplate? Default request with limited parameters.


moduleId=HOME

https://<domain>/odata/v2/ThemeTemplate? Request to retrieve a template with certain options


moduleId=HOME&useAbsPaths=true&breakdown=t
rue&$format=json

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.

accessibilityPreferences Additional properties selected by the currently logged in user


for accessibility support.

lastModifiedDate The last time the default theme was modified.

urls

Use Cases

Table 513:
API Call Description

GET https://<hostname>/odata/v2/ThemeInfo Query user instance’s default theme related information

HCM Suite OData API: Reference Guide


Theming PUBLIC 449
17 Execution Manager

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

Table 514: API Permissions

Permission System Required Settings

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

GET Query an entity

INSERT/UPSERT Update or insert a record

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

HCM Suite OData API: Reference Guide


450 PUBLIC Execution Manager
Use Cases

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)

Table 516: Request Information

Operation GET

URI http://<Hostname>/ odata/v2/EMEvent(14)/


eventPayload?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Content-Type: application/atom+xml;charset=utf-8

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 451
Payload
Sample Code

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

<d:coRelatorId m:null="true" />


</
m:properties>
</content>
</entry>
</m:inline>
</link>
<link rel="http://
schemas.microsoft.com/ado/2007/08/
dataservices/related/eventAttributes"
type="application/atom+xml;type=feed"
title="eventAttributes" href="EMEvent/
eventAttributes">
<m:inline>
<feed>
<id>https://
localhost:443/odata/v2/EMEvent/
eventAttributes</id>

HCM Suite OData API: Reference Guide


452 PUBLIC Execution Manager
<entry>
<id>https://
localhost:443/odata/v2/
EMEventAttribute</id>
<content
type="application/xml">

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

<d:eventName>Appropriate event name</


d:eventName>
<d:eventTime
m:type="Edm.DateTimeOffset">2016-11-17
T14:09:05.99+05:30</d:eventTime>
<d:eventType>ERROR</
d:eventType>

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 453
</m:properties>
</content>
</entry>
</feed>

Response

Sample Code

<?xml version="1.0" encoding="utf-8"?>


<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://
schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://
schemas.microsoft.com/ado/2007/08/dataservices">
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true"></d:key>
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message>upserted successfully</d:message>
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)">
<d:element>
<d:inlineProperty>eventAttributes</d:inlineProperty>
<d:results m:type="Bag(SFOData.UpsertResult)">
<d:element>
<d:key m:null="true"></d:key>
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message>upserted successfully</d:message>
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults
m:type="Bag(SFOData.UpsertResult)"></d:inlineResults>
</d:element>
</d:results>
</d:element>
<d:element>
<d:inlineProperty>eventPayload</d:inlineProperty>
<d:results m:type="Bag(SFOData.UpsertResult)">
<d:element>
<d:key m:null="true"></d:key>
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message>upserted successfully</d:message>
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults
m:type="Bag(SFOData.UpsertResult)"></d:inlineResults>
</d:element>
</d:results>
</d:element>
<d:element>
<d:inlineProperty>process</d:inlineProperty>
<d:results m:type="Bag(SFOData.UpsertResult)">
<d:element>
<d:key m:null="true"></d:key>
<d:status>OK</d:status>

HCM Suite OData API: Reference Guide


454 PUBLIC Execution Manager
<d:editStatus>UPSERTED</d:editStatus>
<d:message>upserted successfully</d:message>
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults
m:type="Bag(SFOData.UpsertResult)"></d:inlineResults>
</d:element>
</d:results>
</d:element>
</d:inlineResults>
</m:properties>
</content>
</entry>
</feed>

Use Case: Upserting an event which is associated with an existing process


entity

The process can now be passed as a URI, identified by its composite key, as shown in this example:

Table 517: Request Information

Operation GET

URI http://<Hostname>/ odata/v2/EMEvent(14)/


eventPayload?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

Content-Type: application/atom+xml;charset=utf-8

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 455
Payload
Sample Code

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

<d:eventName>Appropriate event name</


d:eventName>
<d:eventTime
m:type="Edm.DateTimeOffset">2016-06-03
T14:09:15.99+05:30</d:eventTime>
<d:eventType>INFO</
d:eventType>
</m:properties>
</content>
</entry>
</feed>

Response

Sample Code

<?xml version="1.0" encoding="utf-8"?>


<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://
schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://
schemas.microsoft.com/ado/2007/08/dataservices">
<entry>
<content type="application/xml">
<m:properties>
<d:key m:null="true"></d:key>
<d:status>OK</d:status>
<d:editStatus>UPSERTED</d:editStatus>
<d:message>upserted successfully</d:message>

HCM Suite OData API: Reference Guide


456 PUBLIC Execution Manager
<d:index m:type="Edm.Int32">0</d:index>
<d:httpCode m:type="Edm.Int32">200</d:httpCode>
<d:inlineResults m:type="Bag(SFOData.UpsertResult)"></
d:inlineResults>
</m:properties>
</content>
</entry>
</feed>

Additional Information

Table 518: Error Messages


Error Message Number Description

1 EMMonitoredProcess entity is either missing or the process


doesn't exist for the sent Process URI. A valid process entity
must be provided for every EMEvent.

2 <enumValue> " is not a valid value for " <enumName>

Related Information

EMEventAttribute [page 457]


EMEventPayload [page 460]
EMMonitoredProcess [page 462]
Retrieving metadata [page 27]

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.

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 457
Permissions

Table 519: API Permissions

Permission System Required Settings

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 permis­
sions.

Operations Allowed

Table 520:
Operation Description

GET Query an entity

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

Use Case: Query eventAttributes for any event

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.

Table 521: Request Information

Operation GET

HCM Suite OData API: Reference Guide


458 PUBLIC Execution Manager
URI http://<Hostname>/odata/v2/EMEvent(14)/
eventAttributes?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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

EMEvent [page 450]


Retrieving metadata [page 27]

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 459
17.3 EMEventPayload

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

Table 522: API Permissions

Permission System Required Settings

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 permis­
sions.

Operations Allowed

Table 523:
Operation Description

GET Query an entity

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

HCM Suite OData API: Reference Guide


460 PUBLIC Execution Manager
Use Cases

Use Case: Query eventPayload for any event

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.

Table 524: Request Information

Operation GET

URI http://<Hostname>/ odata/v2/EMEvent(14)/


eventPayload?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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.

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 461
Related Information

EMEvent [page 450]


Retrieving metadata [page 27]

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

Table 525: API Permissions

Permission System Required Settings

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 permis­
sions.

Operations Allowed

Table 526:
Operation Description

GET Query an entity

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

HCM Suite OData API: Reference Guide


462 PUBLIC Execution Manager
Use Cases

Use Case: Identify a process for an event

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.

Table 527: Request Information

Operation GET

URI http://<Hostname>/odata/v2/
EMMonitoredProcess(processType=<processTyp
e>,processDefinitionId=<process Definition
Id>, processInstanceId=<process instance
id>)?$format=json

Headers Authorization: Basic <Base 64 encoded (“user@com­


pany:password”)>

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"
}
}

HCM Suite OData API: Reference Guide


Execution Manager PUBLIC 463
Note
The following properties are derived and do not need to be passed when upserting/inserting an event
(EMEvent) along with its process (EMMonitoredProcess):

● processState
● firstEventTime
● lastEventTime

Additional Information

The EMMonitoredProcess entity is a child entity. The EMEvent entity is its parent entity.

Related Information

EMEvent [page 450]


Retrieving metadata [page 27]

HCM Suite OData API: Reference Guide


464 PUBLIC Execution Manager
Important Disclaimers and Legal 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).

HCM Suite OData API: Reference Guide


Important Disclaimers and Legal Information PUBLIC 465
go.sap.com/registration/
contact.html

© 2017 SAP SE or an SAP affiliate company. All rights reserved.


No part of this publication may be reproduced or transmitted in any
form or for any purpose without the express permission of SAP SE
or an SAP affiliate company. The information contained herein may
be changed without prior notice.
Some software products marketed by SAP SE and its distributors
contain proprietary software components of other software
vendors. National product specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company
for informational purposes only, without representation or warranty
of any kind, and SAP or its affiliated companies shall not be liable for
errors or omissions with respect to the materials. The only
warranties for SAP or SAP affiliate company products and services
are those that are set forth in the express warranty statements
accompanying such products and services, if any. Nothing herein
should be construed as constituting an additional warranty.
SAP and other SAP products and services mentioned herein as well
as their respective logos are trademarks or registered trademarks
of SAP SE (or an SAP affiliate company) in Germany and other
countries. All other product and service names mentioned are the
trademarks of their respective companies.
Please see http://www.sap.com/corporate-en/legal/copyright/
index.epx for additional trademark information and notices.

You might also like