Create HTML5 based SuccessFactors extension app using SAP Cloud Platform – Part 1
In this blog, I am going to share my experience on extending SuccessFactors using SAP Cloud Platform. Over the last few weeks, I had several queries on this topic – Which services in SAP Cloud Platform are required for SuccessFactors extension, where does the extension app get deployed, how do we setup trust between SAP Cloud Platform and SuccessFactors. I myself had couple of questions on how to go about creating a HTML5 based extension app. These questions seemed to be very basic, but for some reason I couldn’t find a comprehensive blog which covers these topics. I will try and explain this in simple terms assuming that people with either SuccessFactors or SAP Cloud Platform knowledge would want to know more about this approach.
Before I get started, here are some useful links to bookmark.
- SAP Cloud Platform, Extension Package for SAP SuccessFactors
- OpenSAP Course – Extending SAP SuccessFactors with SAP Cloud Platform
- SAP SuccessFactors Extensions on SAP Cloud Platform – for Developers
There are also couple of tutorials published in GitHub which show how to build an extension app using Java/SAPUI5.
When you go through the above links, you will notice that they are more relevant when building Java based applications. This would require installing the Command Line Interface which would be used to deploy the app, create destinations in SAP Cloud Platform cockpit and even to create tiles in SuccessFactors homepage.
There are few limitations of using HTML5 apps as compared to Java apps. This is documented in the overall process.
I was dealing with a customer’s requirement that was very simple. Create a HTML5 app which consumes SuccessFactors OData APIs and integrate it within the SuccessFactors homepage. The customer didn’t want to use Java application and hence there was no need to setup Command line interface.
Here are the steps which I have followed. If you plan to do all these steps, you would need access to a SAP Cloud Platform account as well a SuccessFactors tenant for which you have all the relevant admin roles.
Creating and configuring SuccessFactors extension subaccount
Navigate to the SAP Cloud Platform global account. In the below screen capture, the name of my Global account is “Trivia”. There is one subaccount with the same name too.
Click on “Integration Tokens” from the menu. By default there would be no entries.
Click on “New Token” to generate an integration token. Make a note of it.
Navigate to the SuccessFactors Provisioning interface and select the Company name.
Navigate to the “Extension Package Configuration” as shown below. You would need to provide the integration token generated earlier. This will trigger the provisioning process.
In few minutes, you will see the status of an extension SAP Cloud Platform subaccount which has been created
If you switch back to the SAP Cloud Platform global account, you will notice that a new subaccount has been created for you. It contains the Company name by default. You can use the pencil icon to change the name of this subaccount.
When you select this particular subaccount and navigate to the cockpit, you will notice that Trust configuration with SuccessFactors tenant has already been defined.
In the Application Identity Provider, SuccessFactors tenant has been registered as the Identity Provider. This means, if I try to launch any application or even SAP Cloud Platform services, it will authenticate me using SuccessFactors credentials.
Next thing which needs to be done is to navigate to SAP WebIDE service and select “Configure Service” link. You need to ensure that you assign the predefined role “Everyone” to WebIDEPermission permission. Only after doing this step, you will be able to launch SAP WebIDE.
Finally, we need to create a destination which will be used by the extension application.
Below are the values I have provided for the above destination.
|Token Service URL||https://apisalesdemo2.successfactors.eu:443/oauth/token|
|Client Key||<oAuth API Key>|
|assertionIssuer||<oAuth API Key>|
The oAuth API key can be obtained from SuccessFactors. I will show you how to obtain the API Key from SuccessFactors in the next part of this blog series.