SAP SuccessFactors connector
The SAP SuccessFactors connector enables you to manage and synchronize objects between SuccessFactors and the IDM managed user repository. These instructions assume you have a SuccessFactors administrator account, and you have created an OAuth2 Client Application.
Before you start
Before you configure the connector, gather the following details:
- Host
-
The SuccessFactors API hostname. For example,
apisalesdemo2.successfactors.eu
. - Client ID
-
The SuccessFactors API Key or client ID. To locate this value:
-
Log in to your SuccessFactors administrator account.
-
Click Manage OAuth2 Client Applications.
-
Select your registered OAuth2 Client Application.
-
Click View.
-
Copy the API key.
-
- User ID
-
The API User ID of the SuccessFactors user who authenticates to the REST server.
- Private Key
-
A private key. To configure this, generate a key pair from the X.509 certificate and copy the value of the private key.
- Company ID
-
The API Company ID of the admin user. This is specified in the SuccessFactors login URL.
- Person Segments (optional)
-
SuccessFactors person segments; for example,
EmpJob
,EmpEmployment
,PerPersonal
. You can add segments and their attributes that are not provided by the connector by default.-
If the person segment field is empty, the following default segments are added to the schema:
-
EmpEmployment
-
EmpJob
-
PerPerson
-
PerPersonal
-
-
If the person segment field contains
EmpJob_All
,PerPersonal_All
,PerPhone_All
, all attributes of the applicable segment(s)EmpJob
,PerPersonal
, andPerPhone
are added to the schema, respectively. -
If the person segment field contains
PerPhone_phoneNumber
,PerPhone_secondaryPhoneNumber
,PerEmail_emailAddress
,PerEmail_secondaryEmailAddress
, the applicable attributes of the segment(s)EmpJob
,PerPersonal
, andPerPhone
are added to the schema.
Add segment nav-specific attributes in EmpJob_locationNav
andPerEmail_emailTypeNav
. -
Install the SuccessFactors connector
If you are looking for the Advanced Identity Cloud application for this connector, refer to: |
You can download any connector from Backstage, but some are included in the default deployment for Advanced Identity Cloud, IDM, or RCS. When using an included connector, you can skip installing it and move directly to configuration.
Connector | IDM | RCS |
---|---|---|
No |
No |
Download the connector .jar file from Backstage.
-
If you are running the connector locally, place it in the
/path/to/openidm/connectors
directory, for example:mv ~/Downloads/successfactors-connector-1.5.20.26.jar /path/to/openidm/connectors/
-
If you are using a remote connector server (RCS), place it in the
/path/to/openicf/connectors
directory on the RCS.
Configure the SuccessFactors connector
Create a connector configuration using the IDM admin UI:
-
From the navigation bar, click Configure > Connectors.
-
On the Connectors page, click New Connector.
-
On the New Connector page, type a Connector Name.
-
From the Connector Type drop-down list, select SuccessFactors Connector - 1.5.20.26.
-
Complete the Base Connector Details.
For a list of all configuration properties, refer to SuccessFactors Connector Configuration -
Click Save.
When your connector is configured correctly, the connector displays as Active in the admin UI.
Refer to this procedure to create a connector configuration over REST.
Sample Configuration
"configurationProperties" : {
"host" : null,
"clientId" : null,
"userId" : null,
"privateKey" : null,
"companyId" : null,
"personSegments" : "EmpJob,PerPersonal,EmpEmployment",
"pageSize" : 0,
"maximumConnections" : 10,
"connectionTimeout" : 600,
"httpProxyHost" : null,
"httpProxyPort" : null,
"httpProxyUsername" : null,
"httpProxyPassword" : null
}
For more information, refer to: |
Configure connection pooling
The SuccessFactors connector uses the Apache HTTP client, which leverages the HTTP client connection pool, not the ICF connector pool.
Test the SuccessFactors connector
Test that the configuration is correct by running the following command:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ "http://localhost:8080/openidm/system/Successfactors?_action=test" { "name" : "Successfactors", "enabled" : true, "config" : "config/provisioner.openicf/Successfactors", "connectorRef" : { "bundleVersion" : "[1.5.0.0,1.6.0.0)", "bundleName" : "org.forgerock.openicf.connectors.successfactors-connector", "connectorName" : "org.forgerock.openicf.connectors.successfactors.SuccessFactorsConnector" }, "displayName" : "SuccessFactors Connector", "objectTypes" : [ "__GROUP__", "__PERSON__", "__ACCOUNT__", "__ALL__" ], "ok" : true }
If the command returns "ok": true
, your connector has been configured correctly and can authenticate to the SuccessFactors system.
SuccessFactors remote connector
If you want to run this connector outside of PingOne Advanced Identity Cloud or IDM, you can configure the SuccessFactors connector as a remote connector. Java Connectors installed remotely on a Java Connector Server function identically to those bundled locally within PingOne Advanced Identity Cloud or installed locally on IDM.
You can download the SuccessFactors connector from here.
Refer to Remote connectors for configuring the SuccessFactors remote connector.
Supported resource types
The SuccessFactors connector supports the following resource types:
ICF Native Type | SuccessFactors Resource Type | Naming Attribute |
---|---|---|
__ACCOUNT__ |
|
|
__GROUP__ |
|
|
__PERSON__ |
|
|
1 Permission is the only supported sub-attribute for dynamic group resources.
Supported search filters
The SuccessFactors connector supports search operations with the following filter operators and attributes:
Object Type | Operators | Attributes |
---|---|---|
__ACCOUNT__ |
Equals, And, Or, StartsWith, EndsWith, Less than, Less than or equal, Greater than, Greater than or equal, Contains |
|
__GROUP__ |
Equals, And, Or, StartsWith, EndsWith, Less than, Less than or equal, Greater than, Greater than or equal, Contains |
|
__PERSON__ |
Equals, And, Or, StartsWith, EndsWith, Less than, Less than or equal, Greater than, Greater than or equal, Contains |
Person Segments
|
Attributes
Account attributes
The SuccessFactors connector supports the following account attributes:
Attribute | Description |
---|---|
|
The user’s User ID. |
|
The user’s username. |
|
The user’s status. |
|
The user’s first name. |
|
The user’s last name. |
|
The user’s middle name. |
|
The user’s email address. |
|
The user’s birthdate. |
|
The default full name for the user. |
|
The user’s password. |
|
The last modified date and time without time zone information. |
|
The user’s country of residence. |
|
The user’s country of citizenship. |
|
The user’s marital status. |
|
The state where the user lives. |
|
The city where the user lives. |
|
The division the user works in. |
|
The department the user works in. |
|
The Job code of the user. |
|
The Job level of the user. |
|
The user’s time zone. |
|
The user’s location. |
|
The user’s manager. |
|
The date the user was hired. |
|
The last modified date and time with time zone information. |
|
The last modified date. |
|
The user’s group list. |
|
The user’s |
|
The user’s Custom 09 attribute. |
|
The user’s Custom 10 attribute. |
Group attributes
The SuccessFactors connector supports the following group attributes:
Attribute | Description |
---|---|
|
The unique ID of the group. |
|
The name of the group. |
|
The type of the group. |
|
The number of active members. |
|
The number of total members. |
|
Users excluded from the group. |
|
Users included in the group. |
|
The user who created the group. |
|
The last modified date. |
Person attributes
The SuccessFactors connector supports the following person segment attributes:
PerPerson attributes
The SuccessFactors connector supports the following PerPerson attributes:
Attribute | Description |
---|---|
|
The person’s external ID. |
|
The person’s internal ID. |
|
The person’s user ID. |
|
The person’s date of birth. |
|
The person’s last modified date. |
|
The person’s last modified date and time. |
|
The person’s date of creation. |
|
The person’s country of birth. |
|
The ID of the user who created the person. |
|
The person’s date and time of creation. |
|
The ID of the last user to modify the person. |
|
The person’s UUID. |
|
The person’s birth region. |
|
The person’s username. |
PerPersonal attributes
The SuccessFactors connector supports the following PerPersonal attributes:
Attribute | Description |
---|---|
|
The employee’s external ID. |
|
The employment end date. |
|
The employment start date. |
|
The employee’s first name. |
|
The employee’s last name. |
|
The employee’s gender. |
|
The employee’s preferred native language code. |
|
The employee’s salutation. |
|
The employee’s marital status. |
|
The employee’s nationality. |
|
The employee’s middle name. |
|
The employee’s preferred name. |
|
The time the PerPersonal was last updated. |
EmpEmployment attributes
The SuccessFactors connector supports the following EmpEmployment attributes:
Attribute | Description |
---|---|
|
An ID used to represent the employee externally. |
|
The employee’s user ID. |
|
An assignment ID used to identify users across the suite. |
|
The first date the employee worked. |
|
The end date of the employment. |
|
The start date of the employment. |
|
Whether or not the user is eligible for stock. |
|
The initial grant value of the employment. |
|
The service date of employment. |
|
The professional service date of employment. |
|
The original start date of the employment. |
|
The initial stock grant of the employment. |
|
The date of seniority. |
|
The time the EmpEmployment object was last updated. |
|
The date of the last day the employee worked. |
EmpJob attributes
The SuccessFactors connector supports the following EmpJob attributes:
Attribute | Description |
---|---|
|
The sequence number associated with the job. |
|
The employee’s user ID. |
|
The reason for action. |
|
The company the job is for. |
|
The ID of the job manager. |
|
The time zone the job is in. |
|
The date the job begins. |
|
The date the job ends. |
|
The job’s pay grade. |
|
The job’s code. |
|
The job’s title. |
|
The position of the job. |
|
The job’s location. |
|
The payscale type for the job. |
|
The payscale area for the job. |
|
The business unit the job belongs to. |
|
The date the job was last modified. |
PerPhone attributes
To add all PerPhone attributes to the schema, you must define PerPhone_ALL
in the person segment during configuration or define the specific attribute(s) with the segment name, such as PerPhone_phoneNumber
.
The SuccessFactors connector supports the following PerPhone attributes:
Attribute | Description |
---|---|
|
The employee’s external ID. |
|
The person’s phone number area code. |
|
The person’s phone number country code. |
|
The user who created the person’s phone number. |
|
The date and time of creation for a person’s phone number. |
|
The date of creation for a person’s phone number. |
|
Include all records for the person’s phone number. |
|
The person’s phone number extension. |
|
Whether the person’s phone number is primary. |
|
The ID of the last user to modify the person’s phone number. |
|
The time and date the person’s phone number was last updated. |
|
The date the person’s phone number was last updated. |
|
The person’s phone number. |
|
The person’s phone type. |
|
The person’s secondary phone number. |
Use the SuccessFactors connector
Accounts
You can perform the following actions on a SAP SuccessFactors account:
Create a SuccessFactors user
The following example creates a user with every available attribute:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ --data '{ "userId": "BJENSEN", "username": "bjensen", "__ENABLE__": true, "email": "bjensen@example.com", "firstName": "Barbara", "lastName": "Jensen", "country": "USA", "married": false, "timeZone": "US/Eastern", "department": "Cloud", "state": "New York", "city": "New York City", "jobLevel": "2", "location": "40.6635°N 73.9387°W", "__PASSWORD__": "Test@123", "division": "Manufacturing", "hireDate": "2021-07-26 00:00:00", "dateOfBirth": "2012-08-22 00:00:00", "__GROUP__": [ {"groupId": "6895"}, {"groupId": "6095"} ] }' \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__?_action=create" { "_id" : "BJENSEN", "userId" : "BJENSEN", "jobLevel" : "2", "__GROUP__" : [ { "groupId" : "1586", "groupName" : "EVERYONE" }, { "groupId" : "6895", "groupName" : "SAP_Managers" }, { "groupId" : "6095", "groupName" : "SAP_ONB2_ErrorFlowAdmins" } ], "department" : "Cloud", "dateOfBirth" : "2012-08-22 00:00:00", "lastModifiedDateTime" : "2022-11-02 09:13:49", "__ENABLE__" : true, "email" : "bjensen@example.com", "country" : "USA", "lastModified" : "2022-11-02 10:13:49", "location" : "40.6635°N 73.9387°W", "lastName" : "Jensen", "lastModifiedWithTZ" : "2022-11-02 09:13:49", "username" : "bjensen", "timeZone" : "US/Eastern", "city" : "New York City", "state" : "New York", "__NAME__" : "bjensen", "hireDate" : "2021-07-26 00:00:00", "married" : false, "division" : "Manufacturing", "firstName" : "Barbara" }
New users must have at least the username , userId , and status properties.
|
Query all users
The following example queries all SuccessFactors users:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__?_queryId=query-all-ids" { "result":[ {"_id":"1007373"}, {"_id":"1007371"}, {"_id":"1007376"}, {"_id":"1007370"}, {"_id":"1007377"} ], "resultCount":5, "pagedResultsCookie":null, "totalPagedResultsPolicy":"NONE", "totalPagedResults":-1, "remainingPagedResults":-1 }
Query a single user
The following example queries a single user by their ID:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__?_queryFilter=_id%20eq%20%22BJENSEN%22" { "_id" : "BJENSEN", "userId" : "BJENSEN", "jobLevel" : "2", "__GROUP__" : [ { "groupId" : "1586", "groupName" : "EVERYONE" }, { "groupId" : "6895", "groupName" : "SAP_Managers" }, { "groupId" : "6095", "groupName" : "SAP_ONB2_ErrorFlowAdmins" } ], "department" : "Cloud", "dateOfBirth" : "2012-08-22 00:00:00", "lastModifiedDateTime" : "2022-11-02 09:13:49", "__ENABLE__" : true, "email" : "bjensen@example.com", "country" : "USA", "lastModified" : "2022-11-02 10:13:49", "location" : "40.6635�N 73.9387�W", "lastName" : "Jensen", "lastModifiedWithTZ" : "2022-11-02 09:13:49", "username" : "bjensen", "timeZone" : "US/Eastern", "city" : "New York City", "state" : "New York", "__NAME__" : "bjensen", "hireDate" : "2021-07-26 00:00:00", "married" : false, "division" : "Manufacturing", "firstName" : "Barbara" }
Modify a user
You can use the SuccessFactors connector to modify the following attributes of a user entry:
Show attributes
-
username
-
email
-
status
-
country
-
department
-
timeZone
-
jobLevel
-
married
-
city
-
state
-
division
-
citizenship
-
location
-
firstName
-
lastName
-
gender
-
dateOfBirth
-
jobCode
The following example updates the division
property on a user:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "If-Match:*" \ --request PUT \ --data '{ "division": "Engineering" }' \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__/BJENSEN" { "_id" : "BJENSEN", "userId" : "BJENSEN", ... "division" : "Engineering", "firstName" : "Barbara" }
Reset a user’s password
The following example resets the password for a SuccessFactors user account:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request PATCH \ --data '[{ "operation": "replace", "field": "__PASSWORD__", "value": "__CHANGEME__" }]' \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__/BJENSEN" { "_id" : "BJENSEN", "userId" : "BJENSEN", ... }
The updated password is not included in the response object; however, the value is updated in the system. |
Activate a user
The following example activates a user with the minimum required attributes:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ --data '{ "username": "bjensen", "__ENABLE__": true, "firstName": "Barbara", "userId": "BJENSEN" }' \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__/BJENSEN" { "_id": "BJENSEN", "userId": "BJENSEN", ... "__ENABLE__": true }
Deactivate a user account
The SuccessFactors connector does not support deleting accounts. To deactivate an unwanted account, set the account’s __ENABLE__
attribute value to false
. A deactivated account remains in the SuccessFactors system and can still be queried by its ID, but cannot be accessed.
The following example deactivates a SuccessFactors user account:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ --data '{ "username": "bjensen", "__ENABLE__": false, "firstName": "Barbara", "userId": "BJENSEN" }' \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__/BJENSEN" { _id: "BJENSEN" }
Groups
Assign a user to a group
The following example assigns a user to a group:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "if-Match:*" \ --request PUT \ --data '{ "__ENABLE__":true, "__GROUP__":[ { "groupId":1001 } ] }' \ "https://localhost:8443/openidm/system/successfactors/__ACCOUNT__/BJENSEN" { "_id" : "BJENSEN", "userId" : "BJENSEN", "jobLevel" : "2", "__GROUP__" : [ { "groupId" : "1001", "groupName" : "Example Working Group" }, ... }
Query all groups
The following example queries all groups in the system:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --header "if-Match:*" \ --request GET \ "https://localhost:8443/openidm/system/successfactors/__GROUP__?_queryId=query-all-ids" { "result": [ {"_id":"6637"}, {"_id":"2202"}, {"_id":"1588"}, {"_id":"6877"}, {"_id":"2203"} ], "resultCount":5, "pagedResultsCookie": null, "totalPagedResultsPolicy": "NONE", "totalPagedResults": -1, "remainingPagedResults": -1 }
Query a single group
The following example queries a single group:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "https://localhost:8443/openidm/system/successfactors/__GROUP__?/1001" { "_id": "1001", "__NAME__": "1001", "groupName": "Example Working Group", "lastModifiedDate" : "2015-01-04 23:29:38", "createdBy" : "v4admin", "totalMemberCount" : "33590", "activeMembershipCount" : "2294", "groupID" : "1001", "groupType" : "permission" }
Persons
Query all persons
The following example queries all persons in the system:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "https://localhost:8443/openidm/system/successfactors/__PERSON__?_queryId=query-all-ids" { "result":[ {"_id":"69119"}, {"_id":"69120"}, {"_id":"69121"}, {"_id":"80279"}, {"_id":"80280"} ], "resultCount":5, "pagedResultsCookie":null, "totalPagedResultsPolicy":"NONE", "totalPagedResults":-1, "remainingPagedResults":-1 }
Query a single person
The following example queries a single group:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "Content-Type: application/json" \ --request GET \ "https://localhost:8443/openidm/system/successfactors/__PERSON__?_queryFilter=_id%20%22scarter%22" { "result":[{ "_id":"scarter", "EmpJob_payGrade":"GR-08", "EmpEmployment_firstDateWorked":"2002-03-17 00:00:00", "PerPersonal_maritalStatus":"10819", "PerPersonal_nationality":"USA", "EmpEmployment_lastDateWorked":null, "EmpEmployment_userId":"scarter", "PerPersonal_personIdExternal":"scarter", "EmpEmployment_initialStockGrant":null, "PerPerson_countryOfBirth":"USA", "PerPersonal_endDate":"9999-12-31 00:00:00", "PerPersonal_firstName":"Sam", "EmpEmployment_eligibleForStock":null, "PerPersonal_lastName":"Carter", "EmpJob_payScaleArea":"USA/US2", "EmpJob_jobCode":"50070968", "PerPerson_regionOfBirth":null, "PerPersonal_startDate":"2002-03-17 00:00:00", "PerPerson_personIdExternal":"scarter", "PerPerson_lastModifiedDateTime":"2015-10-30 10:05:06", "EmpEmployment_lastModifiedDateTime":"2018-07-15 23:12:06", "PerPersonal_lastModifiedDateTime":"2018-10-25 23:51:29", "EmpJob_timezone":"US/Eastern", "PerPersonal_gender":"M", "PerPerson_dateOfBirth":"1983-02-15 00:00:00", "PerPersonal_nativePreferredLang":"10223", "EmpEmployment_serviceDate":null, "EmpEmployment_assignmentIdExternal":"scarter", "EmpJob_lastModifiedDateTime":"2020-06-23 10:50:43", "PerPerson_createdOn":"2015-01-05 23:34:22", "EmpJob_company":"1710", "EmpEmployment_originalStartDate":"2002-03-17 00:00:00", "EmpEmployment_endDate":null, "EmpJob_position":"3000325", "EmpJob_jobTitle":"Administrative Support", "PerPersonal_salutation":"10810", "EmpEmployment_seniorityDate":"2002-03-17 00:00:00", "PerPerson_createdDateTime":"2015-01-05 22:34:22", "EmpEmployment_professionalServiceDate":null, "EmpJob_startDate":"2017-01-01 00:00:00", "PerPersonal_middleName":null, "PerPerson_createdBy":"v4admin", "PerPersonal_preferredName":null, "PerPerson_lastModifiedBy":"scarter", "EmpJob_businessUnit":"CORP", "EmpJob_seqNumber":"1", "PerPerson_perPersonUuid":"87AF10389BCC4F29BC3F3A225B321E14", "EmpJob_location":"1710-2001", "EmpJob_managerId":"108743", "EmpJob_eventReason":"PAYOTH", "PerPerson_lastModifiedOn":"2015-10-30 11:05:06", "EmpJob_payScaleType":"USA/US2", "EmpJob_userId":"scarter", "EmpEmployment_initialOptionGrant":null, "EmpEmployment_personIdExternal":"scarter", "PerPerson_personId":"8", "__NAME__":"scarter"}], "resultCount":1, "pagedResultsCookie":null, "totalPagedResultsPolicy":"NONE", "totalPagedResults":-1, "remainingPagedResults":-1 }
Modify a person
You can use the SuccessFactors connector to modify the following attributes of a user entry:
Show attributes
-
PerPerson_dateOfBirth
-
PerPerson_countryOfBirth
-
PerPerson_regionOfBirth
-
EmpEmployment_firstDateWorked
-
EmpEmployment_eligibleForStock
-
EmpEmployment_initialOptionGrant
-
EmpEmployment_serviceDate
-
EmpEmployment_professionalServiceDate
-
EmpEmployment_originalStartDate
-
EmpEmployment_initialStockGrant
-
EmpEmployment_seniorityDate
-
EmpEmployment_startDate
-
EmpJob_jobCode
-
EmpJob_startDate
-
EmpJob_eventReason
-
EmpJob_businessUnit
-
EmpJob_managerId
-
EmpJob_seqNumber
-
EmpJob_payGrade
-
EmpJob_jobTitle
-
EmpJob_company
-
EmpJob_location
-
EmpJob_timezone
-
EmpJob_position
-
EmpJob_payScaleArea
-
EmpJob_payScaleType
-
PerPersonal_gender
-
PerPersonal_endDate
-
PerPersonal_startDate
-
PerPersonal_firstName
-
PerPersonal_lastName
-
PerPersonal_nativePreferredLang
-
PerPersonal_salutation
-
PerPersonal_maritalStatus
-
PerPersonal_nationality
-
PerPersonal_preferredName
-
PerPersonal_middleName
-
PerPhone_phoneType
-
PerPhone_phoneNumber
-
PerPhone_isPrimary
-
PerPhone_secondaryPhoneNumber
-
PerEmail_emailType
-
PerEmail_emailAddress
-
PerEmail_isPrimary
-
PerEmail_secondaryEmailAddress
-
EmpCompensation_startDate
-
EmpCompensation_endDate
-
EmpCompensation_bonusTarget
-
EmpCompensation_payGrade
-
EmpCompensation_payrollSystemId
-
EmpCompensation_benefitsRate
-
EmpCompensation_isHighlyCompensatedEmployee
-
EmpCompensation_eventReason
-
EmpCompensation_payGroup
-
EmpCompensation_isEligibleForCar
-
EmpCompensation_isInsider
-
EmpCompensation_isEligibleForBenefits
-
PerAddressDEFLT_addressType
-
PerAddressDEFLT_startDate
-
PerAddressDEFLT_country
-
PerAddressDEFLT_zipCode
-
PerAddressDEFLT_notes
-
PerAddressDEFLT_city
-
PerAddressDEFLT_endDate
-
PerAddressDEFLT_county
-
PerAddressDEFLT_address2
-
PerAddressDEFLT_address1
To modify an existing person entry, use a PUT request and include all attributes of the person in the request:
curl \ --header "X-OpenIDM-Username: openidm-admin" \ --header "X-OpenIDM-Password: openidm-admin" \ --header "If-Match: *" \ --header "Content-Type: application/json" \ --request PUT \ --data '{ "PerPerson_dateOfBirth":"1960-05-04 00:00:00", "PerPerson_countryOfBirth":"USA", "PerPerson_regionOfBirth":"null", "EmpEmployment_firstDateWorked":"2017-01-01 00:00:00", "EmpEmployment_eligibleForStock":true, "EmpEmployment_initialOptionGrant":"118.8", "EmpEmployment_serviceDate":"2018-01-01 00:00:00", "EmpEmployment_professionalServiceDate":"2019-02-01 00:00:00", "EmpEmployment_originalStartDate":"2018-03-01 00:00:00", "EmpEmployment_initialStockGrant":"3000", "EmpEmployment_seniorityDate":"2022-04-01 00:00:00", "EmpEmployment_startDate":"2016-05-01 00:00:00", "EmpJob_jobCode":"50070999", "EmpJob_startDate":"2019-01-01 00:00:00", "EmpJob_eventReason":"HIRNEW", "EmpJob_businessUnit":"PRODS", "EmpJob_managerId":"sMeias", "EmpJob_seqNumber":"2", "EmpJob_payGrade":"GR-08", "EmpJob_jobTitle":"Planning & Scheduling Manager", "EmpJob_company":"2100", "EmpJob_location":"2100-0001", "EmpJob_timezone":"Europe/Lisbon", "EmpJob_position":"3000909", "EmpJob_payScaleArea":"USA/US2", "EmpJob_payScaleType":"USA/US2", "PerPersonal_gender":"F", "PerPersonal_endDate":"9999-12-31 00:00:00", "PerPersonal_startDate":"2019-07-26 00:00:00", "PerPersonal_firstName":"sam", "PerPersonal_lastName":"carter", "PerPersonal_nativePreferredLang":"10223", "PerPersonal_salutation":"30085", "PerPersonal_maritalStatus":"10820", "PerPersonal_nationality":"USA", "PerPersonal_preferredName":"sammy", "PerPersonal_middleName":" M", "PerPhone_phoneType":"10605", "PerPhone_phoneNumber":"55555556", "PerPhone_isPrimary":true, "PerPhone_secondaryPhoneNumber":[ { "phoneNumber":"555555555", "phoneType":"10606", "isPrimary":false, "areaCode":"312", "countryCode":"3", "extension":"76858" } ], "PerEmail_emailType":"8448", "PerEmail_emailAddress":"scarter@example.com", "PerEmail_isPrimary":true, "PerEmail_secondaryEmailAddress":[ { "emailAddress":"scarter.21@example.com", "emailType":"8447", "isPrimary":false }, { "emailAddress":"scarter.31@example.com", "emailType":"8446", "isPrimary":false } ], "EmpCompensation_startDate":"2021-12-31 00:00:00", "EmpCompensation_endDate":"9999-12-31 00:00:00", "EmpCompensation_bonusTarget":"47", "EmpCompensation_payGrade":"GR-12", "EmpCompensation_payrollSystemId":"ajukuio", "EmpCompensation_benefitsRate":"1", "EmpCompensation_isHighlyCompensatedEmployee":true, "EmpCompensation_eventReason":"PAYOTH", "EmpCompensation_payGroup":"D2", "EmpCompensation_isEligibleForCar":false, "EmpCompensation_isInsider":false, "EmpCompensation_isEligibleForBenefits":true, "PerAddressDEFLT_addressType":"home", "PerAddressDEFLT_startDate":"2012-01-01 00:00:00", "PerAddressDEFLT_country":"SGP", "PerAddressDEFLT_zipCode":"345653", "PerAddressDEFLT_notes":"notes", "PerAddressDEFLT_city":"Singapore", "PerAddressDEFLT_endDate":"9999-12-31 00:00:00", "PerAddressDEFLT_county":"11224", "PerAddressDEFLT_address2":"4815", "PerAddressDEFLT_address1":"Oceanic Avenue" }' \ "https://localhost:8443/openidm/system/successfactors/__PERSON__/scarter" { "_id":"scarter", "PerPersonal_maritalStatus":"10820", ... "PerPersonal_lastName":"carter", "__NAME__":"scarter" }
OpenICF Interfaces Implemented by the SuccessFactors Connector
The SuccessFactors Connector implements the following OpenICF interfaces. For additional details, see ICF interfaces:
- Create
-
Creates an object and its
uid
. - Delete
-
Deletes an object, referenced by its
uid
. - Schema
-
Describes the object types, operations, and options that the connector supports.
- Script on Connector
-
Enables an application to run a script in the context of the connector.
Any script that runs on the connector has the following characteristics:
-
The script runs in the same execution environment as the connector and has access to all the classes to which the connector has access.
-
The script has access to a
connector
variable that is equivalent to an initialized instance of the connector. At a minimum, the script can access the connector configuration. -
The script has access to any script arguments passed in by the application.
-
- Search
-
Searches the target resource for all objects that match the specified object class and filter.
- Sync
-
Polls the target resource for synchronization events, that is, native changes to objects on the target resource.
- Test
-
Tests the connector configuration.
Testing a configuration checks all elements of the environment that are referred to by the configuration are available. For example, the connector might make a physical connection to a host that is specified in the configuration to verify that it exists and that the credentials that are specified in the configuration are valid.
This operation might need to connect to a resource, and, as such, might take some time. Do not invoke this operation too often, such as before every provisioning operation. The test operation is not intended to check that the connector is alive (that is, that its physical connection to the resource has not timed out).
You can invoke the test operation before a connector configuration has been validated.
- Update
-
Updates (modifies or replaces) objects on a target resource.
SuccessFactors Connector Configuration
The SuccessFactors Connector has the following configurable properties:
Configuration properties
Property | Type | Default | Encrypted(1) | Required(2) |
---|---|---|---|---|
|
|
|
|
Yes |
Hostname of the target. |
||||
|
|
|
|
Yes |
The client identifier. |
||||
|
|
|
|
Yes |
User id for authentication. |
||||
|
|
|
|
Yes |
The private key which is used for signing JWT. |
||||
|
|
|
|
Yes |
Company id as present in target application. |
||||
|
|
|
|
No |
The person segments to retrieve, specified as individual attributes or all (For example: EmpJob_All, EmpEmployment_startDate). |
||||
|
|
|
|
No |
Page size for search operation. |
(1) Whether the property value is considered confidential, and is therefore encrypted in IDM.
(2) A list of operations in this column indicates that the property is required for those operations.
Basic Configuration Properties
Property | Type | Default | Encrypted(1) | Required(2) |
---|---|---|---|---|
|
|
|
|
No |
Provides the maximum connections. |
||||
|
|
|
|
No |
Provides the maximum connection timeout in seconds. |
||||
|
|
|
|
No |
Provides the HTTP proxy host. |
||||
|
|
|
|
No |
Provides the HTTP proxy port. |
||||
|
|
|
|
No |
Provides the HTTP proxy username. |
||||
|
|
|
Yes |
No |
Provides the HTTP proxy password. |
(1) Whether the property value is considered confidential, and is therefore encrypted in IDM.
(2) A list of operations in this column indicates that the property is required for those operations.