Export Employee Photos from SuccessFactors (with zero coding) using SAP Cloud Integration
It’s a common requirement to migrate employee photos from either legacy systems or SAP HCM to a SuccessFactors system. There are a couple ways to do it—bulk photo upload through a SF SFTP server or using the OData API.
The first option is the most common approach. You just prepare the employee photos in the JPEG format along with a CSV file that maps between SF username and photo file name. More details can be found in the note 2094242 – Photos: How to Upload and Edit Live Profile Photos.
And if you want to retrieve those employee photos back to the JPG files. You can also get it done by using Integration Center with the attachment option.
Anyway, assuming if you have another requirement to not only export employee photos, but also to construct a CSV file linking between employee ID and employee photo file, or generate more complex file name ouput. Then you have to find another option.
The integration tool that I can think of is SAP Cloud Integration. Because I think it’s quite simple with no coding required where I use the SCI to retrieve employee photo from SF (in the base64 format) and then convert it into a file with JPG format (and anything else…).
- Basic knowledge of SAP Cloud Integration (SCI) & SuccessFactors (SF)
- Access to the SCI, SF, and SF SFTP instances
(1) Retrieve Employee Photo from SuccessFactors using OData API
The Photo entity is used for retrieving employee photos. The following example I specify the user ID and photo type – 1 (Live Profile picture) for testing purpose.
Additional parameters can be found in the SAP SuccessFactors HCM Suite OData API: Reference Guide document.
The actual XML data you will get from this step will look like this. The photo field value contains the employee photo data in the Base64 format.
(2) Get Employee Photo data in Base64
Now I use Content Modifier to get user ID and photo in the message header.
Data Type: java.lang.String
Data Type: java.lang.String
Then I only set photo data back to the subsequent step (because we don’t want the whole XML data, do we?) in the message body.
(3) Base64 Decoder
Basically this step is to convert the base64 data into binary data. There’s no parameter required in this step.
(4) Transfer employee photo file to SFTP server
The output file name is dynamically created based on the user ID we get from the earlier step.
I believe there are many ways to mass export employee photos from a SuccessFactors system. But I hope my blog is helpful in one way or another.
Very good. Thanks for sharing.
Informative blog!! Thanks for sharing.
Nice blog btw! There's another way to achieve what you're doing, namely by using Integration Center built into SuccessFactors to extract the photos or any attachment for that matter. We can do all that without creating an iFlow.
Great stuff, nevertheless. Contact me via email if you need more information.
How do you set configure fields in order to export pictures?
Thanks for the helpful scenario. I've a stupid question, I'm getting always just one picture as a result. How to modify the config to receive more or all pictures?
Hi, I'm looking for help: you can indicate the size in pixels of the image for the employee's profile. I try to upload image of the employees with a size of 900x1000 px and load them blurry.
I want to put a success factors user photo in a master-detail sapui5 wiew. Can you help me to get a code example?
This helps, thanks a lot.