SuccessFactors HR
SuccessFactors HR is an integrated human-resources platform. It offers users tools for onboarding, social business, and collaboration along with tools for learning management, performance management, recruiting, applicant tracking, succession planning, talent management, and HR analytics. It is also cloud-based.
Supervisor configuration parameters
To configure the connector, following parameters are required:
- Connector Name
- Username (Format: <userId (not the value for username) of the SuccessFactors service account>@<company_id>)
- Password (needed till v.5.0)
-
SuccessFactors HR instance URL (https://apps.support.sap.com/sap/support/knowledge/public/en/2215682).
-
Private key (v.6.0 onwards)
-
Client Id (v.6.0 onwards)
-
Custom Object Types (v9.0 onwards)
-
Instance DateTime Offset (refer Configuring additional datetime offset in connectors for more details)
-
Minimal Attributes (in v1.0 and v2.0)
NOTE: The default value is false. When the value is set to true, only the minimal set of attributes for all the objects will be queried from the SuccessFactors HR system.
-
Fetch Effective Dated Records Only (v3.0 onwards)
NOTE: The default value is false. When the value is set to true, only the effective dated employees will be queried from the SuccessFactorsHR system.
-
Activate Custom Attributes With Full Name (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, then custom attributes would be prefixed with the full name of the navigational attributes.
-
Separate Effective And FutureDated Employees Endpoints (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would be separated into two endpoints - the effective dated and future dated.
-
Retry Server Call
-
loginMethod (v9.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would have loginMethod attribute in the response.
Table 78: Minimal set of attributes for the objects
BusinessUnit |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Company |
externalCode, name, description, status, createdOn, lastModifiedOn |
CostCenter |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
Division |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Department |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
EmpEmployment |
userID, startDate, createdOn, lastModifiedOn |
Employee |
EmpJob attributes: userId, businessUnit, company, costCenter, createdOn, division, event, eventReason, jobTitle, location, managerId, emplStatus, startDate, jobCode, position
User attributes: dateOfBirth, userId, username, defaultFullName, hireDate, lastModified, status, department, location, firstName, lastName, mi, suffix, email, addressLine1, state, city, zipCode, country, businessPhone, cellPhone |
EventReason |
externalCode, name, status, event, createdOn, lastModifiedOn |
JobCode |
externalCode, name, description, status, createdOn, lastModifiedOn |
Location |
externalCode, name, description, status, geozoneFlx, createdOn, lastModifiedOn |
PerPersonal |
personIdExternal, firstName, lastName, preferredName, createdOn, lastModifiedOn |
PerPhone |
personIdExternal, phoneNumber, phoneType, createdOn, lastModifiedOn |
PicklistLabel |
id,externalCode, status |
PicklistOption |
id,externalCode, status |
Position |
code, description, jobTitle, effectiveStatus, jobCode, businessUnit, company, department, externalName_defaultValue, createdDate, lastModifiedDate |
NOTE: For consuming Starling Connect HR connectors (for example, SuccessFactors HR) into the One Identity Manager Synchronization Client, the One Identity Manager CHS module has to be installed and configured. You can download the appropriate CHS module from the One Identity Manager Support site.
Supported objects and operations
Employees
Table 79: Supported operations for Employees
Get Employee |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
Companies
Table 80: Supported operations for Companies
Get Company |
GET |
Get All Company With Pagination |
GET |
BusinessUnits
Table 81: Supported operations for BusinessUnits
Get BusinessUnit |
GET |
Get All Business Units with Pagination |
GET |
Departments
Table 82: Supported operations for Departments
Get Department |
GET |
Get All Departments with Pagination |
GET |
Locations
Table 83: Supported operations for Locations
Get Location |
GET |
Get All Locations with Pagination |
GET |
Divisions
Table 84: Supported operations for Divisions
Get Division |
GET |
Get All Division With Pagination |
GET |
CostCenters
Table 85: Supported operations for CostCenters
Get CostCenter |
GET |
Get All CostCenter with Pagination |
GET |
JobCodes
Table 86: Supported operations for JobCodes
Get JobCode |
GET |
Get All JobCodeWith Pagination |
GET |
Positions
Table 87: Supported operations for Positions
Get Position |
GET |
Get All Position With Pagination |
GET |
EmpEmployments
Table 88: Supported operations for EmpEmployments
Get EmpEmployment |
GET |
Get All EmpEmployment With Pagination |
GET |
PerPersonals
Table 89: Supported operations for PerPersonals
Get PerPersonal |
GET |
Get All PerPersonal With Pagination |
GET |
PerPhones
Table 90: Supported operations for PerPhones
Get PerPhone |
GET |
Get All PerPhone With Pagination |
GET |
Create PerPhone |
POST |
Update PerPhone |
PUT |
EventReasons
Table 91: Supported operations for EventReasons
Get EventReason |
GET |
Get All EventReason With Pagination |
GET |
PicklistLabels
Table 92: Supported operations for PicklistLabels
Get PicklistLabel |
GET |
Get All PicklistLabel With Pagination |
GET |
PerEmails
Table 93: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
PerEmails
Table 94: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
FutureDatedEmployees (in v5.0 and above)
Table 95: Supported operations for FutureDatedEmployees
Get Employees |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
EmpJobRelationship (in v10.0 and above)
Table 96: Supported operations for EmpJobRelationship
Get EmpJobRelationship |
GET |
Get EmpJobRelationship With Pagination |
GET |
Mandatory Fields
This section lists the mandatory fields required to CREATE/UPDATE, Employees, PerEmails, PerPhones, and FutureDatedEmployees:
Employee
PerEmail
-
personIdExternal
-
emailType
PerPhone
-
personIdExternal
-
phoneType
-
phoneNumber
FutureDatedEmployees
NOTE: Employees and FutureDatedEmployees endpoints support UPDATE operation only.
Mappings
Endpoints mapping
Table 97: Target system objects mapping
Employees |
EmpJob |
BusinessUnits |
FOBusinessUnit |
Departments |
FODepartment |
CostCenters |
FOCostCenter |
Locations |
FOLocation |
Divisions |
Divisions |
Companies |
FOCompany |
JobCodes |
FOJobCode |
Positions |
Position |
EmpEmployments |
EmpEmployment |
PerPersonals |
PerPersonal |
PerPhones |
PerPhone |
PicklistLabels |
PicklistLabel |
PicklistOptions |
PicklistOption |
PerEmails |
PerEmail |
EventReasons |
EventReason |
Attributes mapping
Different mappings associated with this connector are listed in the tables below.
Table 98: Employee mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
FutureDatedEmployees |
EmpJob |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
loginMethod |
userNav/loginMethod |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 99: FutureDatedEmployees mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 100: Departments mapping
costCenter |
costCenter |
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 101: Locations mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
geozoneFlx |
geozoneFlx |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
locationGroup |
locationGroup |
locationGroupFlx |
locationGroupFlx |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timezone |
timezone |
Table 102: BusinessUnits mapping
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
description_de_DE |
description_de_DE |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
name_de_DE |
name_de_DE |
startDate |
startDate |
status |
status |
Table 103: Custom object type mapping
Id |
Base 64 encoded Composite Key or Simple Key of the object |
Meta.Created |
createdDateTime |
meta.lastModified |
lastModifiedDateTime |
All other non-navigational attribute will have same names at both sides |
Table 104: Mapping for V10.1
Id |
Base64encoded(id) |
targetId |
id |
NOTE: Applicable for all object types.
Table 105: Divisions mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 106: CostCenters mapping
Id |
externalCode |
name |
name |
description |
description |
createdBy |
createdBy |
externalCode |
externalCode |
costcenterManager |
costcenterManager |
status |
status |
startDate |
startDate |
endDate |
endDate |
parent |
parent |
lastModifiedOn |
lastModifiedOn |
createdOn |
createdOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 107: Companies mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
defaultLocation |
defaultLocation |
country |
country |
standardHours |
standardHours |
defaultPayGroup |
defaultPayGroup |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 108: JobCodes mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
createdBy |
createdBy |
createdOn |
createdOn |
parentJobCode |
parentJobCode |
supervisorLevel |
supervisorLevel |
defaultSupervisorLevel |
defaultSupervisorLevel |
standardHours |
standardHours |
workerCompCode |
workerCompCode |
grade |
grade |
isFulltimeEmployee |
isFulltimeEmployee |
jobFunction |
jobFunction |
regularTemporary |
regularTemporary |
employeeClass |
employeeClass |
defaultJobLevel |
defaultJobLevel |
isRegular |
isRegular |
jobLevel |
jobLevel |
defaultEmployeeClass |
defaultEmployeeClass |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 109: Positions mapping
Id |
code |
code |
code |
description |
description |
effectiveStartDate |
effectiveStartDate |
effectiveEndDate |
effectiveEndDate |
effectiveStatus |
effectiveStatus |
standardHours |
standardHours |
department |
department |
businessUnit |
businessUnit |
division |
division |
location |
location |
costCenter |
costCenter |
createdBy |
createdBy |
jobTitle |
jobTitle |
employeeClass |
employeeClass |
jobCode |
jobCode |
company |
company |
payGrade |
payGrade |
comment |
comment |
createdDate |
createdDate |
jobLevel |
jobLevel |
lastModifiedBy |
lastModifiedBy |
lastModifiedDate |
lastModifiedDate |
positionTitle |
positionTitle |
vacant |
vacant |
regularTemporary |
regularTemporary |
payRange |
payRange |
Meta.LastModified |
lastModifiedDate |
Meta.Created |
createdDate |
lastModifiedDateTime |
lastModifiedDateTime |
NOTE: Disable the lastModifiedDate or lastModifiedDateTime attribute based on the availability in the instance. Disabling both at the same time may introduce performance issues.
Table 110: EmpEmployments mapping
Id |
userId |
userId |
userId |
personIdExternal |
personIdExternal |
startDate |
startDate |
createdBy |
createdBy |
createdOn |
createdOn |
firstDateWorked |
firstDateWorked |
lastDateWorked |
lastDateWorked |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 111: PerPersonals mapping
createdBy |
createdBy |
createdOn |
createdOn |
emails[].displayName |
personNav/emailNav/result[].emailAddress |
emails[].emailType |
personNav/emailNav/result[].emailType |
emails[].primary |
personNav/emailNav/result[].isPrimary |
emails[].value |
personNav/emailNav/result[].personIdExternal,personNav/emailNav/result[].emailType |
firstName |
firstName |
gender |
gender |
Id |
personIdExternal |
lastModifiedBy |
lastModifiedBy |
lastName |
lastName |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
preferredName |
preferredName |
startDate |
startDate |
Table 112: PerPhones mapping
areaCode |
areaCode |
countryCode |
countryCode |
createdBy |
createdBy |
createdOn |
createdOn |
Id |
personIdExternal,phoneType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
phoneNumber |
phoneNumber |
phoneType |
phoneType |
NOTE: The PerPhones table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and phoneType. |
Table 113: EventReasons mapping
Id |
externalCode |
externalCode |
externalCode |
name |
name |
status |
status |
event_ |
event_ |
emplStatus |
emplStatus |
description |
description |
startDate |
startDate |
createdOn |
createdOn |
createdBy |
createdBy |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 114: PicklistOptions mapping
externalCode |
externalCode |
Id |
id |
status |
status |
Table 115: PicklistLabels mapping
Id |
optionId |
id_ |
id |
label |
label |
locale |
locale |
optionId |
optionId |
Table 116: PerEmails mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
emailAddress |
emailAddress |
emailType |
emailType |
Id |
personIdExternal,emailType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
NOTE: The PerEmails table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and emailType.
Table 117: EmpJobRelationship mapping
Id |
base 64 encoded (userId+startDate+relationshipType) |
originalId |
userId+startDate+relationshipType |
relationshipType |
relationshipType |
userId |
userId |
relUserId |
relUserId |
startDate |
startDate |
endDate |
endDate |
createdBy |
createdBy |
lastModifiedBy |
lastModifiedBy |
meta.LastModified |
lastModifiedOn |
meta.CreatedOn |
createdOn |
Connector limitations
-
DELETE operation is supported only by the PerEmails endpoint.
-
Except for PerEmails and PerPhones, CREATE operation is also not supported by any other endpoints.
-
UPDATE operation is supported by two endpoints on selected attributes as listed below:
-
Employees - username, cellPhone, businessPhone, and email
-
PerEmails - emailAddress, emailType.
-
PerPhones - phoneNumber, phoneType, areaCode, countryCode, and isPrimary.
-
If there are multiple records with same 'startDate' coming in at a later point, then it would not be handled since 'startDate' doesn't have a time stamp.
-
'startDate' is in servertime. Hence, it can't be converted into UTC as the timezone information of the SAP server is unavailable.
-
PerPhones and PerEmails endpoints do not support filters on "id" attribute of SCIM response.
Connector versions and features
The following subsections describe the different connector version(s) and features available with them.
Features available exclusively in SuccessFactors HR v.2.0
Following are the features that are available exclusively in SuccessFactors HR v.2.0:
Features available exclusively in SuccessFactors HR v.3.0
Following are the features that are available exclusively in SuccessFactors HR v.3.0:
-
The attributes of all object schemas can be disabled or enabled while configuring the connector based on your requirements.
NOTE:
- Mandatory attributes cannot be disabled.
- For more information about how to disable attributes, see Disabling attributes
-
You can configure custom attributes for the SuccessFactors HR v.3.0 SCIM connector in Starling Connect for all objects.
-
The connector supports new PerEmails endpoint that allows you to browse and synchronize the data. It also allows you to update and create email records in the PerEmail table.
-
Fetching of future-dated employees/updates can be prevented by enabling the Fetch effective dated records only flag.
Features available exclusively in SuccessFactors HR v4.0
Following are the features that are available exclusively in SuccessFactors HR v.4.0:
-
The naming convention for all the custom attributes has been enhanced that belongs to a navigational object class.
-
Support for UTC date time.
-
Support for multi-level navigational custom attributes.
Features available exclusively in SuccessFactors HR v5.0
-
The Employees endpoint is enhanced to consider lastModified date of both EmpJob and User table.
-
Added a flag 'Separate Effective And FutureDated Employees Endpoints' which when enabled, makes the Employees endpoint to return effective dated employees only and provides a new endpoint 'FutureDatedEmployees' to return future dated records only.
-
Added a flag 'Activate Custom Attributes With Full Name' which when enabled, the naming convention for all the custom attributes will not be prefixed with the navigational attribute names.
-
Support for multi-level navigational custom attributes with the flag "Activate Custom Attributes with full name" ON.
Features available exclusively in SuccessFactors HR v6.0
-
All the features are available which is supported in v.5.0.
-
v.6.0 has no feature change only addition is that it supports OAuth Authentication.
-
For detailed explanation on setting up the OAuth authentication, refer SetUp OAuth.
Features available exclusively in SuccessFactors HR v7.0
Features available exclusively in SuccessFactors HR v8.0
Features available exclusively in SuccessFactors HR v9.0
-
READ operations on Custom Foundation Objects are supported. (Refer Custom Foundation Objects in Successfactors HR connector)
-
Update operation on Custom attribute supported. (Refer Creating custom editable/upsertable attributes in Successfactors employee central)
NOTE:Supported under Employees, EmpEmployments and PerPersonals.
-
PickListLables "id" attribute value changes to "optionId,locale".
-
Support for loginMethod attributes with the flag "loginMethod" ON.
-
Two additional attributes employmentStartDate and employmentEndDate are supported in Employees and FutureDatedEmployees. Even though these attributes can have null value in the target, the Starling Connector currently converts null to 0001-01-01T00:00:00.
Features available exclusively in SuccessFactors HR v10.0
-
Positions Endpoint return FutureDated positions using query parameter(?futureDated=true).
-
PerPersonal Endpoint return FutureDated PerPersonal using query parameter(?futureDated=true).
-
Supports new endpoints FutureDatedPerPersonals and FutureDatedPositions to handle the PerPersonal and Position records respectively which are having future effective dates.
-
Supports new endpoint EmpJobRelationships.
Features available exclusively in SuccessFactors HR v10.1
-
Added a flag ”Use base 64 encoded id in synchronization” which when enabled, makes all the endpoints to return one new attribute “targetId”.
-
The "id" in the SCIM response will be base 64 encoded.
Features available exclusively in SuccessFactors HR v10.2
-
In v10.2 onwards, the id of all resources (except custom objects) containin single quote (') in the id will be bypassed using another the single quote for correct usage in the SuccessFactors API requests. For example, id "test'd" will be changed as "test''d".
Features available exclusively in SuccessFactors HR v10.3
Support for Filter Condition
SuccessFactorsHR connector supports the filter condition for all the objects (i.e., endpoints). We could apply the filter condition and take the filtered records from SuccessFactorsHR target system.
-
The connector supports filter conditions for all the objects.
-
The connector supports filter condition in all the Versions.
-
Supports only AND, OR, and NOT logical operators.
-
Supports only parenthesis () for grouping the condition.
-
The connector supports only single quotes (‘) with filter condition value (ex: phoneType co '10101')
-
Filter conditions should be applied on those attributes that can be filtered. For more information, refer List of Attributes for Filter Condition.
-
Complex attributes are not supported in the filter condition (example: name, email). Only sub-attributes are supported. (email.value, name.familyName)
-
Filter condition should follow the syntax
For example:
1. <attribute_name><space><operator><space>'<string_value or date_value>'
2.<attribute_name><space><operators><space><int_value or bool_value>
-
Filter condition values should NOT have single quotes or percentage with the filter condition value example: (userName co 'O'Malley') or (userName co 'O%Malley%')
-
Filter condition is NOT supported by the connector for Custom attributes.
-
Supports the following operators to filter the values with example should apply in OneIM.
S.No |
Operators |
OneIM System filters |
OneIM Select Objects |
1 |
eq → equal to |
phoneType eq '00000' |
phoneType = '00000' |
2 |
ne → not equal to |
phoneType ne '00000' |
phoneType <> '00000' |
3 |
co → contains |
phoneType co '00000' |
phoneType like '%00000%' |
4 |
sw → starts with |
phoneType sw '00000' |
phoneType like '00000%' |
5 |
ew → ends with |
phoneType ew '00000' |
phoneType like '%00000' |
6 |
gt → greater than |
phoneType gt 100 |
phoneType > 100 |
7 |
lt → less than |
phoneType lt 100 |
phoneType < 100 |
8 |
ge → greater than or equal to |
phoneType ge 500 |
phoneType >= 500 |
9 |
le → less than or equal to |
phoneType le 500 |
phoneType <= 500 |
Some of the example filter conditions (Should be applied at OneIM):
List of Attributes for Filter Condition
The endpoints exposed by the SuccessFactorsHR connector supports filtering of target system data from One Identity Manager. Here is the detailed list of endpoints with both Filterable and non-filterable attributes, used in filter conditions.
Table 118: Employees
Table |
EmpJob |
Filterable |
userId, timezone, department, businessUnit, division, location, costCenter, company, startDate, seqNumber, workingTimeDirective, emplStatus, event, eventReason, endDate, timeTypeProfileCode, timeRecordingVariant, employmentType, workscheduleCode, regularTemp, payScaleGroup, probationPeriodEndDate, payScaleType, managerId, jobCode, createdBy, position, retired, employeeClass, familyRelationshipWithEmployer, isCompetitionClauseActive, standardHours, jobTitle, countryOfCompany, hazard, travelDistance, isSideLineJobAllowed, payScaleArea, holidayCalendarCode, contractType, payGrade, workLocation, workingDaysPerWeek, empRelationship, isFulltimeEmployee, laborProtection, pensionProtection, payScaleLevel, workerCategory |
Non filterable |
NONE |
Table 119: BusinessUnits
Table |
FOBusinessUnit |
Filterable |
externalCode, name, description, createdBy, status, createdOn, lastModifiedBy, startDate, endDate, headOfUnit, description_de_DE, name_de_DE, lastModifiedOn |
Non filterable |
NONE |
Table 120: Companies
Table |
FOCompany |
Filterable |
externalCode, name, description, currency, createdBy, status, startDate, endDate, defaultLocation, country, standardHours, defaultPayGroup, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 121: Department
Table |
FODepartment |
Filterable |
externalCode, name, description, createdBy, costCenter, headOfUnit, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 122: Locations
Table |
FOLocation |
Filterable |
externalCode, name, createdBy, createdOn, createdDateTime, lastModifiedBy, lastModifiedOn, lastModifiedDateTime, startDate, endDate, status |
Non filterable |
description, timezone, geozoneFlx, locationGroup, locationGroupFlx, standardHours |
Table 123: CostCenters
Table |
FOCostCenter |
Filterable |
externalCode, name, description, createdBy, costcenterManager, startDate, endDate, createdOn, lastModifiedBy, parent, status, lastModifiedOn |
Non filterable |
NONE |
Table 124: Divisions
Table |
FODivision |
Filterable |
externalCode, name, description, createdBy, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, createdDateTime, headOfUnit, lastModifiedOn |
Non filterable |
NONE |
Table 125: EmpEmployments
Table |
EmpEmployment |
Filterable |
personIdExternal, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
firstDateWorked, lastDateWorked |
Table 126: EventReasons
Table |
FOEventReason |
Filterable |
externalCode, name, status, startDate, lastModifiedBy, createdBy, createdOn, lastModifiedOn |
Non filterable |
event emplStatus, description |
Table 127: JobCodes
Table |
JobCode |
Filterable |
externalCode, name, status, description, startDate, endDate, lastModifiedBy, createdBy, createdOn, parentJobCode, supervisorLevel, defaultSupervisorLevel, standardHours, workerCompCode, grade, isFulltimeEmployee, jobFunction, regularTemporary, employeeClass, defaultJobLevel, isRegular, jobLevel, defaultEmployeeClass, lastModifiedOn |
Non filterable |
NONE |
Table 128: PerEmails
Table |
PerEmail |
Filterable |
personIdExternal, emailAddress, emailType, lastModifiedDateTime, createdBy, isPrimary, lastModifiedBy, createdDateTime, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 129: PerPersonals
Table |
PerPersonal |
Filterable |
personIdExternal, firstName, lastName, gender, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
preferredName |
Table 130: PerPhones
Table |
PerPhone |
Filterable |
personIdExternal, phoneNumber, phoneType, createdBy, createdOn, areaCode, countryCode, isPrimary, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 131: PicklistLabels
Table |
PicklistLabel |
Filterable |
id, locale, label, optionId |
Non filterable |
NONE |
Table 132: PicklistOptions
Table |
PicklistOption |
Filterable |
id, status, externalCode |
Non filterable |
NONE |
Table 133: Positions
Table |
Position |
Filterable |
code, description, effectiveStartDate, effectiveEndDate, effectiveStatus, standardHours, department, businessUnit, division, location, costCenter, jobTitle, employeeClass, jobCode, company, payGrade, jobLevel, positionTitle, vacant, regularTemporary, createdBy, createdDate, lastModifiedBy, lastModifiedDate, lastModifiedDateTime, externalName_defaultValue |
Non filterable |
payRange |
Table 134: EmpGlobalAssignments
Table |
EmpGlobalAssignments |
Filterable |
Id, userId, assignmentType, createdBy, createdDateTime, type, startDate, endDate, payrollEndDate, lastModifiedBy, lastModifiedDateTime, assignmentIdExternal, personIdExternal, lastModifiedOn |
Non filterable |
AssignmentClass |
Table 135: EmpJobRelationships
Table |
EmpJobRelationships |
Filterable |
userId, relationshipType ,createdBy, createdDateTime, startDate, endDate, lastModifiedBy, lastModifiedDateTime, relUserId ,lastModifiedOn |
Non filterable |
None |
Configuring changes in One Identity Manager to support filter conditions
-
Open the Synchronization Editor tool.
-
Select SCIM connector and the Target system
-
Navigate to Schema Classes.
-
Add a new schema class for the perphone.
-
Add the System filter and Select Object condition. Click Commit to Database.
-
In PerPhones mappings, edit the Target system schema class with the recently created schema and click Commit to Database.
-
Run the synchronization.
The Filter conditions will be created.
Conditions on "Fetch Effective Dated Records Only" & "Separate Effective And Future Dated Employees Endpoints" flags based on different use cases (for version v.5.0 and above)
Supervisor configuration parameters
SuccessFactors HR is an integrated human-resources platform. It offers users tools for onboarding, social business, and collaboration along with tools for learning management, performance management, recruiting, applicant tracking, succession planning, talent management, and HR analytics. It is also cloud-based.
To configure the connector, following parameters are required:
- Connector Name
- Username (Format: <userId (not the value for username) of the SuccessFactors service account>@<company_id>)
- Password (needed till v.5.0)
-
SuccessFactors HR instance URL (https://apps.support.sap.com/sap/support/knowledge/public/en/2215682).
-
Private key (v.6.0 onwards)
-
Client Id (v.6.0 onwards)
-
Custom Object Types (v9.0 onwards)
-
Instance DateTime Offset (refer Configuring additional datetime offset in connectors for more details)
-
Minimal Attributes (in v1.0 and v2.0)
NOTE: The default value is false. When the value is set to true, only the minimal set of attributes for all the objects will be queried from the SuccessFactors HR system.
-
Fetch Effective Dated Records Only (v3.0 onwards)
NOTE: The default value is false. When the value is set to true, only the effective dated employees will be queried from the SuccessFactorsHR system.
-
Activate Custom Attributes With Full Name (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, then custom attributes would be prefixed with the full name of the navigational attributes.
-
Separate Effective And FutureDated Employees Endpoints (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would be separated into two endpoints - the effective dated and future dated.
-
Retry Server Call
-
loginMethod (v9.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would have loginMethod attribute in the response.
Table 78: Minimal set of attributes for the objects
BusinessUnit |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Company |
externalCode, name, description, status, createdOn, lastModifiedOn |
CostCenter |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
Division |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Department |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
EmpEmployment |
userID, startDate, createdOn, lastModifiedOn |
Employee |
EmpJob attributes: userId, businessUnit, company, costCenter, createdOn, division, event, eventReason, jobTitle, location, managerId, emplStatus, startDate, jobCode, position
User attributes: dateOfBirth, userId, username, defaultFullName, hireDate, lastModified, status, department, location, firstName, lastName, mi, suffix, email, addressLine1, state, city, zipCode, country, businessPhone, cellPhone |
EventReason |
externalCode, name, status, event, createdOn, lastModifiedOn |
JobCode |
externalCode, name, description, status, createdOn, lastModifiedOn |
Location |
externalCode, name, description, status, geozoneFlx, createdOn, lastModifiedOn |
PerPersonal |
personIdExternal, firstName, lastName, preferredName, createdOn, lastModifiedOn |
PerPhone |
personIdExternal, phoneNumber, phoneType, createdOn, lastModifiedOn |
PicklistLabel |
id,externalCode, status |
PicklistOption |
id,externalCode, status |
Position |
code, description, jobTitle, effectiveStatus, jobCode, businessUnit, company, department, externalName_defaultValue, createdDate, lastModifiedDate |
NOTE: For consuming Starling Connect HR connectors (for example, SuccessFactors HR) into the One Identity Manager Synchronization Client, the One Identity Manager CHS module has to be installed and configured. You can download the appropriate CHS module from the One Identity Manager Support site.
Supported objects and operations
Employees
Table 79: Supported operations for Employees
Get Employee |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
Companies
Table 80: Supported operations for Companies
Get Company |
GET |
Get All Company With Pagination |
GET |
BusinessUnits
Table 81: Supported operations for BusinessUnits
Get BusinessUnit |
GET |
Get All Business Units with Pagination |
GET |
Departments
Table 82: Supported operations for Departments
Get Department |
GET |
Get All Departments with Pagination |
GET |
Locations
Table 83: Supported operations for Locations
Get Location |
GET |
Get All Locations with Pagination |
GET |
Divisions
Table 84: Supported operations for Divisions
Get Division |
GET |
Get All Division With Pagination |
GET |
CostCenters
Table 85: Supported operations for CostCenters
Get CostCenter |
GET |
Get All CostCenter with Pagination |
GET |
JobCodes
Table 86: Supported operations for JobCodes
Get JobCode |
GET |
Get All JobCodeWith Pagination |
GET |
Positions
Table 87: Supported operations for Positions
Get Position |
GET |
Get All Position With Pagination |
GET |
EmpEmployments
Table 88: Supported operations for EmpEmployments
Get EmpEmployment |
GET |
Get All EmpEmployment With Pagination |
GET |
PerPersonals
Table 89: Supported operations for PerPersonals
Get PerPersonal |
GET |
Get All PerPersonal With Pagination |
GET |
PerPhones
Table 90: Supported operations for PerPhones
Get PerPhone |
GET |
Get All PerPhone With Pagination |
GET |
Create PerPhone |
POST |
Update PerPhone |
PUT |
EventReasons
Table 91: Supported operations for EventReasons
Get EventReason |
GET |
Get All EventReason With Pagination |
GET |
PicklistLabels
Table 92: Supported operations for PicklistLabels
Get PicklistLabel |
GET |
Get All PicklistLabel With Pagination |
GET |
PerEmails
Table 93: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
PerEmails
Table 94: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
FutureDatedEmployees (in v5.0 and above)
Table 95: Supported operations for FutureDatedEmployees
Get Employees |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
EmpJobRelationship (in v10.0 and above)
Table 96: Supported operations for EmpJobRelationship
Get EmpJobRelationship |
GET |
Get EmpJobRelationship With Pagination |
GET |
Mandatory Fields
This section lists the mandatory fields required to CREATE/UPDATE, Employees, PerEmails, PerPhones, and FutureDatedEmployees:
Employee
PerEmail
-
personIdExternal
-
emailType
PerPhone
-
personIdExternal
-
phoneType
-
phoneNumber
FutureDatedEmployees
NOTE: Employees and FutureDatedEmployees endpoints support UPDATE operation only.
Mappings
Endpoints mapping
Table 97: Target system objects mapping
Employees |
EmpJob |
BusinessUnits |
FOBusinessUnit |
Departments |
FODepartment |
CostCenters |
FOCostCenter |
Locations |
FOLocation |
Divisions |
Divisions |
Companies |
FOCompany |
JobCodes |
FOJobCode |
Positions |
Position |
EmpEmployments |
EmpEmployment |
PerPersonals |
PerPersonal |
PerPhones |
PerPhone |
PicklistLabels |
PicklistLabel |
PicklistOptions |
PicklistOption |
PerEmails |
PerEmail |
EventReasons |
EventReason |
Attributes mapping
Different mappings associated with this connector are listed in the tables below.
Table 98: Employee mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
FutureDatedEmployees |
EmpJob |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
loginMethod |
userNav/loginMethod |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 99: FutureDatedEmployees mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 100: Departments mapping
costCenter |
costCenter |
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 101: Locations mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
geozoneFlx |
geozoneFlx |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
locationGroup |
locationGroup |
locationGroupFlx |
locationGroupFlx |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timezone |
timezone |
Table 102: BusinessUnits mapping
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
description_de_DE |
description_de_DE |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
name_de_DE |
name_de_DE |
startDate |
startDate |
status |
status |
Table 103: Custom object type mapping
Id |
Base 64 encoded Composite Key or Simple Key of the object |
Meta.Created |
createdDateTime |
meta.lastModified |
lastModifiedDateTime |
All other non-navigational attribute will have same names at both sides |
Table 104: Mapping for V10.1
Id |
Base64encoded(id) |
targetId |
id |
NOTE: Applicable for all object types.
Table 105: Divisions mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 106: CostCenters mapping
Id |
externalCode |
name |
name |
description |
description |
createdBy |
createdBy |
externalCode |
externalCode |
costcenterManager |
costcenterManager |
status |
status |
startDate |
startDate |
endDate |
endDate |
parent |
parent |
lastModifiedOn |
lastModifiedOn |
createdOn |
createdOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 107: Companies mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
defaultLocation |
defaultLocation |
country |
country |
standardHours |
standardHours |
defaultPayGroup |
defaultPayGroup |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 108: JobCodes mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
createdBy |
createdBy |
createdOn |
createdOn |
parentJobCode |
parentJobCode |
supervisorLevel |
supervisorLevel |
defaultSupervisorLevel |
defaultSupervisorLevel |
standardHours |
standardHours |
workerCompCode |
workerCompCode |
grade |
grade |
isFulltimeEmployee |
isFulltimeEmployee |
jobFunction |
jobFunction |
regularTemporary |
regularTemporary |
employeeClass |
employeeClass |
defaultJobLevel |
defaultJobLevel |
isRegular |
isRegular |
jobLevel |
jobLevel |
defaultEmployeeClass |
defaultEmployeeClass |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 109: Positions mapping
Id |
code |
code |
code |
description |
description |
effectiveStartDate |
effectiveStartDate |
effectiveEndDate |
effectiveEndDate |
effectiveStatus |
effectiveStatus |
standardHours |
standardHours |
department |
department |
businessUnit |
businessUnit |
division |
division |
location |
location |
costCenter |
costCenter |
createdBy |
createdBy |
jobTitle |
jobTitle |
employeeClass |
employeeClass |
jobCode |
jobCode |
company |
company |
payGrade |
payGrade |
comment |
comment |
createdDate |
createdDate |
jobLevel |
jobLevel |
lastModifiedBy |
lastModifiedBy |
lastModifiedDate |
lastModifiedDate |
positionTitle |
positionTitle |
vacant |
vacant |
regularTemporary |
regularTemporary |
payRange |
payRange |
Meta.LastModified |
lastModifiedDate |
Meta.Created |
createdDate |
lastModifiedDateTime |
lastModifiedDateTime |
NOTE: Disable the lastModifiedDate or lastModifiedDateTime attribute based on the availability in the instance. Disabling both at the same time may introduce performance issues.
Table 110: EmpEmployments mapping
Id |
userId |
userId |
userId |
personIdExternal |
personIdExternal |
startDate |
startDate |
createdBy |
createdBy |
createdOn |
createdOn |
firstDateWorked |
firstDateWorked |
lastDateWorked |
lastDateWorked |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 111: PerPersonals mapping
createdBy |
createdBy |
createdOn |
createdOn |
emails[].displayName |
personNav/emailNav/result[].emailAddress |
emails[].emailType |
personNav/emailNav/result[].emailType |
emails[].primary |
personNav/emailNav/result[].isPrimary |
emails[].value |
personNav/emailNav/result[].personIdExternal,personNav/emailNav/result[].emailType |
firstName |
firstName |
gender |
gender |
Id |
personIdExternal |
lastModifiedBy |
lastModifiedBy |
lastName |
lastName |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
preferredName |
preferredName |
startDate |
startDate |
Table 112: PerPhones mapping
areaCode |
areaCode |
countryCode |
countryCode |
createdBy |
createdBy |
createdOn |
createdOn |
Id |
personIdExternal,phoneType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
phoneNumber |
phoneNumber |
phoneType |
phoneType |
NOTE: The PerPhones table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and phoneType. |
Table 113: EventReasons mapping
Id |
externalCode |
externalCode |
externalCode |
name |
name |
status |
status |
event_ |
event_ |
emplStatus |
emplStatus |
description |
description |
startDate |
startDate |
createdOn |
createdOn |
createdBy |
createdBy |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 114: PicklistOptions mapping
externalCode |
externalCode |
Id |
id |
status |
status |
Table 115: PicklistLabels mapping
Id |
optionId |
id_ |
id |
label |
label |
locale |
locale |
optionId |
optionId |
Table 116: PerEmails mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
emailAddress |
emailAddress |
emailType |
emailType |
Id |
personIdExternal,emailType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
NOTE: The PerEmails table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and emailType.
Table 117: EmpJobRelationship mapping
Id |
base 64 encoded (userId+startDate+relationshipType) |
originalId |
userId+startDate+relationshipType |
relationshipType |
relationshipType |
userId |
userId |
relUserId |
relUserId |
startDate |
startDate |
endDate |
endDate |
createdBy |
createdBy |
lastModifiedBy |
lastModifiedBy |
meta.LastModified |
lastModifiedOn |
meta.CreatedOn |
createdOn |
Connector limitations
-
DELETE operation is supported only by the PerEmails endpoint.
-
Except for PerEmails and PerPhones, CREATE operation is also not supported by any other endpoints.
-
UPDATE operation is supported by two endpoints on selected attributes as listed below:
-
Employees - username, cellPhone, businessPhone, and email
-
PerEmails - emailAddress, emailType.
-
PerPhones - phoneNumber, phoneType, areaCode, countryCode, and isPrimary.
-
If there are multiple records with same 'startDate' coming in at a later point, then it would not be handled since 'startDate' doesn't have a time stamp.
-
'startDate' is in servertime. Hence, it can't be converted into UTC as the timezone information of the SAP server is unavailable.
-
PerPhones and PerEmails endpoints do not support filters on "id" attribute of SCIM response.
Connector versions and features
The following subsections describe the different connector version(s) and features available with them.
Features available exclusively in SuccessFactors HR v.2.0
Following are the features that are available exclusively in SuccessFactors HR v.2.0:
Features available exclusively in SuccessFactors HR v.3.0
Following are the features that are available exclusively in SuccessFactors HR v.3.0:
-
The attributes of all object schemas can be disabled or enabled while configuring the connector based on your requirements.
NOTE:
- Mandatory attributes cannot be disabled.
- For more information about how to disable attributes, see Disabling attributes
-
You can configure custom attributes for the SuccessFactors HR v.3.0 SCIM connector in Starling Connect for all objects.
-
The connector supports new PerEmails endpoint that allows you to browse and synchronize the data. It also allows you to update and create email records in the PerEmail table.
-
Fetching of future-dated employees/updates can be prevented by enabling the Fetch effective dated records only flag.
Features available exclusively in SuccessFactors HR v4.0
Following are the features that are available exclusively in SuccessFactors HR v.4.0:
-
The naming convention for all the custom attributes has been enhanced that belongs to a navigational object class.
-
Support for UTC date time.
-
Support for multi-level navigational custom attributes.
Features available exclusively in SuccessFactors HR v5.0
-
The Employees endpoint is enhanced to consider lastModified date of both EmpJob and User table.
-
Added a flag 'Separate Effective And FutureDated Employees Endpoints' which when enabled, makes the Employees endpoint to return effective dated employees only and provides a new endpoint 'FutureDatedEmployees' to return future dated records only.
-
Added a flag 'Activate Custom Attributes With Full Name' which when enabled, the naming convention for all the custom attributes will not be prefixed with the navigational attribute names.
-
Support for multi-level navigational custom attributes with the flag "Activate Custom Attributes with full name" ON.
Features available exclusively in SuccessFactors HR v6.0
-
All the features are available which is supported in v.5.0.
-
v.6.0 has no feature change only addition is that it supports OAuth Authentication.
-
For detailed explanation on setting up the OAuth authentication, refer SetUp OAuth.
Features available exclusively in SuccessFactors HR v7.0
Features available exclusively in SuccessFactors HR v8.0
Features available exclusively in SuccessFactors HR v9.0
-
READ operations on Custom Foundation Objects are supported. (Refer Custom Foundation Objects in Successfactors HR connector)
-
Update operation on Custom attribute supported. (Refer Creating custom editable/upsertable attributes in Successfactors employee central)
NOTE:Supported under Employees, EmpEmployments and PerPersonals.
-
PickListLables "id" attribute value changes to "optionId,locale".
-
Support for loginMethod attributes with the flag "loginMethod" ON.
-
Two additional attributes employmentStartDate and employmentEndDate are supported in Employees and FutureDatedEmployees. Even though these attributes can have null value in the target, the Starling Connector currently converts null to 0001-01-01T00:00:00.
Features available exclusively in SuccessFactors HR v10.0
-
Positions Endpoint return FutureDated positions using query parameter(?futureDated=true).
-
PerPersonal Endpoint return FutureDated PerPersonal using query parameter(?futureDated=true).
-
Supports new endpoints FutureDatedPerPersonals and FutureDatedPositions to handle the PerPersonal and Position records respectively which are having future effective dates.
-
Supports new endpoint EmpJobRelationships.
Features available exclusively in SuccessFactors HR v10.1
-
Added a flag ”Use base 64 encoded id in synchronization” which when enabled, makes all the endpoints to return one new attribute “targetId”.
-
The "id" in the SCIM response will be base 64 encoded.
Features available exclusively in SuccessFactors HR v10.2
-
In v10.2 onwards, the id of all resources (except custom objects) containin single quote (') in the id will be bypassed using another the single quote for correct usage in the SuccessFactors API requests. For example, id "test'd" will be changed as "test''d".
Features available exclusively in SuccessFactors HR v10.3
Support for Filter Condition
SuccessFactorsHR connector supports the filter condition for all the objects (i.e., endpoints). We could apply the filter condition and take the filtered records from SuccessFactorsHR target system.
-
The connector supports filter conditions for all the objects.
-
The connector supports filter condition in all the Versions.
-
Supports only AND, OR, and NOT logical operators.
-
Supports only parenthesis () for grouping the condition.
-
The connector supports only single quotes (‘) with filter condition value (ex: phoneType co '10101')
-
Filter conditions should be applied on those attributes that can be filtered. For more information, refer List of Attributes for Filter Condition.
-
Complex attributes are not supported in the filter condition (example: name, email). Only sub-attributes are supported. (email.value, name.familyName)
-
Filter condition should follow the syntax
For example:
1. <attribute_name><space><operator><space>'<string_value or date_value>'
2.<attribute_name><space><operators><space><int_value or bool_value>
-
Filter condition values should NOT have single quotes or percentage with the filter condition value example: (userName co 'O'Malley') or (userName co 'O%Malley%')
-
Filter condition is NOT supported by the connector for Custom attributes.
-
Supports the following operators to filter the values with example should apply in OneIM.
S.No |
Operators |
OneIM System filters |
OneIM Select Objects |
1 |
eq → equal to |
phoneType eq '00000' |
phoneType = '00000' |
2 |
ne → not equal to |
phoneType ne '00000' |
phoneType <> '00000' |
3 |
co → contains |
phoneType co '00000' |
phoneType like '%00000%' |
4 |
sw → starts with |
phoneType sw '00000' |
phoneType like '00000%' |
5 |
ew → ends with |
phoneType ew '00000' |
phoneType like '%00000' |
6 |
gt → greater than |
phoneType gt 100 |
phoneType > 100 |
7 |
lt → less than |
phoneType lt 100 |
phoneType < 100 |
8 |
ge → greater than or equal to |
phoneType ge 500 |
phoneType >= 500 |
9 |
le → less than or equal to |
phoneType le 500 |
phoneType <= 500 |
Some of the example filter conditions (Should be applied at OneIM):
List of Attributes for Filter Condition
The endpoints exposed by the SuccessFactorsHR connector supports filtering of target system data from One Identity Manager. Here is the detailed list of endpoints with both Filterable and non-filterable attributes, used in filter conditions.
Table 118: Employees
Table |
EmpJob |
Filterable |
userId, timezone, department, businessUnit, division, location, costCenter, company, startDate, seqNumber, workingTimeDirective, emplStatus, event, eventReason, endDate, timeTypeProfileCode, timeRecordingVariant, employmentType, workscheduleCode, regularTemp, payScaleGroup, probationPeriodEndDate, payScaleType, managerId, jobCode, createdBy, position, retired, employeeClass, familyRelationshipWithEmployer, isCompetitionClauseActive, standardHours, jobTitle, countryOfCompany, hazard, travelDistance, isSideLineJobAllowed, payScaleArea, holidayCalendarCode, contractType, payGrade, workLocation, workingDaysPerWeek, empRelationship, isFulltimeEmployee, laborProtection, pensionProtection, payScaleLevel, workerCategory |
Non filterable |
NONE |
Table 119: BusinessUnits
Table |
FOBusinessUnit |
Filterable |
externalCode, name, description, createdBy, status, createdOn, lastModifiedBy, startDate, endDate, headOfUnit, description_de_DE, name_de_DE, lastModifiedOn |
Non filterable |
NONE |
Table 120: Companies
Table |
FOCompany |
Filterable |
externalCode, name, description, currency, createdBy, status, startDate, endDate, defaultLocation, country, standardHours, defaultPayGroup, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 121: Department
Table |
FODepartment |
Filterable |
externalCode, name, description, createdBy, costCenter, headOfUnit, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 122: Locations
Table |
FOLocation |
Filterable |
externalCode, name, createdBy, createdOn, createdDateTime, lastModifiedBy, lastModifiedOn, lastModifiedDateTime, startDate, endDate, status |
Non filterable |
description, timezone, geozoneFlx, locationGroup, locationGroupFlx, standardHours |
Table 123: CostCenters
Table |
FOCostCenter |
Filterable |
externalCode, name, description, createdBy, costcenterManager, startDate, endDate, createdOn, lastModifiedBy, parent, status, lastModifiedOn |
Non filterable |
NONE |
Table 124: Divisions
Table |
FODivision |
Filterable |
externalCode, name, description, createdBy, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, createdDateTime, headOfUnit, lastModifiedOn |
Non filterable |
NONE |
Table 125: EmpEmployments
Table |
EmpEmployment |
Filterable |
personIdExternal, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
firstDateWorked, lastDateWorked |
Table 126: EventReasons
Table |
FOEventReason |
Filterable |
externalCode, name, status, startDate, lastModifiedBy, createdBy, createdOn, lastModifiedOn |
Non filterable |
event emplStatus, description |
Table 127: JobCodes
Table |
JobCode |
Filterable |
externalCode, name, status, description, startDate, endDate, lastModifiedBy, createdBy, createdOn, parentJobCode, supervisorLevel, defaultSupervisorLevel, standardHours, workerCompCode, grade, isFulltimeEmployee, jobFunction, regularTemporary, employeeClass, defaultJobLevel, isRegular, jobLevel, defaultEmployeeClass, lastModifiedOn |
Non filterable |
NONE |
Table 128: PerEmails
Table |
PerEmail |
Filterable |
personIdExternal, emailAddress, emailType, lastModifiedDateTime, createdBy, isPrimary, lastModifiedBy, createdDateTime, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 129: PerPersonals
Table |
PerPersonal |
Filterable |
personIdExternal, firstName, lastName, gender, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
preferredName |
Table 130: PerPhones
Table |
PerPhone |
Filterable |
personIdExternal, phoneNumber, phoneType, createdBy, createdOn, areaCode, countryCode, isPrimary, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 131: PicklistLabels
Table |
PicklistLabel |
Filterable |
id, locale, label, optionId |
Non filterable |
NONE |
Table 132: PicklistOptions
Table |
PicklistOption |
Filterable |
id, status, externalCode |
Non filterable |
NONE |
Table 133: Positions
Table |
Position |
Filterable |
code, description, effectiveStartDate, effectiveEndDate, effectiveStatus, standardHours, department, businessUnit, division, location, costCenter, jobTitle, employeeClass, jobCode, company, payGrade, jobLevel, positionTitle, vacant, regularTemporary, createdBy, createdDate, lastModifiedBy, lastModifiedDate, lastModifiedDateTime, externalName_defaultValue |
Non filterable |
payRange |
Table 134: EmpGlobalAssignments
Table |
EmpGlobalAssignments |
Filterable |
Id, userId, assignmentType, createdBy, createdDateTime, type, startDate, endDate, payrollEndDate, lastModifiedBy, lastModifiedDateTime, assignmentIdExternal, personIdExternal, lastModifiedOn |
Non filterable |
AssignmentClass |
Table 135: EmpJobRelationships
Table |
EmpJobRelationships |
Filterable |
userId, relationshipType ,createdBy, createdDateTime, startDate, endDate, lastModifiedBy, lastModifiedDateTime, relUserId ,lastModifiedOn |
Non filterable |
None |
Configuring changes in One Identity Manager to support filter conditions
-
Open the Synchronization Editor tool.
-
Select SCIM connector and the Target system
-
Navigate to Schema Classes.
-
Add a new schema class for the perphone.
-
Add the System filter and Select Object condition. Click Commit to Database.
-
In PerPhones mappings, edit the Target system schema class with the recently created schema and click Commit to Database.
-
Run the synchronization.
The Filter conditions will be created.
Conditions on "Fetch Effective Dated Records Only" & "Separate Effective And Future Dated Employees Endpoints" flags based on different use cases (for version v.5.0 and above)
Supported objects and operations
SuccessFactors HR is an integrated human-resources platform. It offers users tools for onboarding, social business, and collaboration along with tools for learning management, performance management, recruiting, applicant tracking, succession planning, talent management, and HR analytics. It is also cloud-based.
Supervisor configuration parameters
To configure the connector, following parameters are required:
- Connector Name
- Username (Format: <userId (not the value for username) of the SuccessFactors service account>@<company_id>)
- Password (needed till v.5.0)
-
SuccessFactors HR instance URL (https://apps.support.sap.com/sap/support/knowledge/public/en/2215682).
-
Private key (v.6.0 onwards)
-
Client Id (v.6.0 onwards)
-
Custom Object Types (v9.0 onwards)
-
Instance DateTime Offset (refer Configuring additional datetime offset in connectors for more details)
-
Minimal Attributes (in v1.0 and v2.0)
NOTE: The default value is false. When the value is set to true, only the minimal set of attributes for all the objects will be queried from the SuccessFactors HR system.
-
Fetch Effective Dated Records Only (v3.0 onwards)
NOTE: The default value is false. When the value is set to true, only the effective dated employees will be queried from the SuccessFactorsHR system.
-
Activate Custom Attributes With Full Name (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, then custom attributes would be prefixed with the full name of the navigational attributes.
-
Separate Effective And FutureDated Employees Endpoints (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would be separated into two endpoints - the effective dated and future dated.
-
Retry Server Call
-
loginMethod (v9.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would have loginMethod attribute in the response.
Table 78: Minimal set of attributes for the objects
BusinessUnit |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Company |
externalCode, name, description, status, createdOn, lastModifiedOn |
CostCenter |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
Division |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Department |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
EmpEmployment |
userID, startDate, createdOn, lastModifiedOn |
Employee |
EmpJob attributes: userId, businessUnit, company, costCenter, createdOn, division, event, eventReason, jobTitle, location, managerId, emplStatus, startDate, jobCode, position
User attributes: dateOfBirth, userId, username, defaultFullName, hireDate, lastModified, status, department, location, firstName, lastName, mi, suffix, email, addressLine1, state, city, zipCode, country, businessPhone, cellPhone |
EventReason |
externalCode, name, status, event, createdOn, lastModifiedOn |
JobCode |
externalCode, name, description, status, createdOn, lastModifiedOn |
Location |
externalCode, name, description, status, geozoneFlx, createdOn, lastModifiedOn |
PerPersonal |
personIdExternal, firstName, lastName, preferredName, createdOn, lastModifiedOn |
PerPhone |
personIdExternal, phoneNumber, phoneType, createdOn, lastModifiedOn |
PicklistLabel |
id,externalCode, status |
PicklistOption |
id,externalCode, status |
Position |
code, description, jobTitle, effectiveStatus, jobCode, businessUnit, company, department, externalName_defaultValue, createdDate, lastModifiedDate |
NOTE: For consuming Starling Connect HR connectors (for example, SuccessFactors HR) into the One Identity Manager Synchronization Client, the One Identity Manager CHS module has to be installed and configured. You can download the appropriate CHS module from the One Identity Manager Support site.
Employees
Table 79: Supported operations for Employees
Get Employee |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
Companies
Table 80: Supported operations for Companies
Get Company |
GET |
Get All Company With Pagination |
GET |
BusinessUnits
Table 81: Supported operations for BusinessUnits
Get BusinessUnit |
GET |
Get All Business Units with Pagination |
GET |
Departments
Table 82: Supported operations for Departments
Get Department |
GET |
Get All Departments with Pagination |
GET |
Locations
Table 83: Supported operations for Locations
Get Location |
GET |
Get All Locations with Pagination |
GET |
Divisions
Table 84: Supported operations for Divisions
Get Division |
GET |
Get All Division With Pagination |
GET |
CostCenters
Table 85: Supported operations for CostCenters
Get CostCenter |
GET |
Get All CostCenter with Pagination |
GET |
JobCodes
Table 86: Supported operations for JobCodes
Get JobCode |
GET |
Get All JobCodeWith Pagination |
GET |
Positions
Table 87: Supported operations for Positions
Get Position |
GET |
Get All Position With Pagination |
GET |
EmpEmployments
Table 88: Supported operations for EmpEmployments
Get EmpEmployment |
GET |
Get All EmpEmployment With Pagination |
GET |
PerPersonals
Table 89: Supported operations for PerPersonals
Get PerPersonal |
GET |
Get All PerPersonal With Pagination |
GET |
PerPhones
Table 90: Supported operations for PerPhones
Get PerPhone |
GET |
Get All PerPhone With Pagination |
GET |
Create PerPhone |
POST |
Update PerPhone |
PUT |
EventReasons
Table 91: Supported operations for EventReasons
Get EventReason |
GET |
Get All EventReason With Pagination |
GET |
PicklistLabels
Table 92: Supported operations for PicklistLabels
Get PicklistLabel |
GET |
Get All PicklistLabel With Pagination |
GET |
PerEmails
Table 93: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
PerEmails
Table 94: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
FutureDatedEmployees (in v5.0 and above)
Table 95: Supported operations for FutureDatedEmployees
Get Employees |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
EmpJobRelationship (in v10.0 and above)
Table 96: Supported operations for EmpJobRelationship
Get EmpJobRelationship |
GET |
Get EmpJobRelationship With Pagination |
GET |
Mandatory Fields
This section lists the mandatory fields required to CREATE/UPDATE, Employees, PerEmails, PerPhones, and FutureDatedEmployees:
Employee
PerEmail
-
personIdExternal
-
emailType
PerPhone
-
personIdExternal
-
phoneType
-
phoneNumber
FutureDatedEmployees
NOTE: Employees and FutureDatedEmployees endpoints support UPDATE operation only.
Mappings
Endpoints mapping
Table 97: Target system objects mapping
Employees |
EmpJob |
BusinessUnits |
FOBusinessUnit |
Departments |
FODepartment |
CostCenters |
FOCostCenter |
Locations |
FOLocation |
Divisions |
Divisions |
Companies |
FOCompany |
JobCodes |
FOJobCode |
Positions |
Position |
EmpEmployments |
EmpEmployment |
PerPersonals |
PerPersonal |
PerPhones |
PerPhone |
PicklistLabels |
PicklistLabel |
PicklistOptions |
PicklistOption |
PerEmails |
PerEmail |
EventReasons |
EventReason |
Attributes mapping
Different mappings associated with this connector are listed in the tables below.
Table 98: Employee mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
FutureDatedEmployees |
EmpJob |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
loginMethod |
userNav/loginMethod |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 99: FutureDatedEmployees mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 100: Departments mapping
costCenter |
costCenter |
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 101: Locations mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
geozoneFlx |
geozoneFlx |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
locationGroup |
locationGroup |
locationGroupFlx |
locationGroupFlx |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timezone |
timezone |
Table 102: BusinessUnits mapping
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
description_de_DE |
description_de_DE |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
name_de_DE |
name_de_DE |
startDate |
startDate |
status |
status |
Table 103: Custom object type mapping
Id |
Base 64 encoded Composite Key or Simple Key of the object |
Meta.Created |
createdDateTime |
meta.lastModified |
lastModifiedDateTime |
All other non-navigational attribute will have same names at both sides |
Table 104: Mapping for V10.1
Id |
Base64encoded(id) |
targetId |
id |
NOTE: Applicable for all object types.
Table 105: Divisions mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 106: CostCenters mapping
Id |
externalCode |
name |
name |
description |
description |
createdBy |
createdBy |
externalCode |
externalCode |
costcenterManager |
costcenterManager |
status |
status |
startDate |
startDate |
endDate |
endDate |
parent |
parent |
lastModifiedOn |
lastModifiedOn |
createdOn |
createdOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 107: Companies mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
defaultLocation |
defaultLocation |
country |
country |
standardHours |
standardHours |
defaultPayGroup |
defaultPayGroup |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 108: JobCodes mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
createdBy |
createdBy |
createdOn |
createdOn |
parentJobCode |
parentJobCode |
supervisorLevel |
supervisorLevel |
defaultSupervisorLevel |
defaultSupervisorLevel |
standardHours |
standardHours |
workerCompCode |
workerCompCode |
grade |
grade |
isFulltimeEmployee |
isFulltimeEmployee |
jobFunction |
jobFunction |
regularTemporary |
regularTemporary |
employeeClass |
employeeClass |
defaultJobLevel |
defaultJobLevel |
isRegular |
isRegular |
jobLevel |
jobLevel |
defaultEmployeeClass |
defaultEmployeeClass |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 109: Positions mapping
Id |
code |
code |
code |
description |
description |
effectiveStartDate |
effectiveStartDate |
effectiveEndDate |
effectiveEndDate |
effectiveStatus |
effectiveStatus |
standardHours |
standardHours |
department |
department |
businessUnit |
businessUnit |
division |
division |
location |
location |
costCenter |
costCenter |
createdBy |
createdBy |
jobTitle |
jobTitle |
employeeClass |
employeeClass |
jobCode |
jobCode |
company |
company |
payGrade |
payGrade |
comment |
comment |
createdDate |
createdDate |
jobLevel |
jobLevel |
lastModifiedBy |
lastModifiedBy |
lastModifiedDate |
lastModifiedDate |
positionTitle |
positionTitle |
vacant |
vacant |
regularTemporary |
regularTemporary |
payRange |
payRange |
Meta.LastModified |
lastModifiedDate |
Meta.Created |
createdDate |
lastModifiedDateTime |
lastModifiedDateTime |
NOTE: Disable the lastModifiedDate or lastModifiedDateTime attribute based on the availability in the instance. Disabling both at the same time may introduce performance issues.
Table 110: EmpEmployments mapping
Id |
userId |
userId |
userId |
personIdExternal |
personIdExternal |
startDate |
startDate |
createdBy |
createdBy |
createdOn |
createdOn |
firstDateWorked |
firstDateWorked |
lastDateWorked |
lastDateWorked |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 111: PerPersonals mapping
createdBy |
createdBy |
createdOn |
createdOn |
emails[].displayName |
personNav/emailNav/result[].emailAddress |
emails[].emailType |
personNav/emailNav/result[].emailType |
emails[].primary |
personNav/emailNav/result[].isPrimary |
emails[].value |
personNav/emailNav/result[].personIdExternal,personNav/emailNav/result[].emailType |
firstName |
firstName |
gender |
gender |
Id |
personIdExternal |
lastModifiedBy |
lastModifiedBy |
lastName |
lastName |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
preferredName |
preferredName |
startDate |
startDate |
Table 112: PerPhones mapping
areaCode |
areaCode |
countryCode |
countryCode |
createdBy |
createdBy |
createdOn |
createdOn |
Id |
personIdExternal,phoneType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
phoneNumber |
phoneNumber |
phoneType |
phoneType |
NOTE: The PerPhones table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and phoneType. |
Table 113: EventReasons mapping
Id |
externalCode |
externalCode |
externalCode |
name |
name |
status |
status |
event_ |
event_ |
emplStatus |
emplStatus |
description |
description |
startDate |
startDate |
createdOn |
createdOn |
createdBy |
createdBy |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 114: PicklistOptions mapping
externalCode |
externalCode |
Id |
id |
status |
status |
Table 115: PicklistLabels mapping
Id |
optionId |
id_ |
id |
label |
label |
locale |
locale |
optionId |
optionId |
Table 116: PerEmails mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
emailAddress |
emailAddress |
emailType |
emailType |
Id |
personIdExternal,emailType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
NOTE: The PerEmails table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and emailType.
Table 117: EmpJobRelationship mapping
Id |
base 64 encoded (userId+startDate+relationshipType) |
originalId |
userId+startDate+relationshipType |
relationshipType |
relationshipType |
userId |
userId |
relUserId |
relUserId |
startDate |
startDate |
endDate |
endDate |
createdBy |
createdBy |
lastModifiedBy |
lastModifiedBy |
meta.LastModified |
lastModifiedOn |
meta.CreatedOn |
createdOn |
Connector limitations
-
DELETE operation is supported only by the PerEmails endpoint.
-
Except for PerEmails and PerPhones, CREATE operation is also not supported by any other endpoints.
-
UPDATE operation is supported by two endpoints on selected attributes as listed below:
-
Employees - username, cellPhone, businessPhone, and email
-
PerEmails - emailAddress, emailType.
-
PerPhones - phoneNumber, phoneType, areaCode, countryCode, and isPrimary.
-
If there are multiple records with same 'startDate' coming in at a later point, then it would not be handled since 'startDate' doesn't have a time stamp.
-
'startDate' is in servertime. Hence, it can't be converted into UTC as the timezone information of the SAP server is unavailable.
-
PerPhones and PerEmails endpoints do not support filters on "id" attribute of SCIM response.
Connector versions and features
The following subsections describe the different connector version(s) and features available with them.
Features available exclusively in SuccessFactors HR v.2.0
Following are the features that are available exclusively in SuccessFactors HR v.2.0:
Features available exclusively in SuccessFactors HR v.3.0
Following are the features that are available exclusively in SuccessFactors HR v.3.0:
-
The attributes of all object schemas can be disabled or enabled while configuring the connector based on your requirements.
NOTE:
- Mandatory attributes cannot be disabled.
- For more information about how to disable attributes, see Disabling attributes
-
You can configure custom attributes for the SuccessFactors HR v.3.0 SCIM connector in Starling Connect for all objects.
-
The connector supports new PerEmails endpoint that allows you to browse and synchronize the data. It also allows you to update and create email records in the PerEmail table.
-
Fetching of future-dated employees/updates can be prevented by enabling the Fetch effective dated records only flag.
Features available exclusively in SuccessFactors HR v4.0
Following are the features that are available exclusively in SuccessFactors HR v.4.0:
-
The naming convention for all the custom attributes has been enhanced that belongs to a navigational object class.
-
Support for UTC date time.
-
Support for multi-level navigational custom attributes.
Features available exclusively in SuccessFactors HR v5.0
-
The Employees endpoint is enhanced to consider lastModified date of both EmpJob and User table.
-
Added a flag 'Separate Effective And FutureDated Employees Endpoints' which when enabled, makes the Employees endpoint to return effective dated employees only and provides a new endpoint 'FutureDatedEmployees' to return future dated records only.
-
Added a flag 'Activate Custom Attributes With Full Name' which when enabled, the naming convention for all the custom attributes will not be prefixed with the navigational attribute names.
-
Support for multi-level navigational custom attributes with the flag "Activate Custom Attributes with full name" ON.
Features available exclusively in SuccessFactors HR v6.0
-
All the features are available which is supported in v.5.0.
-
v.6.0 has no feature change only addition is that it supports OAuth Authentication.
-
For detailed explanation on setting up the OAuth authentication, refer SetUp OAuth.
Features available exclusively in SuccessFactors HR v7.0
Features available exclusively in SuccessFactors HR v8.0
Features available exclusively in SuccessFactors HR v9.0
-
READ operations on Custom Foundation Objects are supported. (Refer Custom Foundation Objects in Successfactors HR connector)
-
Update operation on Custom attribute supported. (Refer Creating custom editable/upsertable attributes in Successfactors employee central)
NOTE:Supported under Employees, EmpEmployments and PerPersonals.
-
PickListLables "id" attribute value changes to "optionId,locale".
-
Support for loginMethod attributes with the flag "loginMethod" ON.
-
Two additional attributes employmentStartDate and employmentEndDate are supported in Employees and FutureDatedEmployees. Even though these attributes can have null value in the target, the Starling Connector currently converts null to 0001-01-01T00:00:00.
Features available exclusively in SuccessFactors HR v10.0
-
Positions Endpoint return FutureDated positions using query parameter(?futureDated=true).
-
PerPersonal Endpoint return FutureDated PerPersonal using query parameter(?futureDated=true).
-
Supports new endpoints FutureDatedPerPersonals and FutureDatedPositions to handle the PerPersonal and Position records respectively which are having future effective dates.
-
Supports new endpoint EmpJobRelationships.
Features available exclusively in SuccessFactors HR v10.1
-
Added a flag ”Use base 64 encoded id in synchronization” which when enabled, makes all the endpoints to return one new attribute “targetId”.
-
The "id" in the SCIM response will be base 64 encoded.
Features available exclusively in SuccessFactors HR v10.2
-
In v10.2 onwards, the id of all resources (except custom objects) containin single quote (') in the id will be bypassed using another the single quote for correct usage in the SuccessFactors API requests. For example, id "test'd" will be changed as "test''d".
Features available exclusively in SuccessFactors HR v10.3
Support for Filter Condition
SuccessFactorsHR connector supports the filter condition for all the objects (i.e., endpoints). We could apply the filter condition and take the filtered records from SuccessFactorsHR target system.
-
The connector supports filter conditions for all the objects.
-
The connector supports filter condition in all the Versions.
-
Supports only AND, OR, and NOT logical operators.
-
Supports only parenthesis () for grouping the condition.
-
The connector supports only single quotes (‘) with filter condition value (ex: phoneType co '10101')
-
Filter conditions should be applied on those attributes that can be filtered. For more information, refer List of Attributes for Filter Condition.
-
Complex attributes are not supported in the filter condition (example: name, email). Only sub-attributes are supported. (email.value, name.familyName)
-
Filter condition should follow the syntax
For example:
1. <attribute_name><space><operator><space>'<string_value or date_value>'
2.<attribute_name><space><operators><space><int_value or bool_value>
-
Filter condition values should NOT have single quotes or percentage with the filter condition value example: (userName co 'O'Malley') or (userName co 'O%Malley%')
-
Filter condition is NOT supported by the connector for Custom attributes.
-
Supports the following operators to filter the values with example should apply in OneIM.
S.No |
Operators |
OneIM System filters |
OneIM Select Objects |
1 |
eq → equal to |
phoneType eq '00000' |
phoneType = '00000' |
2 |
ne → not equal to |
phoneType ne '00000' |
phoneType <> '00000' |
3 |
co → contains |
phoneType co '00000' |
phoneType like '%00000%' |
4 |
sw → starts with |
phoneType sw '00000' |
phoneType like '00000%' |
5 |
ew → ends with |
phoneType ew '00000' |
phoneType like '%00000' |
6 |
gt → greater than |
phoneType gt 100 |
phoneType > 100 |
7 |
lt → less than |
phoneType lt 100 |
phoneType < 100 |
8 |
ge → greater than or equal to |
phoneType ge 500 |
phoneType >= 500 |
9 |
le → less than or equal to |
phoneType le 500 |
phoneType <= 500 |
Some of the example filter conditions (Should be applied at OneIM):
List of Attributes for Filter Condition
The endpoints exposed by the SuccessFactorsHR connector supports filtering of target system data from One Identity Manager. Here is the detailed list of endpoints with both Filterable and non-filterable attributes, used in filter conditions.
Table 118: Employees
Table |
EmpJob |
Filterable |
userId, timezone, department, businessUnit, division, location, costCenter, company, startDate, seqNumber, workingTimeDirective, emplStatus, event, eventReason, endDate, timeTypeProfileCode, timeRecordingVariant, employmentType, workscheduleCode, regularTemp, payScaleGroup, probationPeriodEndDate, payScaleType, managerId, jobCode, createdBy, position, retired, employeeClass, familyRelationshipWithEmployer, isCompetitionClauseActive, standardHours, jobTitle, countryOfCompany, hazard, travelDistance, isSideLineJobAllowed, payScaleArea, holidayCalendarCode, contractType, payGrade, workLocation, workingDaysPerWeek, empRelationship, isFulltimeEmployee, laborProtection, pensionProtection, payScaleLevel, workerCategory |
Non filterable |
NONE |
Table 119: BusinessUnits
Table |
FOBusinessUnit |
Filterable |
externalCode, name, description, createdBy, status, createdOn, lastModifiedBy, startDate, endDate, headOfUnit, description_de_DE, name_de_DE, lastModifiedOn |
Non filterable |
NONE |
Table 120: Companies
Table |
FOCompany |
Filterable |
externalCode, name, description, currency, createdBy, status, startDate, endDate, defaultLocation, country, standardHours, defaultPayGroup, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 121: Department
Table |
FODepartment |
Filterable |
externalCode, name, description, createdBy, costCenter, headOfUnit, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 122: Locations
Table |
FOLocation |
Filterable |
externalCode, name, createdBy, createdOn, createdDateTime, lastModifiedBy, lastModifiedOn, lastModifiedDateTime, startDate, endDate, status |
Non filterable |
description, timezone, geozoneFlx, locationGroup, locationGroupFlx, standardHours |
Table 123: CostCenters
Table |
FOCostCenter |
Filterable |
externalCode, name, description, createdBy, costcenterManager, startDate, endDate, createdOn, lastModifiedBy, parent, status, lastModifiedOn |
Non filterable |
NONE |
Table 124: Divisions
Table |
FODivision |
Filterable |
externalCode, name, description, createdBy, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, createdDateTime, headOfUnit, lastModifiedOn |
Non filterable |
NONE |
Table 125: EmpEmployments
Table |
EmpEmployment |
Filterable |
personIdExternal, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
firstDateWorked, lastDateWorked |
Table 126: EventReasons
Table |
FOEventReason |
Filterable |
externalCode, name, status, startDate, lastModifiedBy, createdBy, createdOn, lastModifiedOn |
Non filterable |
event emplStatus, description |
Table 127: JobCodes
Table |
JobCode |
Filterable |
externalCode, name, status, description, startDate, endDate, lastModifiedBy, createdBy, createdOn, parentJobCode, supervisorLevel, defaultSupervisorLevel, standardHours, workerCompCode, grade, isFulltimeEmployee, jobFunction, regularTemporary, employeeClass, defaultJobLevel, isRegular, jobLevel, defaultEmployeeClass, lastModifiedOn |
Non filterable |
NONE |
Table 128: PerEmails
Table |
PerEmail |
Filterable |
personIdExternal, emailAddress, emailType, lastModifiedDateTime, createdBy, isPrimary, lastModifiedBy, createdDateTime, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 129: PerPersonals
Table |
PerPersonal |
Filterable |
personIdExternal, firstName, lastName, gender, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
preferredName |
Table 130: PerPhones
Table |
PerPhone |
Filterable |
personIdExternal, phoneNumber, phoneType, createdBy, createdOn, areaCode, countryCode, isPrimary, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 131: PicklistLabels
Table |
PicklistLabel |
Filterable |
id, locale, label, optionId |
Non filterable |
NONE |
Table 132: PicklistOptions
Table |
PicklistOption |
Filterable |
id, status, externalCode |
Non filterable |
NONE |
Table 133: Positions
Table |
Position |
Filterable |
code, description, effectiveStartDate, effectiveEndDate, effectiveStatus, standardHours, department, businessUnit, division, location, costCenter, jobTitle, employeeClass, jobCode, company, payGrade, jobLevel, positionTitle, vacant, regularTemporary, createdBy, createdDate, lastModifiedBy, lastModifiedDate, lastModifiedDateTime, externalName_defaultValue |
Non filterable |
payRange |
Table 134: EmpGlobalAssignments
Table |
EmpGlobalAssignments |
Filterable |
Id, userId, assignmentType, createdBy, createdDateTime, type, startDate, endDate, payrollEndDate, lastModifiedBy, lastModifiedDateTime, assignmentIdExternal, personIdExternal, lastModifiedOn |
Non filterable |
AssignmentClass |
Table 135: EmpJobRelationships
Table |
EmpJobRelationships |
Filterable |
userId, relationshipType ,createdBy, createdDateTime, startDate, endDate, lastModifiedBy, lastModifiedDateTime, relUserId ,lastModifiedOn |
Non filterable |
None |
Configuring changes in One Identity Manager to support filter conditions
-
Open the Synchronization Editor tool.
-
Select SCIM connector and the Target system
-
Navigate to Schema Classes.
-
Add a new schema class for the perphone.
-
Add the System filter and Select Object condition. Click Commit to Database.
-
In PerPhones mappings, edit the Target system schema class with the recently created schema and click Commit to Database.
-
Run the synchronization.
The Filter conditions will be created.
Conditions on "Fetch Effective Dated Records Only" & "Separate Effective And Future Dated Employees Endpoints" flags based on different use cases (for version v.5.0 and above)
Mandatory Fields
SuccessFactors HR is an integrated human-resources platform. It offers users tools for onboarding, social business, and collaboration along with tools for learning management, performance management, recruiting, applicant tracking, succession planning, talent management, and HR analytics. It is also cloud-based.
Supervisor configuration parameters
To configure the connector, following parameters are required:
- Connector Name
- Username (Format: <userId (not the value for username) of the SuccessFactors service account>@<company_id>)
- Password (needed till v.5.0)
-
SuccessFactors HR instance URL (https://apps.support.sap.com/sap/support/knowledge/public/en/2215682).
-
Private key (v.6.0 onwards)
-
Client Id (v.6.0 onwards)
-
Custom Object Types (v9.0 onwards)
-
Instance DateTime Offset (refer Configuring additional datetime offset in connectors for more details)
-
Minimal Attributes (in v1.0 and v2.0)
NOTE: The default value is false. When the value is set to true, only the minimal set of attributes for all the objects will be queried from the SuccessFactors HR system.
-
Fetch Effective Dated Records Only (v3.0 onwards)
NOTE: The default value is false. When the value is set to true, only the effective dated employees will be queried from the SuccessFactorsHR system.
-
Activate Custom Attributes With Full Name (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, then custom attributes would be prefixed with the full name of the navigational attributes.
-
Separate Effective And FutureDated Employees Endpoints (v5.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would be separated into two endpoints - the effective dated and future dated.
-
Retry Server Call
-
loginMethod (v9.0 onwards)
NOTE: The default value is false. When the value is set to true, the employees would have loginMethod attribute in the response.
Table 78: Minimal set of attributes for the objects
BusinessUnit |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Company |
externalCode, name, description, status, createdOn, lastModifiedOn |
CostCenter |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
Division |
externalCode, name, description, status, startDate, createdOn, lastModifiedOn |
Department |
name, description, externalCode, status, startDate, createdOn, lastModifiedOn |
EmpEmployment |
userID, startDate, createdOn, lastModifiedOn |
Employee |
EmpJob attributes: userId, businessUnit, company, costCenter, createdOn, division, event, eventReason, jobTitle, location, managerId, emplStatus, startDate, jobCode, position
User attributes: dateOfBirth, userId, username, defaultFullName, hireDate, lastModified, status, department, location, firstName, lastName, mi, suffix, email, addressLine1, state, city, zipCode, country, businessPhone, cellPhone |
EventReason |
externalCode, name, status, event, createdOn, lastModifiedOn |
JobCode |
externalCode, name, description, status, createdOn, lastModifiedOn |
Location |
externalCode, name, description, status, geozoneFlx, createdOn, lastModifiedOn |
PerPersonal |
personIdExternal, firstName, lastName, preferredName, createdOn, lastModifiedOn |
PerPhone |
personIdExternal, phoneNumber, phoneType, createdOn, lastModifiedOn |
PicklistLabel |
id,externalCode, status |
PicklistOption |
id,externalCode, status |
Position |
code, description, jobTitle, effectiveStatus, jobCode, businessUnit, company, department, externalName_defaultValue, createdDate, lastModifiedDate |
NOTE: For consuming Starling Connect HR connectors (for example, SuccessFactors HR) into the One Identity Manager Synchronization Client, the One Identity Manager CHS module has to be installed and configured. You can download the appropriate CHS module from the One Identity Manager Support site.
Supported objects and operations
Employees
Table 79: Supported operations for Employees
Get Employee |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
Companies
Table 80: Supported operations for Companies
Get Company |
GET |
Get All Company With Pagination |
GET |
BusinessUnits
Table 81: Supported operations for BusinessUnits
Get BusinessUnit |
GET |
Get All Business Units with Pagination |
GET |
Departments
Table 82: Supported operations for Departments
Get Department |
GET |
Get All Departments with Pagination |
GET |
Locations
Table 83: Supported operations for Locations
Get Location |
GET |
Get All Locations with Pagination |
GET |
Divisions
Table 84: Supported operations for Divisions
Get Division |
GET |
Get All Division With Pagination |
GET |
CostCenters
Table 85: Supported operations for CostCenters
Get CostCenter |
GET |
Get All CostCenter with Pagination |
GET |
JobCodes
Table 86: Supported operations for JobCodes
Get JobCode |
GET |
Get All JobCodeWith Pagination |
GET |
Positions
Table 87: Supported operations for Positions
Get Position |
GET |
Get All Position With Pagination |
GET |
EmpEmployments
Table 88: Supported operations for EmpEmployments
Get EmpEmployment |
GET |
Get All EmpEmployment With Pagination |
GET |
PerPersonals
Table 89: Supported operations for PerPersonals
Get PerPersonal |
GET |
Get All PerPersonal With Pagination |
GET |
PerPhones
Table 90: Supported operations for PerPhones
Get PerPhone |
GET |
Get All PerPhone With Pagination |
GET |
Create PerPhone |
POST |
Update PerPhone |
PUT |
EventReasons
Table 91: Supported operations for EventReasons
Get EventReason |
GET |
Get All EventReason With Pagination |
GET |
PicklistLabels
Table 92: Supported operations for PicklistLabels
Get PicklistLabel |
GET |
Get All PicklistLabel With Pagination |
GET |
PerEmails
Table 93: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
PerEmails
Table 94: Supported operations for PerEmails
Get PerEmail |
GET |
Get All PerEmails With Pagination |
GET |
Update PerEmail |
PUT |
Create PerEmail |
POST |
Delete PerEmail |
DELETE |
FutureDatedEmployees (in v5.0 and above)
Table 95: Supported operations for FutureDatedEmployees
Get Employees |
GET |
Get All Employees with Pagination |
GET |
Update Employees |
PUT |
EmpJobRelationship (in v10.0 and above)
Table 96: Supported operations for EmpJobRelationship
Get EmpJobRelationship |
GET |
Get EmpJobRelationship With Pagination |
GET |
This section lists the mandatory fields required to CREATE/UPDATE, Employees, PerEmails, PerPhones, and FutureDatedEmployees:
Employee
PerEmail
-
personIdExternal
-
emailType
PerPhone
-
personIdExternal
-
phoneType
-
phoneNumber
FutureDatedEmployees
NOTE: Employees and FutureDatedEmployees endpoints support UPDATE operation only.
Mappings
Endpoints mapping
Table 97: Target system objects mapping
Employees |
EmpJob |
BusinessUnits |
FOBusinessUnit |
Departments |
FODepartment |
CostCenters |
FOCostCenter |
Locations |
FOLocation |
Divisions |
Divisions |
Companies |
FOCompany |
JobCodes |
FOJobCode |
Positions |
Position |
EmpEmployments |
EmpEmployment |
PerPersonals |
PerPersonal |
PerPhones |
PerPhone |
PicklistLabels |
PicklistLabel |
PicklistOptions |
PicklistOption |
PerEmails |
PerEmail |
EventReasons |
EventReason |
Attributes mapping
Different mappings associated with this connector are listed in the tables below.
Table 98: Employee mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
FutureDatedEmployees |
EmpJob |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
loginMethod |
userNav/loginMethod |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 99: FutureDatedEmployees mapping
Addresses.Country |
userNav/country |
Addresses.Locality |
userNav/state |
Addresses.PostalCode |
userNav/zipCode |
Addresses.Region |
userNav/city |
Addresses.StreetAddress |
userNav/addressLine1 |
businessUnit |
businessUnit |
company |
company |
contractType |
contractType |
costCenter |
costCenter |
countryOfCompany |
countryOfCompany |
createdBy |
createdBy |
dateOfBirth |
userNav/dateOfBirth |
department |
department |
DisplayName |
userNav/defaultFullName |
division |
division |
Emails[0].Value |
userNav/email |
employeeClass |
employeeClass |
employmentType |
employmentType |
emplStatus |
emplStatus |
empRelationship |
empRelationship |
endDate |
endDate |
event_ |
event_ |
eventReason |
eventReason |
familyRelationshipWithEmployer |
familyRelationshipWithEmployer |
hazard |
hazard |
holidayCalendarCode |
holidayCalendarCode |
Id |
id |
isCompetitionClauseActive |
isCompetitionClauseActive |
isFulltimeEmployee |
isFulltimeEmployee |
isSideLineJobAllowed |
isSideLineJobAllowed |
jobCode |
jobCode |
jobTitle |
jobTitle |
laborProtection |
laborProtection |
location |
location |
managerId |
managerId |
matrixManagers[].displayName |
userNav/matrixManager[].defaultFullName |
matrixManagers[].value |
userNav/matrixManager[].userId |
Meta.Created |
createdOn |
Meta.LastModified |
userNav/lastModified |
Name.Familyname |
userNav/lastName |
Name.Formatted |
userNav/defaultFullName |
Name.GivenName |
userNav/firstName |
Name.HonorificSuffix |
userNav/suffix |
Name.MiddleName |
userNav/mi |
NickName |
userNav/nickname |
payGrade |
payGrade |
payScaleArea |
payScaleArea |
payScaleGroup |
payScaleGroup |
payScaleLevel |
payScaleLevel |
payScaleType |
payScaleType |
PersonIdExternal |
employmentNav/personIdExternal |
PhoneNumbers.businessPhone |
userNav/businessPhone |
PhoneNumbers.cellPhone |
userNav/cellPhone |
position |
position |
probationPeriodEndDate |
probationPeriodEndDate |
regularTemp |
regularTemp |
retired |
retired |
seqNumber |
seqNumber |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timeRecordingVariant |
timeRecordingVariant |
timeTypeProfileCode |
timeTypeProfileCode |
timezone |
timezone |
travelDistance |
travelDistance |
userId |
userId |
UserName |
userNav /username |
workerCategory |
workerCategory |
workingDaysPerWeek |
workingDaysPerWeek |
workingTimeDirective |
workingTimeDirective |
workLocation |
workLocation |
workscheduleCode |
workscheduleCode |
isPrimaryAssignment |
userNav/isPrimaryAssignment |
isContingentWorker |
employmentNav/isContingentWorker |
Additional mapping of Employees from version 9 onwards |
employmentStartDate |
employmentNav/startDate |
employmentEndDate |
employmentNav/endDate |
Table 100: Departments mapping
costCenter |
costCenter |
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 101: Locations mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
geozoneFlx |
geozoneFlx |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
locationGroup |
locationGroup |
locationGroupFlx |
locationGroupFlx |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
standardHours |
standardHours |
startDate |
startDate |
status |
status |
timezone |
timezone |
Table 102: BusinessUnits mapping
createdBy |
createdBy |
createdOn |
createdOn |
description |
description |
description_de_DE |
description_de_DE |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
name_de_DE |
name_de_DE |
startDate |
startDate |
status |
status |
Table 103: Custom object type mapping
Id |
Base 64 encoded Composite Key or Simple Key of the object |
Meta.Created |
createdDateTime |
meta.lastModified |
lastModifiedDateTime |
All other non-navigational attribute will have same names at both sides |
Table 104: Mapping for V10.1
Id |
Base64encoded(id) |
targetId |
id |
NOTE: Applicable for all object types.
Table 105: Divisions mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
description |
description |
endDate |
endDate |
externalCode |
externalCode |
headOfUnit |
headOfUnit |
Id |
externalCode |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
name |
name |
parent |
parent |
startDate |
startDate |
status |
status |
Table 106: CostCenters mapping
Id |
externalCode |
name |
name |
description |
description |
createdBy |
createdBy |
externalCode |
externalCode |
costcenterManager |
costcenterManager |
status |
status |
startDate |
startDate |
endDate |
endDate |
parent |
parent |
lastModifiedOn |
lastModifiedOn |
createdOn |
createdOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 107: Companies mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
defaultLocation |
defaultLocation |
country |
country |
standardHours |
standardHours |
defaultPayGroup |
defaultPayGroup |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 108: JobCodes mapping
Id |
externalCode |
name |
name |
description |
description |
externalCode |
externalCode |
status |
status |
startDate |
startDate |
endDate |
endDate |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
createdBy |
createdBy |
createdOn |
createdOn |
parentJobCode |
parentJobCode |
supervisorLevel |
supervisorLevel |
defaultSupervisorLevel |
defaultSupervisorLevel |
standardHours |
standardHours |
workerCompCode |
workerCompCode |
grade |
grade |
isFulltimeEmployee |
isFulltimeEmployee |
jobFunction |
jobFunction |
regularTemporary |
regularTemporary |
employeeClass |
employeeClass |
defaultJobLevel |
defaultJobLevel |
isRegular |
isRegular |
jobLevel |
jobLevel |
defaultEmployeeClass |
defaultEmployeeClass |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 109: Positions mapping
Id |
code |
code |
code |
description |
description |
effectiveStartDate |
effectiveStartDate |
effectiveEndDate |
effectiveEndDate |
effectiveStatus |
effectiveStatus |
standardHours |
standardHours |
department |
department |
businessUnit |
businessUnit |
division |
division |
location |
location |
costCenter |
costCenter |
createdBy |
createdBy |
jobTitle |
jobTitle |
employeeClass |
employeeClass |
jobCode |
jobCode |
company |
company |
payGrade |
payGrade |
comment |
comment |
createdDate |
createdDate |
jobLevel |
jobLevel |
lastModifiedBy |
lastModifiedBy |
lastModifiedDate |
lastModifiedDate |
positionTitle |
positionTitle |
vacant |
vacant |
regularTemporary |
regularTemporary |
payRange |
payRange |
Meta.LastModified |
lastModifiedDate |
Meta.Created |
createdDate |
lastModifiedDateTime |
lastModifiedDateTime |
NOTE: Disable the lastModifiedDate or lastModifiedDateTime attribute based on the availability in the instance. Disabling both at the same time may introduce performance issues.
Table 110: EmpEmployments mapping
Id |
userId |
userId |
userId |
personIdExternal |
personIdExternal |
startDate |
startDate |
createdBy |
createdBy |
createdOn |
createdOn |
firstDateWorked |
firstDateWorked |
lastDateWorked |
lastDateWorked |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 111: PerPersonals mapping
createdBy |
createdBy |
createdOn |
createdOn |
emails[].displayName |
personNav/emailNav/result[].emailAddress |
emails[].emailType |
personNav/emailNav/result[].emailType |
emails[].primary |
personNav/emailNav/result[].isPrimary |
emails[].value |
personNav/emailNav/result[].personIdExternal,personNav/emailNav/result[].emailType |
firstName |
firstName |
gender |
gender |
Id |
personIdExternal |
lastModifiedBy |
lastModifiedBy |
lastName |
lastName |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
preferredName |
preferredName |
startDate |
startDate |
Table 112: PerPhones mapping
areaCode |
areaCode |
countryCode |
countryCode |
createdBy |
createdBy |
createdOn |
createdOn |
Id |
personIdExternal,phoneType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedOn |
lastModifiedOn |
Meta.Created |
createdOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
phoneNumber |
phoneNumber |
phoneType |
phoneType |
NOTE: The PerPhones table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and phoneType. |
Table 113: EventReasons mapping
Id |
externalCode |
externalCode |
externalCode |
name |
name |
status |
status |
event_ |
event_ |
emplStatus |
emplStatus |
description |
description |
startDate |
startDate |
createdOn |
createdOn |
createdBy |
createdBy |
lastModifiedOn |
lastModifiedOn |
lastModifiedBy |
lastModifiedBy |
Meta.LastModified |
lastModifiedOn |
Meta.Created |
createdOn |
Table 114: PicklistOptions mapping
externalCode |
externalCode |
Id |
id |
status |
status |
Table 115: PicklistLabels mapping
Id |
optionId |
id_ |
id |
label |
label |
locale |
locale |
optionId |
optionId |
Table 116: PerEmails mapping
createdBy |
createdBy |
createdDateTime |
createdDateTime |
createdOn |
createdOn |
emailAddress |
emailAddress |
emailType |
emailType |
Id |
personIdExternal,emailType |
isPrimary |
isPrimary |
lastModifiedBy |
lastModifiedBy |
lastModifiedDateTime |
lastModifiedDateTime |
lastModifiedOn |
lastModifiedOn |
Meta.LastModified |
lastModifiedOn |
personIdExternal |
personIdExternal |
NOTE: The PerEmails table of SuccessFactors HR Instance supports composite key-based lookup. The composite key consists of personIdExternal and emailType.
Table 117: EmpJobRelationship mapping
Id |
base 64 encoded (userId+startDate+relationshipType) |
originalId |
userId+startDate+relationshipType |
relationshipType |
relationshipType |
userId |
userId |
relUserId |
relUserId |
startDate |
startDate |
endDate |
endDate |
createdBy |
createdBy |
lastModifiedBy |
lastModifiedBy |
meta.LastModified |
lastModifiedOn |
meta.CreatedOn |
createdOn |
Connector limitations
-
DELETE operation is supported only by the PerEmails endpoint.
-
Except for PerEmails and PerPhones, CREATE operation is also not supported by any other endpoints.
-
UPDATE operation is supported by two endpoints on selected attributes as listed below:
-
Employees - username, cellPhone, businessPhone, and email
-
PerEmails - emailAddress, emailType.
-
PerPhones - phoneNumber, phoneType, areaCode, countryCode, and isPrimary.
-
If there are multiple records with same 'startDate' coming in at a later point, then it would not be handled since 'startDate' doesn't have a time stamp.
-
'startDate' is in servertime. Hence, it can't be converted into UTC as the timezone information of the SAP server is unavailable.
-
PerPhones and PerEmails endpoints do not support filters on "id" attribute of SCIM response.
Connector versions and features
The following subsections describe the different connector version(s) and features available with them.
Features available exclusively in SuccessFactors HR v.2.0
Following are the features that are available exclusively in SuccessFactors HR v.2.0:
Features available exclusively in SuccessFactors HR v.3.0
Following are the features that are available exclusively in SuccessFactors HR v.3.0:
-
The attributes of all object schemas can be disabled or enabled while configuring the connector based on your requirements.
NOTE:
- Mandatory attributes cannot be disabled.
- For more information about how to disable attributes, see Disabling attributes
-
You can configure custom attributes for the SuccessFactors HR v.3.0 SCIM connector in Starling Connect for all objects.
-
The connector supports new PerEmails endpoint that allows you to browse and synchronize the data. It also allows you to update and create email records in the PerEmail table.
-
Fetching of future-dated employees/updates can be prevented by enabling the Fetch effective dated records only flag.
Features available exclusively in SuccessFactors HR v4.0
Following are the features that are available exclusively in SuccessFactors HR v.4.0:
-
The naming convention for all the custom attributes has been enhanced that belongs to a navigational object class.
-
Support for UTC date time.
-
Support for multi-level navigational custom attributes.
Features available exclusively in SuccessFactors HR v5.0
-
The Employees endpoint is enhanced to consider lastModified date of both EmpJob and User table.
-
Added a flag 'Separate Effective And FutureDated Employees Endpoints' which when enabled, makes the Employees endpoint to return effective dated employees only and provides a new endpoint 'FutureDatedEmployees' to return future dated records only.
-
Added a flag 'Activate Custom Attributes With Full Name' which when enabled, the naming convention for all the custom attributes will not be prefixed with the navigational attribute names.
-
Support for multi-level navigational custom attributes with the flag "Activate Custom Attributes with full name" ON.
Features available exclusively in SuccessFactors HR v6.0
-
All the features are available which is supported in v.5.0.
-
v.6.0 has no feature change only addition is that it supports OAuth Authentication.
-
For detailed explanation on setting up the OAuth authentication, refer SetUp OAuth.
Features available exclusively in SuccessFactors HR v7.0
Features available exclusively in SuccessFactors HR v8.0
Features available exclusively in SuccessFactors HR v9.0
-
READ operations on Custom Foundation Objects are supported. (Refer Custom Foundation Objects in Successfactors HR connector)
-
Update operation on Custom attribute supported. (Refer Creating custom editable/upsertable attributes in Successfactors employee central)
NOTE:Supported under Employees, EmpEmployments and PerPersonals.
-
PickListLables "id" attribute value changes to "optionId,locale".
-
Support for loginMethod attributes with the flag "loginMethod" ON.
-
Two additional attributes employmentStartDate and employmentEndDate are supported in Employees and FutureDatedEmployees. Even though these attributes can have null value in the target, the Starling Connector currently converts null to 0001-01-01T00:00:00.
Features available exclusively in SuccessFactors HR v10.0
-
Positions Endpoint return FutureDated positions using query parameter(?futureDated=true).
-
PerPersonal Endpoint return FutureDated PerPersonal using query parameter(?futureDated=true).
-
Supports new endpoints FutureDatedPerPersonals and FutureDatedPositions to handle the PerPersonal and Position records respectively which are having future effective dates.
-
Supports new endpoint EmpJobRelationships.
Features available exclusively in SuccessFactors HR v10.1
-
Added a flag ”Use base 64 encoded id in synchronization” which when enabled, makes all the endpoints to return one new attribute “targetId”.
-
The "id" in the SCIM response will be base 64 encoded.
Features available exclusively in SuccessFactors HR v10.2
-
In v10.2 onwards, the id of all resources (except custom objects) containin single quote (') in the id will be bypassed using another the single quote for correct usage in the SuccessFactors API requests. For example, id "test'd" will be changed as "test''d".
Features available exclusively in SuccessFactors HR v10.3
Support for Filter Condition
SuccessFactorsHR connector supports the filter condition for all the objects (i.e., endpoints). We could apply the filter condition and take the filtered records from SuccessFactorsHR target system.
-
The connector supports filter conditions for all the objects.
-
The connector supports filter condition in all the Versions.
-
Supports only AND, OR, and NOT logical operators.
-
Supports only parenthesis () for grouping the condition.
-
The connector supports only single quotes (‘) with filter condition value (ex: phoneType co '10101')
-
Filter conditions should be applied on those attributes that can be filtered. For more information, refer List of Attributes for Filter Condition.
-
Complex attributes are not supported in the filter condition (example: name, email). Only sub-attributes are supported. (email.value, name.familyName)
-
Filter condition should follow the syntax
For example:
1. <attribute_name><space><operator><space>'<string_value or date_value>'
2.<attribute_name><space><operators><space><int_value or bool_value>
-
Filter condition values should NOT have single quotes or percentage with the filter condition value example: (userName co 'O'Malley') or (userName co 'O%Malley%')
-
Filter condition is NOT supported by the connector for Custom attributes.
-
Supports the following operators to filter the values with example should apply in OneIM.
S.No |
Operators |
OneIM System filters |
OneIM Select Objects |
1 |
eq → equal to |
phoneType eq '00000' |
phoneType = '00000' |
2 |
ne → not equal to |
phoneType ne '00000' |
phoneType <> '00000' |
3 |
co → contains |
phoneType co '00000' |
phoneType like '%00000%' |
4 |
sw → starts with |
phoneType sw '00000' |
phoneType like '00000%' |
5 |
ew → ends with |
phoneType ew '00000' |
phoneType like '%00000' |
6 |
gt → greater than |
phoneType gt 100 |
phoneType > 100 |
7 |
lt → less than |
phoneType lt 100 |
phoneType < 100 |
8 |
ge → greater than or equal to |
phoneType ge 500 |
phoneType >= 500 |
9 |
le → less than or equal to |
phoneType le 500 |
phoneType <= 500 |
Some of the example filter conditions (Should be applied at OneIM):
List of Attributes for Filter Condition
The endpoints exposed by the SuccessFactorsHR connector supports filtering of target system data from One Identity Manager. Here is the detailed list of endpoints with both Filterable and non-filterable attributes, used in filter conditions.
Table 118: Employees
Table |
EmpJob |
Filterable |
userId, timezone, department, businessUnit, division, location, costCenter, company, startDate, seqNumber, workingTimeDirective, emplStatus, event, eventReason, endDate, timeTypeProfileCode, timeRecordingVariant, employmentType, workscheduleCode, regularTemp, payScaleGroup, probationPeriodEndDate, payScaleType, managerId, jobCode, createdBy, position, retired, employeeClass, familyRelationshipWithEmployer, isCompetitionClauseActive, standardHours, jobTitle, countryOfCompany, hazard, travelDistance, isSideLineJobAllowed, payScaleArea, holidayCalendarCode, contractType, payGrade, workLocation, workingDaysPerWeek, empRelationship, isFulltimeEmployee, laborProtection, pensionProtection, payScaleLevel, workerCategory |
Non filterable |
NONE |
Table 119: BusinessUnits
Table |
FOBusinessUnit |
Filterable |
externalCode, name, description, createdBy, status, createdOn, lastModifiedBy, startDate, endDate, headOfUnit, description_de_DE, name_de_DE, lastModifiedOn |
Non filterable |
NONE |
Table 120: Companies
Table |
FOCompany |
Filterable |
externalCode, name, description, currency, createdBy, status, startDate, endDate, defaultLocation, country, standardHours, defaultPayGroup, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 121: Department
Table |
FODepartment |
Filterable |
externalCode, name, description, createdBy, costCenter, headOfUnit, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 122: Locations
Table |
FOLocation |
Filterable |
externalCode, name, createdBy, createdOn, createdDateTime, lastModifiedBy, lastModifiedOn, lastModifiedDateTime, startDate, endDate, status |
Non filterable |
description, timezone, geozoneFlx, locationGroup, locationGroupFlx, standardHours |
Table 123: CostCenters
Table |
FOCostCenter |
Filterable |
externalCode, name, description, createdBy, costcenterManager, startDate, endDate, createdOn, lastModifiedBy, parent, status, lastModifiedOn |
Non filterable |
NONE |
Table 124: Divisions
Table |
FODivision |
Filterable |
externalCode, name, description, createdBy, status, startDate, endDate, lastModifiedDateTime, parent, createdOn, lastModifiedBy, createdDateTime, headOfUnit, lastModifiedOn |
Non filterable |
NONE |
Table 125: EmpEmployments
Table |
EmpEmployment |
Filterable |
personIdExternal, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
firstDateWorked, lastDateWorked |
Table 126: EventReasons
Table |
FOEventReason |
Filterable |
externalCode, name, status, startDate, lastModifiedBy, createdBy, createdOn, lastModifiedOn |
Non filterable |
event emplStatus, description |
Table 127: JobCodes
Table |
JobCode |
Filterable |
externalCode, name, status, description, startDate, endDate, lastModifiedBy, createdBy, createdOn, parentJobCode, supervisorLevel, defaultSupervisorLevel, standardHours, workerCompCode, grade, isFulltimeEmployee, jobFunction, regularTemporary, employeeClass, defaultJobLevel, isRegular, jobLevel, defaultEmployeeClass, lastModifiedOn |
Non filterable |
NONE |
Table 128: PerEmails
Table |
PerEmail |
Filterable |
personIdExternal, emailAddress, emailType, lastModifiedDateTime, createdBy, isPrimary, lastModifiedBy, createdDateTime, createdOn, lastModifiedOn |
Non filterable |
NONE |
Table 129: PerPersonals
Table |
PerPersonal |
Filterable |
personIdExternal, firstName, lastName, gender, startDate, createdBy, createdOn, lastModifiedBy, lastModifiedOn |
Non filterable |
preferredName |
Table 130: PerPhones
Table |
PerPhone |
Filterable |
personIdExternal, phoneNumber, phoneType, createdBy, createdOn, areaCode, countryCode, isPrimary, lastModifiedBy, lastModifiedOn |
Non filterable |
NONE |
Table 131: PicklistLabels
Table |
PicklistLabel |
Filterable |
id, locale, label, optionId |
Non filterable |
NONE |
Table 132: PicklistOptions
Table |
PicklistOption |
Filterable |
id, status, externalCode |
Non filterable |
NONE |
Table 133: Positions
Table |
Position |
Filterable |
code, description, effectiveStartDate, effectiveEndDate, effectiveStatus, standardHours, department, businessUnit, division, location, costCenter, jobTitle, employeeClass, jobCode, company, payGrade, jobLevel, positionTitle, vacant, regularTemporary, createdBy, createdDate, lastModifiedBy, lastModifiedDate, lastModifiedDateTime, externalName_defaultValue |
Non filterable |
payRange |
Table 134: EmpGlobalAssignments
Table |
EmpGlobalAssignments |
Filterable |
Id, userId, assignmentType, createdBy, createdDateTime, type, startDate, endDate, payrollEndDate, lastModifiedBy, lastModifiedDateTime, assignmentIdExternal, personIdExternal, lastModifiedOn |
Non filterable |
AssignmentClass |
Table 135: EmpJobRelationships
Table |
EmpJobRelationships |
Filterable |
userId, relationshipType ,createdBy, createdDateTime, startDate, endDate, lastModifiedBy, lastModifiedDateTime, relUserId ,lastModifiedOn |
Non filterable |
None |
Configuring changes in One Identity Manager to support filter conditions
-
Open the Synchronization Editor tool.
-
Select SCIM connector and the Target system
-
Navigate to Schema Classes.
-
Add a new schema class for the perphone.
-
Add the System filter and Select Object condition. Click Commit to Database.
-
In PerPhones mappings, edit the Target system schema class with the recently created schema and click Commit to Database.
-
Run the synchronization.
The Filter conditions will be created.
Conditions on "Fetch Effective Dated Records Only" & "Separate Effective And Future Dated Employees Endpoints" flags based on different use cases (for version v.5.0 and above)