EC-LMS Connector Integration
EC-LMS Connector Integration
PUBLIC
Change Log
Version Date Description
1.0 20.04.2020 Initial version
1.1 25.05.2020 Template adjustment and reference updated
1.2 12.10.2020 The document was updated to incorporate the chapter #7
1.3 24.08.2021 Document was changed to incorporate following minor/major
changes:
• Integration Center template for SF User connector:
Change from EDI format to simple output
Supported Releases
Product Release - From Release-Valid
till
SAP SuccessFactors Employee Central 2H 2021
SAP SuccessFactors Learning 2H 2021
Contribution
Role Name Organization
Author / Owner SAP SuccessFactors Product Management SAP SE
Contributor Sunil Arwari EPI-USE
Contributor Joelle Smith GroupeX
Contributor Raj Thayaparan GroupeX
Reviewer Karen Perez SAP PS
The recommendations in this document are based on the functionality available up to SAP SuccessFactors
release mentioned above. Future functionality can impact the recommendations provided by this document.
We strive to keep these recommendations up-to-date, however, in case you find that recent new functionality
has not yet been considered in the latest version of this document, please reach out to your Customer Success
Manager / Partner Delivery Manager or send an email to [email protected].
Implementation Design Principles (IDPs) for SuccessFactors solutions are delivered by SAP for helping
customers and partners on how to choose the most appropriate strategy and solution architecture for
SuccessFactors implementations. IDPs are compiled taking into consideration the experience of many
implementation projects and addressing frequent business requirements as well as real-life implementation
challenges. They are continuously reviewed and updated as product functionality evolves. In addition, the
reader is advised to read and familiarize with essential and additional product-related documentation which
includes Implementation Guides, SAP Notes, SAP Knowledge Base Articles, and additional assets as
referenced in this document, see chapter 8.
2
TABLE OF CONTENTS
WHAT’S NEW.............................................................................................................................................................. 4
1. TERMINOLOGY........................................................................................................................................................ 4
2. ABSTRACT .............................................................................................................................................................. 4
3. INTRODUCTION...................................................................................................................................................... 5
4. BUSINESS REQUIREMENTS ..................................................................................................................................... 5
5. SOLUTION OVERVIEW AND CONCEPTS .................................................................................................................. 5
6. DETAILED SOLUTION .............................................................................................................................................. 6
6.1. INTEGRATION CENTER USER DATA JOB ................................................................................................................... 6
6.1.1 Connector Properties File............................................................................................................................. 9
6.1.2 Integration Center Setup ............................................................................................................................11
6.1.3 Employee Central Global Assignment / Concurrent Employment in LMS ......................................................12
6.2. INTEGRATION CENTER ORGANIZATION DATA JOB .....................................................................................................13
6.3. INTEGRATION CENTER JOB DATA JOB ....................................................................................................................17
7. SWITCHING THE EMPLOYEE DATA EXPORT FROM PROVISIONING TO INTEGRATION CENTER STEPS .....................18
8. REFERENCES ..........................................................................................................................................................19
9. APPENDIX ..............................................................................................................................................................20
3
WHAT’S NEW
Chapter #6.1 The chapter ‘6.1 Integration Center User Data Job’ was adjusted to highlight the non-recommendation
of the use of the User Connector instead of the SF User Connector.
Chapter #7 The chapter ‘Switching the Employee Data Export from Provisioning to Integration Center steps’ was
added to provide step-wise guidance on how to switch from provisioning SF User export job to
Integration Center.
Chapter #6.1 You can now create a simple output integration file to export user data from HXM Suite and import it
to LMS (not need to create an EDI file). It is a must to enable the 1 header configuration in LMS.
1. TERMINOLOGY
Abbreviation Description
Secure File Transfer Protocol – this is the server licensed with SuccessFactors used for
SFTP
transferring data file between the system
BizX Suite Business Execution Software Suite, now renamed “HXM Core”
2. ABSTRACT
Common implementation scenarios at customers include implementing LMS and one or more Talent modules
of SuccessFactors before the implementation of Employee Central. For these customers, the introduction of
Employee Central within the landscape introduces some changes to integrations of employee and
organizational data into LMS and consequently also requires adjustments to LMS components like
Assignment Profiles which utilize updated organizational elements to proactively assign learning activities and
for use as filters within Learning reports. LMS processes also need to cater to the possibility of multiple student
records for employees corresponding to separate employments in Employee Central (Concurrent
Employments or Global Assignments).
This Implementation Design Principle document will address the considerations for changes to LMS around
integration approach and updates to configurations or business process upon the introduction of Employee
Central for customers that are already using the SuccessFactors LMS solution.
4
3. INTRODUCTION
The Employee Export job scheduled from Provisioning has been the traditional method for extracting user
data from the SuccessFactors platform for import into LMS. This job uses Employee Profile as the source for
employee and organizational data from a legacy system. Employee Profile is a limited data set of employee
information that is not effectively dated and captures information as a point in time reference, for a User
record.
The introduction of Employee Central as the underlying system of record for Employee and Organizational
master data now feeding Employee Profile introduces some changes to the way data is passed on to
Employee Profile and consequently downstream systems like LMS which derived user and organizational
information via Employee Profile. Hence a change in the way user and organizational information is passed
on to LMS is needed.
4. BUSINESS REQUIREMENTS
The traditional method of using the Provisioning Employee Export paired with the User Connector-SF
Learning connector is problematic based on the following:
The Provisioning Employee Export job concatenates the ID and Description of reference fields such as
Department, Division, Job Codes, Job Locations into one field. This job can’t be modified to split up these
fields. Also, this Employee Export job is contained in Provisioning, which customers cannot access (only
available to SAP Support and certified implementation partners). Therefore, customers wishing to modify the
scheduling of this job will need to submit a support ticket or work with an implementation partner.
The concatenated reference field by default is mapped to the ID field in LMS which is the unique identifier of
the record. If the customer chooses to revise the Description of one of these reference fields in Employee
Central, this will cause the creation of a new Organization, Region, Job Code, or Job Location in LMS based
on a new ID (merge of ID and new Description) appearing in the Provisioning Employee Export job.
Example: An Org with ID=123 with Description=Corp is concatenated into one field Corp(123) – if the
description changes to Corporate, then this creates a new reference value of Corporate(123). This causes
duplication of existing Org values in LMS.
Additional to this problem, we also need to consider the multiple employment cases that can come from
Employee Central to LMS. In Employee Central multiple employments can be:
1. Concurrent Employment: An employee that has multiple job functions, e.g. a nurse practitioner in multiple
hospitals;
2. Global Assignment: An employee on a job assignment in a country other than the one he/she was working
out of, and that he/she is typically expected to return to once the Global Assignment ends. The original
employment is referred to as the “home employment”, the new one as the “host employment”.
This Implementation Design Principles (IDP) document will provide clarification of the best practice on how to
handle this scenario and how to move user data from Employee Central into LMS taking into consideration
reference values that need to be aligned between the two systems and proper alignment of the
PERSON_GUID which is the unique identifier of the person record.
Any Assignment Profiles using the original concatenated value of an Organization, Region, Job Code, or Job
Location will need to be reviewed and updated with the newly created ID resulting from the change in
Description.
Many user data values must be mapped properly between Employee Central and LMS to maintain the integrity
of user data between these two modules. The LMS uses this data for the following purposes:
• Auto-assignment of learning activities
• Auto-assignment of learning catalog access
• Auto-assignment of user roles
• Filtering and data within Learning reports
To extract data from Employee Central, the recommended solution is to make use of the Integration Center
rather than to use the Employees Export scheduled job in Provisioning.
5
The Integration Center jobs offer the following advantages over the Employees Export job:
• Allows for granular, field population filters to control which users are transferred from Employee Central;
• Allows for field-level transformation to convert individual values;
• Allows for mapping directly into key/value pairs that the LMS supports (e.g. Job Code ID and Job Code
Description);
• Allows for the addition of fields to the LMS user feed without having to modify the Employee Profile;
• Allows for customers to make changes to the structure and schedule of the extract job (the Provisioning
job must be scheduled by the support or a partner).
Additionally, data for the Organization Structure and Job Structure can be transferred through the Integration
Center. There is currently no other recommended method to transfer this information.
6. DETAILED SOLUTION
Recommendations for constructing each of the data feeds to LMS (User Data, Organization Data, and Job
Data) are below.
Creating the User Data feed involves the creation and schedule of the Integration Center job and the
modification of the CONNECTOR properties file in LMS system configuration.
Integration Center allows you to create an integration from a starting entity that acts as the point of reference
for reading the SuccessFactors data, as an example, biographical information from Employee Central. After
selecting this main entity, you can combine data from multiple entities like employment information (for all
detailed information about Integration Center possibilities, please refer to the SAP Help Integration Center
guide.
You will need to build an Integration Center job that will generate a file that is compatible with the format
expected by the SF User Connector.
6
Note: The use of the User Connector instead of the SF User Connector is NOT recommended by SF Learning
Product and this is because of:
• New product changes will be centered around the best practice of using the SF User Connector.
• Product & Customer support will not be able to support customers on issues surrounding the standard
User Connector (For HXM/SF LMS integrated environments, it is a non-supported connector).
• GDPR compliance (required to have the ability to purge user’s data): customers will be able to use data
purge tool in HXM Suite, but SF Learning tool requires SAP Professional engagement for full data
purging (soft purge: data still exists in the system).
• Updating records is a two-step process which increase the risk for data inconsistencies between HXM
Suite and SF Learning.
This file follows a different format than the default connector format. The default connector format has a single
line header, is a pipe (|) separated, and each line is terminated with a special character sequence (!##!). The
SF User Connector has a two-line header, is comma-separated, and each line is terminated only with a newline
character (\n). Additionally, each field is contained in double-quotes. To build a simpler template in Integration
Center, first you need to add the following setting in the Connector file:
sfuser.connector.input.file.header.skip.records.count=0
By adding and defining this setting to ‘0’, the LMS will not skip the second line when importing, instead
will import as user data.
The Integration Center job must be created as a Simple File Output Integration type, where the Output File
Type must be CSV and the Header Type as Simple Header, as shown below:
The number of columns is determined by the number of fields that will be used in the LMS (depends on each
customer’s requirements). A user file must contain fields for the active status (NOTACTIVE), student ID
(STUD_ID), Person id External (PERSON_ID_EXTERNAL), and Person GUID (PERSON_GUID) at a
minimum.
An example of the layout is below. Header Line contains the LMS DB field names. These field names will
correspond to the field names in the CONNECTOR properties file (discussed below). The value for each of
these fields will be name surrounded by double quotes (“) automatically by Integration Center when it is
required (because you are creating a CSV file).
7
Now you must complete the mapping fields between the template columns and the System data fields. This
can be done in the ‘Field Mapping View’. To associate the data fields to columns, just drag and drop the
corresponding data field to each column as shown in the image below.
Note: Dates can be exported as yyyy-MM-dd and will later be transformed in the CONNECTOR properties file.
Or you can already transform the date to the LMS format in Integration Center as shown below:
Click in the Date field (Hire Date in our sample case) and go to “More Field Options”:
Define the LMS date format under the “Format” field as per below:
If there is any need based on customer requirement of applying filters to extract only a specific population (e.g.
8
the department, employee class, etc.) or from a specific time based, use the Filter tab to do it as illustrated
below:
• The existing field mappings for the SF User connector should be updated so that the field names on the
right side of the equals (=) sign match the Integration Center header fields (Header Line 1 in the section
above).
An excerpt of the file is shown below.
# SF User Connector column mapping
sfuser.field.mapping.data.NOTACTIVE=STATU
S sfuser.field.mapping.data.STUD_ID=USER_ID
sfuser.field.mapping.data.FNAME=FNAME
9
sfuser.field.mapping.data.LNAME=LNAME
sfuser.field.mapping.data.MI=MI
Note: Please note that the BizX to LMS database field mappings below should never be altered, as
these need to be a direct one to one relationship. However the header names, for the input file, could
be altered if needed:
sfuser.field.mapping.data.NOTACTIVE=STATUS
sfuser.field.mapping.data.STUD_ID=USERID
sfuser.field.mapping.data.PERSON_GUID=PERSON_GUID
sfuser.field.mapping.data.PERSON_ID_EXTERNAL=PERSON_ID_EXTERNAL
Renaming these field headers to more closely match the LMS field names will make the file more readable
and will have the added benefit of disabling the Service Event Bus. The Service Event Bus (SEB)
automatically pushes data from the Employee Profile to the LMS upon creation of a new user in the BizX
Platform (This process is triggered only when an Admin accesses the BizX UI and modifies a single user
record. It will not get triggered if it is a file-based bulk import into BizX). The SEB uses the mappings in the
SF User Connector file to send this data to the LMS and includes data for the User ID, Job Code ID,
Organization ID, and Job Location ID. The data that the SEB pushes will be inconsistent with the data that
is sent through the Integration Center job, as the Employee Profile concatenates codes and descriptions
into a single field. At a minimum, the field names for the STUD_ID, JP_ID, ORG_ID, and JL_ID should be
changed from their default field names (USERID, JOBCODE, DEPARTMENT, LOCATION). This will
prevent the Service Event Bus from pushing inconsistent data into the LMS (The following KBA puts
together all information about ‘Service Event Bus (SEB) and Real-time user creation/updates in LMS’ for
your reference: https://apps.support.sap.com/sap/support/knowledge/public/en/2800231).
• Remove field mappings where the description is copied in from the ID, as the Integration Center job will
allow for each of these descriptions to be entered as a separate field. Find and remove the line that copies
field mappings. If required, explicitly set the value of the SHOPPING_ACCT_TYPE using the Integration
Center job:
sfuser.connector.copy.field.mappings=SHOPPING_ACCT_TYPE=NOTACTIVE
• removeJP_DESC=JP_ID, JL_DESC=JL_ID
• Additional field mappings can be included, based on the LMS data model. The extended user profile fields
are no longer required. Example:
sfuser.field.mapping.data.ORG_DESC=ORG_DESC
• To accommodate dates in the format that the Integration Center provides, the code in the line below should
be used to transform dates into the LMS format (example below for Hire Date):
sfuser.field.transform.date.format.HIRE_DTE.MMM-dd-yyyy\ HH\:mm\:ss=yyyy-MM-dd
A sample layout file is provided in the appendix, as a starting reference to create the integration center job
for User information:
Employee Central - LMS Integration center job – User data_definition.icd
After importing the sample file, you must set up the SFTP + file and folder name under ‘Destination Settings’,
as shown below:
10
Finally, you need to define the schedule for this job to export the data and send it to the SFTP, to
be consumed by LMS (image below).
The recommendation is to schedule a daily delta user data export from within Integration Center, with a
destination of the customer’s SAP SFTP server. The job will consider only changed users from the last 24
hours. This job should run after working hours when the number of users on the system is low. Also, a weekly
full feed job could be scheduled to import all users into the LMS if needed. This job can be scheduled over the
weekend when the number of users on the system is low and the connector has more time to import larger
user numbers.
11
6.1.3 Employee Central Global Assignment / Concurrent Employment in LMS
There are a couple of topics that need to be highlighted when we introduce Global Assignment and/or
Concurrent Employment to LMS.
A pre-analysis is required before implementing the new integration to understand what data will be changed
and if any of this data is used in areas such as assignment profiles or reports etc, as these may need to be
adjusted/updated within LMS. Changes such as one user having multiple Student ID’s, thus multiple learning
plans. Updates to the Assignment Profiles could be made to exclude the home or host account within the filter
criteria to stop duplicate items being assigned to both learning plans. Meaning a user would only need to
complete the item once on a single learning plan.
• Existing reports may need to be updated to display the Person ID External and not the Student ID
where required.
The table mapping between Employee Central and LMS should be as follows:
BizX LMS
USER_ID STUD_ID*
PERSON_GUID PERSON_GUID
PERSON_ID_EXTERNAL PERSON_ID_EXTERNAL
* Stud_id will be equal to the first Users_id of a person.
12
6.2. Integration Center Organization Data Job
The SF User Connector will not update Organizational descriptions or create Organizational structures within
the LMS; therefore, a secondary Integration Center job is required to routinely check that the Organization ID,
Description, and Parent ID match between Employee Central and LMS.
The Employee Central organization structure could/can combine more than one level such as with the following
example: (Level 0 (Legal Entity), Level 1(Business Unit), Level 2 (Division), and Level 3 (Department)), as
such this can be then replicated the same in LMS by creating a job in Integration Center. This way LMS will
build the organization structure as well as updating the descriptions and respecting the Employee Central
hierarchy.
The structure of this Integration Center job differs because it is needed to build the entire organization structure
where there is a Parent Org assigned to each child, to reflect the same as in Employee Central. To comply
with this format, the Integration Center job should be created as a Stacked/EDI file with four rows. The number
of columns is determined by the number of fields that will be used in the LMS. An Org file must contain fields
for the Organization ID (ORG_ID), Organization Description (ORG_DESC), and the Parent Organization
(ORG_ID_PARENT).
An example of the layout is below. The Header Line contains the LMS DB field names. These field names will
correspond to the field names in the CONNECTOR properties file.
The Starting Entity for this job must be the lowest level. In the example below, we are using the Department.
The new template will appear empty, so is necessary to start creating the header line by clicking in the ‘+’
icon (Insert Sibling).
13
A new line will appear and now it requires to define the name of each column. The Section Name Columns is
just for the admin view, it means that will not appear in the template when exported. For this column just fill
the Label on the right side as shown in the image below:
For the subsequent columns, you need to fill the Label + the Default Value. The Default Value is the LMS DB
field name that the Org Connector is expecting. To add more columns values, you need to click on the previous
column and click on the + icon (eg. Define the column 1 labels and after click in the ‘+’ icon, a new element
will be created in the next column).
Now the Org connector requires a node to accommodate the company hierarchy and to do it is necessary to
click in the first line of the ‘Section Name’ column and click in the ‘+’ icon. A second line will be created, and
you can label it as the lowest level, Department in our case. Make sure to create new elements for each column
in this line, by clicking in the ‘+’.
Then you need to create the node where you will group the entire hierarchical levels. To do this click in the
second line ‘Department’ field and after click on the folder icon.
14
The node was created and now we need to add the line levels by clicking in the ‘+’ icon ‘Insert Child
Segment’.
A new line was created where you change the label to Division, our next level. Now we just need to create the
last level, which is the Business Unit. To do this, you need to click in the Division label field, ‘+’ icon, ‘Insert
Sibling’. A new line will be created, and you just need to follow the previous steps, change the label, and add
a new element for each column.
The next step is to complete the mapping fields between the template columns and the System data fields.
This can be done in the ‘Field Mapping View’. To associate the data fields to columns, just drag and drop the
corresponding data field to each column. You will notice that on the right side there are all fields corresponding
to the lowest level of our organization, the Department. For this level, just drag and drop the Department Code
and name to column 1 and 2 of the Department corresponding line.
15
For the additional levels, you need to go node for each level that is inside of the foundation table. Is necessary
to drag and drop the entire node to the first column ‘Section Name’ and after navigating inside of this node
and select the corresponding fields, as already done for the Department level. Repeat the same for the last
level and save the template.
A sample layout file is provided in the appendix, as a starting reference to create the integration center job
for User information:
Employee Central - LMS Integration center job – Org data_definition.icd
After importing the sample file, you must fill the SFTP + file and folder name under ‘Destination Settings’, as
shown below:
Finally, you need to define the schedule for this job to export the data and send it to the SFTP, to
be consumed by LMS, based on the LMS Org Connector schedule (image below).
16
The recommendation is to run an initial full Org data load and schedule a daily delta export in Integration
Center to import into LMS after work hours.
The same situation as above applies to Job Code data transfer between Employee Central and LMS, meaning
that the SF User Connector will not update existing Jobs within Learning, therefore a third Integration Center
job is required to routinely check that the Job ID and Job match between Employee Central and Learning.
The structure of this Integration Center job differs because this uses a simple header type that is “|” (pipe)
delimited and outputs to a TXT file. The screenshot below illustrates how this job differs from the User and Org
Data job:
A sample layout file is provided in the appendix, as a starting reference to create the integration center job
for Job information:
Employee Central - LMS Integration center job – Job data_definition.icd
After setting up the template or importing the sample file, you must fill the SFTP + file and folder name under
‘Destination Settings’, as shown below:
Finally, you need to define the schedule for this job to export the data and send it to the SFTP, to
be consumed by LMS, based on the LMS Org Connector schedule (image below).
17
The recommendation is to run an initial full Job data load and schedule a daily delta export in Integration
Center to import into LMS after work hours.
As described above, we need to consider multiple aspects when transitioning from a provisioning job to
Integration Center. The diagram below outlines some of the basic steps to be taken. Please bear in mind that
the key recommendation is always applying these changes in the Staging before doing any change in
Production environment.
In addition to what was considered in the diagram, we would like to highlight four important topics:
18
1. Integration Center Job maintenance
Customers will need to keep an eye on release management for possible future changes in SF
connector (e.g. new fields are made available, such as Person GUID, in the past), and incorporate it
into the IC template, if necessary;
8. REFERENCES
SAP Notes/KBA
• 2800231 - FAQ - About Service Event Bus (SEB) and Real-time user creation/updates in LMS
• 2459580 - How BizX SEB & ODATA Web Service syncs user data to SF LMS
• 2318341 - LMS Connectors Knowledge Support and Tips
19
9. APPENDIX
20
Implementation Design Principle
www.sap.com/contactsap
The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary softwar e components of other software vendors.
National product specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable
for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements
accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.
In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or t o develop or release any functionality
mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are
all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation
to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are
cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other
countries. All other product and service names mentioned are the trademarks of their respective companies. See www.sap.com/copyright for additional trademark information and notices.