You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/active-directory/app-provisioning/sap-successfactors-integration-reference.md
+14-24Lines changed: 14 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,7 @@ Based on the attribute-mapping, during full sync Azure AD provisioning service s
88
88
89
89
For each SuccessFactors user, the provisioning service looks for an account in the target (Azure AD/on-premises Active Directory) using the matching attribute defined in the mapping. For example: if *personIdExternal* maps to *employeeId* and is set as the matching attribute, then the provisioning service uses the *personIdExternal* value to search for the user with *employeeId* filter. If a user match is found, then it updates the target attributes. If no match is found, then it creates a new entry in the target.
90
90
91
-
To validate the data returned by your OData API endpoint for a specific `personIdExternal`, update the `SuccessFactorsAPIEndpoint` in the API query below with your API data center server URL and use a tool like [Postman](https://www.postman.com/downloads/) to invoke the query. If the "in" filter does not work, you can try the "eq" filter.
91
+
To validate the data returned by your OData API endpoint for a specific `personIdExternal`, update the `SuccessFactorsAPIEndpoint` in the API query with your API data center server URL and use a tool like [Postman](https://www.postman.com/downloads/) to invoke the query. If the "in" filter does not work, you can try the "eq" filter.
After full sync, Azure AD provisioning service maintains `LastExecutionTimestamp` and uses it to create delta queries for retrieving incremental changes. The timestamp attributes present in each SuccessFactors entity, such as `lastModifiedDateTime`, `startDate`, `endDate`, and `latestTerminationDate`, are evaluated to see if the change falls between the `LastExecutionTimestamp` and `CurrentExecutionTime`. If yes, then the entry change is considered to be effective and processed for sync.
108
108
109
-
Here is the OData API request template that Azure AD uses to query SuccessFactors for incremental changes. You can update the variables `SuccessFactorsAPIEndpoint`, `LastExecutionTimestamp` and `CurrentExecutionTime` in the request template below use a tool like [Postman](https://www.postman.com/downloads/) to check what data is returned. Alternatively, you can also retrieve the actual request payload from SuccessFactors by [enabling OData API Audit logs](#enabling-odata-api-audit-logs-in-successfactors).
109
+
Here is the OData API request template that Azure AD uses to query SuccessFactors for incremental changes. You can update the variables `SuccessFactorsAPIEndpoint`, `LastExecutionTimestamp` and `CurrentExecutionTime` in the request template use a tool like [Postman](https://www.postman.com/downloads/) to check what data is returned. Alternatively, you can also retrieve the actual request payload from SuccessFactors by [enabling OData API Audit logs](#enabling-odata-api-audit-logs-in-successfactors).
110
110
111
111
```
112
112
https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson/$count?$format=json&$filter=(personEmpTerminationInfoNav/activeEmploymentsCount ne null) and
When Azure AD provisioning service queries SuccessFactors, it retrieves a JSON result set. The JSON result set includes a number of attributes stored in Employee Central. By default, the provisioning schema is configured to retrieve only a subset of those attributes.
130
130
131
-
To retrieve additional attributes, follow the steps listed below:
131
+
To retrieve additional attributes, follow the steps listed:
@@ -201,7 +201,7 @@ By default, the following custom attributes are pre-defined in the Azure AD Succ
201
201
**customString1-customString15* from the EmpEmployment (employmentNav) entity called *empNavCustomString1-empNavCustomString15*
202
202
**customString1-customString15* from the EmpJobInfo (jobInfoNav) entity called *empJobNavCustomString1-empNavJobCustomString15*
203
203
204
-
Let's say, in your Employee Central instance, *customString35* attribute in *EmpJobInfo* stores the location description. You want to flow this value to Active Directory *physicalDeliveryOfficeName* attribute. To configure attribute-mapping for this scenario, use the steps given below:
204
+
Let's say, in your Employee Central instance, *customString35* attribute in *EmpJobInfo* stores the location description. You want to flow this value to Active Directory *physicalDeliveryOfficeName* attribute. To configure attribute-mapping for this scenario, use the steps:
205
205
206
206
1. Edit the SuccessFactors attribute list to add a new attribute called *empJobNavCustomString35*.
207
207
1. Set the JSONPath API expression for this attribute as:
@@ -231,7 +231,7 @@ If you are running into any of these issues or prefer mapping employment status
231
231
* R = Retired
232
232
* T = Terminated
233
233
234
-
Use the steps below to update your mapping to retrieve these codes.
234
+
Use the steps to update your mapping to retrieve these codes.
235
235
236
236
1. Open the attribute-mapping blade of your SuccessFactors provisioning app.
237
237
1. Under **Show advanced options**, click on **Edit SuccessFactors attribute list**.
@@ -260,7 +260,7 @@ Use the steps below to update your mapping to retrieve these codes.
260
260
If your HR process uses Option 1, then no changes are required to the provisioning schema.
261
261
If your HR process uses Option 2, then Employee Central adds a new *EmpEmployment* entity along with a new *User* entity for the same *Person* entity.
262
262
263
-
To handle both these scenarios so that the new employment data shows up when a conversion or rehire occurs, you can bulk update the provisioning app schema using the steps listed below:
263
+
To handle both these scenarios so that the new employment data shows up when a conversion or rehire occurs, you can bulk update the provisioning app schema using the steps listed:
264
264
265
265
1. Open the attribute-mapping blade of your SuccessFactors provisioning app.
266
266
1. Scroll down and click **Show advanced options**.
@@ -327,7 +327,7 @@ When a user in Employee Central is processed for global assignment, SuccessFacto
327
327
* One *EmpEmployment* + *User* entity that corresponds to home assignment with *assignmentClass* set to "ST" and
328
328
* Another *EmpEmployment* + *User* entity that corresponds to the global assignment with *assignmentClass* set to "GA"
329
329
330
-
To fetch attributes belonging to the standard assignment and global assignment user profile, use the steps listed below:
330
+
To fetch attributes belonging to the standard assignment and global assignment user profile, use the steps listed:
331
331
332
332
1. Open the attribute-mapping blade of your SuccessFactors provisioning app.
333
333
1. Scroll down and click **Show advanced options**.
@@ -345,7 +345,7 @@ To fetch attributes belonging to the standard assignment and global assignment u
345
345
1. Scroll down and click **Show advanced options**.
346
346
1. Click on **Edit attribute list for SuccessFactors**.
347
347
1. Add new attributes to fetch global assignment data. For example: if you want to fetch the department name associated with a global assignment profile, you can add the attribute *globalAssignmentDepartment* with the JSONPath expression set to `$.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized`.
348
-
1. You can now either flow both department values to Active Directory attributes or selectively flow a value using expression mapping. Example: the below expression sets the value of AD *department* attribute to *globalAssignmentDepartment* if present, else it sets the value to *department* associated with standard assignment.
348
+
1. You can now either flow both department values to Active Directory attributes or selectively flow a value using expression mapping. Example: the expression sets the value of AD *department* attribute to *globalAssignmentDepartment* if present, else it sets the value to *department* associated with standard assignment.
@@ -356,7 +356,7 @@ To fetch attributes belonging to the standard assignment and global assignment u
356
356
### Handling concurrent jobs scenario
357
357
358
358
When a user in Employee Central has concurrent/multiple jobs, there are two *EmpEmployment* and *User* entities with *assignmentClass* set to "ST".
359
-
To fetch attributes belonging to both jobs, use the steps listed below:
359
+
To fetch attributes belonging to both jobs, use the steps listed:
360
360
361
361
1. Open the attribute-mapping blade of your SuccessFactors provisioning app.
362
362
1. Scroll down and click **Show advanced options**.
@@ -370,7 +370,7 @@ To fetch attributes belonging to both jobs, use the steps listed below:
370
370
371
371
### Retrieving position details
372
372
373
-
The SuccessFactors connector supports expansion of the position object. To expand and retrieve position object attributes such as job level or position names in a specific language, you can use JSONPath expressions as shown below.
373
+
The SuccessFactors connector supports expansion of the position object. To expand and retrieve position object attributes such as job level or position names in a specific language, you can use JSONPath expressions as shown.
374
374
375
375
| Attribute Name | JSONPath expression |
376
376
| -------------- | ------------------- |
@@ -424,7 +424,7 @@ The SuccessFactors Writeback app uses the following logic to update the User obj
424
424
* As a first step, it looks for *userId* attribute in the change set. If it is present, then it uses "UserId" for making the SuccessFactors API call.
425
425
* If *userId* is not found, then it defaults to using the *personIdExternal* attribute value.
426
426
427
-
Usually the *personIdExternal* attribute value in SuccessFactors matches the *userId* attribute value. However, in scenarios such as rehire and worker conversion, an employee in SuccessFactors may have two employment records, one active and one inactive. In such scenarios, to ensure that write-back updates the active user profile, please update the configuration of the SuccessFactors provisioning apps as described below. This configuration ensures that *userId* is always present in the change set visible to the connector and is used in the SuccessFactors API call.
427
+
Usually the *personIdExternal* attribute value in SuccessFactors matches the *userId* attribute value. However, in scenarios such as rehire and worker conversion, an employee in SuccessFactors may have two employment records, one active and one inactive. In such scenarios, to ensure that write-back updates the active user profile, please update the configuration of the SuccessFactors provisioning apps as described. This configuration ensures that *userId* is always present in the change set visible to the connector and is used in the SuccessFactors API call.
428
428
429
429
1. Open the SuccessFactors to Azure AD user provisioning app or SuccessFactors to on-premises AD user provisioning app.
430
430
1. Ensure that an extensionAttribute *(extensionAttribute1-15)* in Azure AD always stores the *userId* of every worker's active employment record. This can be achieved by mapping SuccessFactors *userId* attribute to an extensionAttribute in Azure AD.
@@ -443,7 +443,7 @@ Usually the *personIdExternal* attribute value in SuccessFactors matches the *us
443
443
1. Go to *Attribute mapping -> Advanced -> Review Schema* to open the JSON schema editor.
444
444
1. Download a copy of the schema as backup.
445
445
1. In the schema editor, hit Ctrl-F and search for the JSON node containing the userId mapping, where it is mapped to a source Azure AD attribute.
446
-
1. Update the flowBehavior attribute from "FlowWhenChanged" to "FlowAlways" as shown below.
446
+
1. Update the flowBehavior attribute from "FlowWhenChanged" to "FlowAlways" as shown.
0 commit comments