CRM and CX Blogs by Members
Find insights on SAP customer relationship management and customer experience products in blog posts from community members. Post your own perspective today!
cancel
Showing results for 
Search instead for 
Did you mean: 
tokgozatakan
Participant
As SAP's latest Cloud Native Stack CRM Tool - Sales and Service Cloud Version 2 - continues to grow with the addition of new features every day, many consultants and customers are opting for cloud-to-cloud integrations instead of complex on-premise integrations. Although both systems are delivered with prepacked integration flows, deciding whether to replicate employees from the S/4HANA Backend or SuccessFactors Employee Central depends on several points to consider.

  1. Which system serves as the primary HR system for managing employees, S4-HR or SF-EC?

  2. Although aligned, these systems have different approaches to employee structure and data models. Which employee structure aligns best with your Sales/Service scenarios?

  3. When considering future customizations, it's important to evaluate the availability of developers and/or consultants. Which team has more know-how and resources to spare?


If you prefer to move forward with SuccessFactors integration to replicate your employees into Sales and Service Cloud Version 2 (we will call it SSCv2 or CNS throughout the blog) solution, follow this guide.



Prerequisites for SuccessFactors Employee Central


To be able to fetch data from SuccessFactors EC, request the following from your fellow SF Consultant:

  • An SF-EC User with access to SOAP Services (Specifically for CompoundEmployee Entity)

    • User Credentials if Basic Authentication to be used

    • Key Pair if OAuth2 to be used



  • SuccessFactors Company ID

  • Data Center ID of the SuccessFactors Tenant

  • The code list values for the following fields in SuccessFactors Employee Central:

    • Marital Status

    • Gender

    • Title (Academic Title in SSCv2)

    • Salutation (Form of Address in SSCv2)

    • Nationality (Country in SSCv2)




Once you have the information above, we can move on to configuring SSCv2 and Integration Suite.

Configure your SSCv2 Tenant


Creating Communication System


To integrate the systems we need a communication user which is automatically created while creating the communication system.

  • Go to Settings > All Settings > Communication Systems





  • Click on (+) icon to open the quick create screen

  • Enter Display ID

    • This ID will be the name of your communication user



  • Enter a description

  • On Inbound tab, click on Create and enter a password

    • This will be the password of your communication user



  • Click Save and Activate

    • Your user will get created in the background and will be activate for integration






Creating Value Mappings


Value Mappings allows you to map your code list fields' values with the sender system's values. It is following a similar approach to Code List Mapping in SAP Cloud for Customer (with additional features).

There are 5 Value Mappings needs to be done for SuccessFactors Integration:

  1. Marital Status

  2. Gender

  3. Academic Title (Title in SF)

  4. Form of Address (Salutation in SF)

  5. Country (Nationality in SF)


Note: As you may see from the screenshots below, we did not maintain country in the value mapping. This is because in Q3/2023 bulk edit of Value Mappings is not supported in CNS and mapping 250 values manually would take serious effort, so we decided to map them in Integration Suite quickly - which will be covered in the later part in this blog. But the choice is yours.

  • Go to Integration > Value Mapping

  • Click on (+) Icon

  • Click on Mapping Group

  • Click on Add New Mapping Group and name as you please

  • Select Parent Mapping Group as "None"

  • Select Rule for Missing Mapping as "Raise Errors"

    • You can also select "pass through" to bypass errors - but our experiments showed that for some fields you will still get errors.



  • Select the code list you would like to map (i.e. Gender)

  • Click Save

  • Repeat the same for other code lists





  • Click on the Value Mapping you have created

  • Click on (+) Icon

  • Select internal code and maintain the relevant external code

  • If you need to map the same code list to different internal/external code, select one of them as default inbound/outbound

  • Save your changes

  • Repeat the same for other values




Creating Communication Configuration


Communication Configuration is a package of inbound and outbound integrations - similar to Communication Arrangements in SAP Cloud for Customer. SuccessFactors integration is an SAP delivered communication so all we have to do is to copy the configuration.

  • Go to Integration > Communication Configuration

  • Click on "Integrate SAP SuccessFactors Employee Central"

  • Inside the configuration, click Copy





  • Select the communication system you have created for SF

  • Select the value mapping you have created for SF

  • Activate the Configuration Package



After completing these steps, configuration on SSCv2 side is completed. Now we need to configure Integration Suite.

Configure your Integration Suite


On Integration Suite (CPI), just like in SSCv2, there's a pre-delivered integration package to enable Employee Replication from SF to SSCv2.

Create Security Materials


Security Materials are needed to store your user credentials so that they can be masked in the iflows and provides a central point to maintain your credentials. We need to save our SSCv2 and SF users in here and will utilize it in the iflow configuration.

  • Go to Monitor > Integrations > Security Materials

  • In the Security Materials Screen, click Create





  • For your SSCv2 User select User Credentials

  • Name your security material and enter the user credentials

    • Name doesn't have to be related to the username

    • This name cannot be changed and will be used in configuration, so make sure it has a meaningful name and follows a naming convention with other security materials.



  • Click Deploy





  • For SuccessFactors user, select OAuth2 SAML Bearer Assertion

    • You may also prefer User Credentials, but OAuth2 is a safer and more robust option.

    • Consult with your IS & SF Consultants for the best option for your company; more information can be found on this note



  • Enter the information below, which you have obtained before

  • Click Deploy




Configure Integration Package


Like in SSCv2, we will copy the pre-delivered integration package.

  • Go to Discover > Integrations

  • Search for "SAP Sales Cloud and SAP Service Cloud Version 2 Integration with SAP SuccessFactors Employee Central"

  • Open the package

  • Click Copy - Package will be copied automatically





  • Go to Design > Integrations

  • Search for "SAP Sales Cloud and SAP Service Cloud Version 2 Integration with SAP SuccessFactors Employee Central"

  • Open the package

  • Go to Artifacts - you will see there a few artifacts

  • Click Configure on Manual Employee Replication from SAP SuccessFactors Employee Central





  • Click on Receiver tab

  • Select CNS as receiver

    • CNS - Cloud Native Stack is the underlying stack of Sales and Service Cloud version 2 and is documented as CNS throughout Integration Suite



  • For CNS Host, enter the domain of your tenant

    • Do not add https:// prefix as it is already added in the address



  • Select Authentication as Basic

  • For credential name, enter the Security Material name you have created for SSCv2 previously

  • Click Save

    • Ignore the warnings

    • Do not deploy, as the iflow automatically triggers the integration






  • Click on Receiver tab

  • Select SF-EC as receiver

  • For Address, select the data center where your SF tenant is hosted

  • Select Authentication as OAuth SAML Bearer Assertion

  • For credential name, enter the Security Material name you have created for SF previously

  • Click Save

    • Ignore the warnings

    • Do not deploy, as the iflow automatically triggers the integration







  • Click on More tab

    • Since this iflow triggers replication manually, you need to specify the parameters



  • For PERSON_ID_EXTERNAL enter the Employee IDs that you want to replicate

    • IDs should be entered inside quotes, separated by commas (i.e. '1234,9876,5670')



  • For Receiver System ID, enter your SSCv2 default communication system ID (sap_cloud_crm_myXXXXXXX)

  • For Sender System ID, enter the SSCv2 communication system ID that you have created for SF

  • Click on Save

  • Click Deploy




Deploying this artifact will trigger a request for the employee IDs that you have entered in the parameters. Check the Integration Suite and SSCv2 Message Monitors to see if the message has been sent and received successfully.

When you want to replicate other employees, change the PERSON_ID_EXTERNAL parameter and deploy the request again. Since not everyone might have access to Integration Suite, it might be a good idea to connect the iflow to an endpoint and send a POST request instead. We will be covering this later.

Next Configure the Replicate Employee from SAP SuccessFactors Employee Central iflow.

  • Go to Receiver tab and repeat the steps you have done previously

  • Go to More tab and repeat the steps you have done previously this time we need to select the number of employees we want to replicate in a single message by changing maxRows





  • Go to Timer tab to schedule the request

    • If you want to run this integration on demand, choose Run Once, suitable for companies where there not many employees and employee data doesn't change so often.

    • If you want to create/update employees regularly, choose Schedule to Recur and select the frequency. For our case we have configured the replication as seen below.



  • Click Save

  • Click Deploy



After deploying the two artifacts, you will have the Employee Integration running regularly from SuccessFactors Employee Central to your SAP Sales and Service Cloud Version 2 system.

Customizing Your Integration


Now we are integrated with SuccessFactors, but standard implementations could never fully cover the unique needs of each company. In this part we will see how we can customize our integration flows to suit to our needs, by only making small changes that provides big impact.

Disclaimer: All the customization scenarios that will be covered below are based on my personal experiences and choices, they are not SAP Best Practices. Customization comes with responsibilities such as, optimization and security, which will not be a detailed part of these scenarios as the aim of this blog is to give you ideas.

To do our customizations, we will need to edit the original integration flow, which means that this iflow will not receive further updates. To prevent that, the usual way would be to utilize pre-post exits, but unfortunately the current integration flows are not enabled for extensions. As a workaround, we can copy the integration flows.

  • Go to your package

  • On the iflow you'd like to copy and click Copy

  • Give it a meaningful name to separate it from the original




Scenario 1: Custom Value Mapping to Map Countries in Integration Suite


UPDATE: As of Q4/2023, Country Value Mappings are part of standard integration package (check out in API Hub), therefore this scenario is now pre-delivered. That said, you can still follow the steps below in case you would like to map other fields.

In this scenario, we will do the value mapping of Countries in the Integration Suite instead of Sales and Service Cloud Version 2. As I have stated earlier in the blog, currently bulk edit of value mappings are not supported but luckily it does supported in Integration Suite, so we chose to go for the easier way.

Creating Value Mapping



  • Edit your package

  • Click on Add

  • Click on Value Mapping

  • Select Create

  • Enter a name for you mapping

  • For Source type EC

  • For Target type CNS

  • Save and Open the Value Mapping



Once the value mapping is created, we will see an empty mapping screen, in here we can add the values manually or we can simply import the values as a csv file.

  • Open the Value Mapping

  • Do not click Add, instead click on Import directly

  • Select your CSV file

  • Save your changes



To prepare the CSV file, you can follow the steps this blog. If you would like to map the Country field, you can use the CSV I prepared, by copying the values below to a text file and saving it in CSV format.

In the file below we have mapped the nationality field in EC with country field in CNS which is the standard mapping in the message mapping.
,EC|nationality,CNS|country
AF,AFG|,AF
AL,ALB|,AL
DZ,DZA|,DZ
AS,ASM|,AS
AD,AND|,AD
AO,AGO|,AO
AI,AIA|,AI
AQ,ATA|,AQ
AG,ATG|,AG
AR,ARG|,AR
AM,ARM|,AM
AW,ABW|,AW
AU,AUS|,AU
AT,AUT|,AT
AZ,AZE|,AZ
BS,BHS|,BS
BH,BHR|,BH
BD,BGD|,BD
BB,BRB|,BB
BY,BLR|,BY
BE,BEL|,BE
BZ,BLZ|,BZ
BJ,BEN|,BJ
BM,BMU|,BM
BT,BTN|,BT
BO,BOL|,BO
BQ,BES|,BQ
BA,BIH|,BA
BW,BWA|,BW
BV,BVT|,BV
BR,BRA|,BR
IO,IOT|,IO
BN,BRN|,BN
BG,BGR|,BG
BF,BFA|,BF
BI,BDI|,BI
CV,CPV|,CV
KH,KHM|,KH
CM,CMR|,CM
CA,CAN|,CA
KY,CYM|,KY
CF,CAF|,CF
TD,TCD|,TD
CL,CHL|,CL
CN,CHN|,CN
CX,CXR|,CX
CC,CCK|,CC
CO,COL|,CO
KM,COM|,KM
CD,COD|,CD
CG,COG|,CG
CK,COK|,CK
CR,CRI|,CR
HR,HRV|,HR
CU,CUB|,CU
CW,CUW|,CW
CY,CYP|,CY
CZ,CZE|,CZ
CI,CIV|,CI
DK,DNK|,DK
DJ,DJI|,DJ
DM,DMA|,DM
DO,DOM|,DO
EC,ECU|,EC
EG,EGY|,EG
SV,SLV|,SV
GQ,GNQ|,GQ
ER,ERI|,ER
EE,EST|,EE
SZ,SWZ|,SZ
ET,ETH|,ET
FK,FLK|,FK
FO,FRO|,FO
FJ,FJI|,FJ
FI,FIN|,FI
FR,FRA|,FR
GF,GUF|,GF
PF,PYF|,PF
TF,ATF|,TF
GA,GAB|,GA
GM,GMB|,GM
GE,GEO|,GE
DE,DEU|,DE
GH,GHA|,GH
GI,GIB|,GI
GR,GRC|,GR
GL,GRL|,GL
GD,GRD|,GD
GP,GLP|,GP
GU,GUM|,GU
GT,GTM|,GT
GG,GGY|,GG
GN,GIN|,GN
GW,GNB|,GW
GY,GUY|,GY
HT,HTI|,HT
HM,HMD|,HM
VA,VAT|,VA
HN,HND|,HN
HK,HKG|,HK
HU,HUN|,HU
IS,ISL|,IS
IN,IND|,IN
ID,IDN|,ID
IR,IRN|,IR
IQ,IRQ|,IQ
IE,IRL|,IE
IM,IMN|,IM
IL,ISR|,IL
IT,ITA|,IT
JM,JAM|,JM
JP,JPN|,JP
JE,JEY|,JE
JO,JOR|,JO
KZ,KAZ|,KZ
KE,KEN|,KE
KI,KIR|,KI
KP,PRK|,KP
KR,KOR|,KR
KW,KWT|,KW
KG,KGZ|,KG
LA,LAO|,LA
LV,LVA|,LV
LB,LBN|,LB
LS,LSO|,LS
LR,LBR|,LR
LY,LBY|,LY
LI,LIE|,LI
LT,LTU|,LT
LU,LUX|,LU
MO,MAC|,MO
MG,MDG|,MG
MW,MWI|,MW
MY,MYS|,MY
MV,MDV|,MV
ML,MLI|,ML
MT,MLT|,MT
MH,MHL|,MH
MQ,MTQ|,MQ
MR,MRT|,MR
MU,MUS|,MU
YT,MYT|,YT
MX,MEX|,MX
FM,FSM|,FM
MD,MDA|,MD
MC,MCO|,MC
MN,MNG|,MN
ME,MNE|,ME
MS,MSR|,MS
MA,MAR|,MA
MZ,MOZ|,MZ
MM,MMR|,MM
NA,NAM|,NA
NR,NRU|,NR
NP,NPL|,NP
NL,NLD|,NL
NC,NCL|,NC
NZ,NZL|,NZ
NI,NIC|,NI
NE,NER|,NE
NG,NGA|,NG
NU,NIU|,NU
NF,NFK|,NF
MP,MNP|,MP
NO,NOR|,NO
OM,OMN|,OM
PK,PAK|,PK
PW,PLW|,PW
PS,PSE|,PS
PA,PAN|,PA
PG,PNG|,PG
PY,PRY|,PY
PE,PER|,PE
PH,PHL|,PH
PN,PCN|,PN
PL,POL|,PL
PT,PRT|,PT
PR,PRI|,PR
QA,QAT|,QA
MK,MKD|,MK
RO,ROU|,RO
RU,RUS|,RU
RW,RWA|,RW
RE,REU|,RE
BL,BLM|,BL
SH,SHN|,SH
KN,KNA|,KN
LC,LCA|,LC
MF,MAF|,MF
PM,SPM|,PM
VC,VCT|,VC
WS,WSM|,WS
SM,SMR|,SM
ST,STP|,ST
SA,SAU|,SA
SN,SEN|,SN
RS,SRB|,RS
SC,SYC|,SC
SL,SLE|,SL
SG,SGP|,SG
SX,SXM|,SX
SK,SVK|,SK
SI,SVN|,SI
SB,SLB|,SB
SO,SOM|,SO
ZA,ZAF|,ZA
GS,SGS|,GS
SS,SSD|,SS
ES,ESP|,ES
LK,LKA|,LK
SD,SDN|,SD
SR,SUR|,SR
SJ,SJM|,SJ
SE,SWE|,SE
CH,CHE|,CH
SY,SYR|,SY
TW,TWN|,TW
TJ,TJK|,TJ
TZ,TZA|,TZ
TH,THA|,TH
TL,TLS|,TL
TG,TGO|,TG
TK,TKL|,TK
TO,TON|,TO
TT,TTO|,TT
TN,TUN|,TN
TR,TUR|,TR
TM,TKM|,TM
TC,TCA|,TC
TV,TUV|,TV
UG,UGA|,UG
UA,UKR|,UA
AE,ARE|,AE
GB,GBR|,GB
UM,UMI|,UM
US,USA|,US
UY,URY|,UY
UZ,UZB|,UZ
VU,VUT|,VU
VE,VEN|,VE
VN,VNM|,VN
VG,VGB|,VG
VI,VIR|,VI
WF,WLF|,WF
EH,ESH|,EH
YE,YEM|,YE
ZM,ZMB|,ZM
ZW,ZWE|,ZW
AX,ALA|,AX

Utilizing the Value Mapping in the Message Mapping


Now that we have the Value Mapping, it is time to map the fields with the Value Mapping inside the Message Mapping.

  • Open the copied iflow

  • Click on Edit

  • Click on Message Mapping

  • In Processing Tab, Click on Resource





  • In Message Mapping, search for nationality and select it

  • Delete the current direct mapping

  • On the left side, search for valueMapping

  • Select and add the value mapping

  • Map it with the fields

  • In the Advanced Settings, fill the fields as shown below

  • Click OK

  • Save your changes as a version

  • Deploy your integration flow (which should also trigger the integration)



When you check the Message Monitoring on SSCv2 side you should see that your employees have been replicated successfully!

Scenario 2: Manually Triggering Employee Replication via Postman


In standard "Manual Employee Replication from SAP SuccessFactors Employee Central" integration flow, trigger is bound to a timer event, which is triggered via deploying the iflow. Although it is not a big hassle, not everyone has access to Integration Suite so we decided to connect the iflow with an endpoint that we can trigger from Postman.

Preparing the Endpoint



  • Open your copied iflow

  • Click on Edit

  • Click on Event > Start Message then place your start message next to the Timer

  • Delete Timer and connect Start 1 instead





  • Click on Participant

  • Click on Sender and place it

  • Connect it to the Start 1 Message

  • Select HTTPS as adapter type





  • Click on the HTTPS Connection

  • Go to Connection tab

  • Enter an address, which will be your endpoint

  • Click on/off CSRF Protection

    • Recommended to keep it on for production cases

    • For testing purposes we will leave it off







  • Click on Content Modifier - Prepare External Parameters

  • Copy the P_PERSON_ID_EXTERNAL name

  • Delete P_PERSON_ID_EXTERNAL

  • Add a new line and add P_PERSON_ID_EXTERNAL

    • Type: XPath

    • Data Type: java.lang.String

    • Value "//P_PERSON_ID_EXTERNAL"




By keeping the exact same values, we keep it close to the standard.






    • Save a version of changes

    • Deploy




Go to Monitoring > Manage Integration Content and find the endpoint of your integration flow. Which should be similar to https://{your-is-domain}.com/http/EC/CNS/EmployeeManualReplication

Testing the Endpoint


Now it is time to test it on Postman.

The content type will be XML, since integration suite can work directly with it compared to JSON. As we have defined P_PERSON_ID_EXTERNAL as a parameter, we should send it in the body. Do not forget to add the Employee IDs in quotes.
<?xml version="1.0" encoding="UTF-8" ?>
<P_PERSON_ID_EXTERNAL>'12345,98765'</P_PERSON_ID_EXTERNAL>

Send a POST Request to your endpoint. If it passes through Integration Suite, it will return 200 OK. Check the Message Monitoring in SSCv2 to see the replication status.



Scenario 3: Mapping Custom/Extension Fields


In our integration scenarios, most of the time we need to integrate custom fields. In our example scenario, we will map a standard field in SF-EC (which belongs in a collection that is not added in standard mapping) with an extension field in SSCv2.

Modifying SOAP Call to SuccessFactors


For our case we need to get assignmentIdExternal field under Employment Information collection. This field is not available in the standard therefore, first we need to fetch this information from SF, then map it.

  • Open your copied iflow

  • Click Edit

  • Click on SuccessFactors Connection

  • Go to Processing tab

  • Add employment_information to your query.


Now in our SOAP request, we will also get this information.




Modifying Message Mapping for SuccessFactors


In the message mapping, we saw that the collection is already available, but not the field. We need to add this field into the schema so that it will appear in the message mapping.

  • Go to Integration Flow > Resources

  • Download both schemas





  • Open CompoundEmployeeEntityquerySync0.xsd and rename it as CompoundEmployeeEntityquerySync0_cust

  • Locate your relevant collection, by searching a same type field in the same collection

  • Copy the line and change the name. Result should be similar to code block below.

  • Save your changes to the file.


<xs:element maxOccurs="unbounded" minOccurs="0"
name="assignmentIdExternal" nillable="true"
type="xs:string" />




  • Go to Integration Flow > Resources

  • Click Add > Schema > XSD

  • Import your file





  • Click on Message Mapping

  • Go to Processing > Resource




  • Click on the pencil to edit the schemas

  • Click on Replace Icon

  • Select your recently uploaded schema CompoundEmployeeEntityquerySync0_cust

  • Click OK




 

Search for your field name and it should be available in the mapping.



Modifying Message Mapping for CNS



  • Open ECEmployee.json and rename it as ECEmployee_cust

  • In CNS, all the extension fields of an entity is stored under the node "extensions"

  • Search for "extensions"

  • Add your field under extensions>properties as a json object

    • There are two "extensions" tree in the schema, add your field to both.



  • Save your file.


{
"extensions": {
"type": "object",
"properties": {
"ZCHSharingTest": {
"type": "string",
"format": "date-time"
},
"exampleExtensionField": {
"type": "string"
}
}
}
}




  • Go to Integration Flow > Resources

  • Click Add > Schema > JSON

  • Import your file


Now you should have both custom schemas in your integration flow.

  • Click on Message Mapping

  • Go to Processing > Resource

  • Click on the pencil to edit the schemas

  • Click on Replace Icon

  • Select your recently uploaded schema ECEmployee_cust

  • Select API > POST > REQUEST

  • Click OK



In the message mapping search for your fields and map them.


Save your changes as version, then deploy. In the Message Monitor, you will see the new field has been filled out.

Summary


In this blog, together we have covered how to configure Sales and Service Cloud Version 2  Communication Settings, how to activate the Integration Package and finally, how to customize them to suit our needs.

Hope to see you in other technical blogs about Sales and Service Cloud Version 2. Stay tuned!
3 Comments