Skip to Content
Technical Articles

Building Extensions for SAP SuccessFactors using APIs

Hi,

Creation of cloud-first applications to extend core LoB solutions continues to be a hot topic.

One such LoB solution is SAP SuccessFactors.

OData APIs have been available for some time but how best to make use them? This is particularly true for side-by-side scenarios requiring enterprise grade authentication and authorization including single sign-on.

You might be wondering where to start and exactly which technology components get used where and exactly how to fit them all together?

We’ve just published a new tutorial series covering a very simple end-to-end sidecar extension scenario which you can access here:

Building Extensions for SAP SuccessFactors using APIs Playlist

The scenario involves highlighting the location of US-based candidates on an interactive map:

Tutorials cover everything from getting started to deploying the finished extension application.

Components used include SAP API Business Hub, SAP Cloud Platform including extension factory, Node.js and Cloud SDK.

So whether you’ve already got a scenario in mind and want to get going or you’re simply interested in seeing exactly how to get started hopefully these videos will be of use.

You can access the tutorials directly as follows:

Code snippets used in the video tutorials are posted to GitHub

If you’re new to SAP Cloud Platform itself then you might also want to check out our onboarding video tutorial series which should hopefully get you up to speed pretty quickly.

Subscribe to the SAP HANA Academy YouTube channel for updates or join us on LinkedIn: linkedin.com/in/saphanaacademy

Good luck in creating your own extension applications in SAP Cloud Platform and let us know your feedback in the comments section below!

Philip

/
9 Comments
You must be Logged on to comment or reply to a post.
  • This is awesome – Philip MUGGLESTONE . I was exploring the same with another colleague and had issues around the Destinations. Will now follow your videos to get it resolved. One question – any reason for not using SAP WebIDE to create a MTA project?

    Great work as always.

    • Hi Murali,

      Thanks for the kind comments and glad to know the tutorials are proving useful.

      We chose to focus on local development for this scenario because of the support for SAP Cloud SDK from VSCode – code complete in particular.

      Going forward we hope to use SAP Business Application Studio once it becomes generally available.

      Thanks,

      Philip

  • Hi Phillip,

     

    Nice blog for making a start with SF extension factory.

    I tried all the steps and was able to successfully deploy application. however executing application takes me to XS authentication rather than SF login page.

    I tried the same by deploying the same package in git-hub as well, but doesn’t solve the problem. as current setup, I have only SF as trusted IDP for my account.

    Trust Configuration and XSUAA binding:

    Also, all the services on this account takes SF as IDP and requires user to login with SF user .
    can you please help me if i am missing anything here.

    Thank You
    Ishaan

    • Hi Ishaan,

      Thanks for watching and your nice feedback.

      It sounds like your cloud foundry org name may not be the same as the subaccount subdomain? See Adapt App for SSO @ 14mins.

      Otherwise probably something went wrong when configuring the trust between SCP and SuccessFactors. See Configure Trust for SSO.

      I recommend to double check all the settings are consistent with the videos.

      If you’re still having issues it’s probably best to open a support ticket.

      Thanks,

      Philip

      • Thanks Phillip,

         

        Yes you are correct, Cloud Foundry orgname and Subaccount subdomain name are different in my case.

        is this a mandatory condition to have these names exactly same or we have a work around ?

         

        Thank You

        Ishaan

        • SOLVED !!!

          We had cloud foundry org name different to subaccount subdomain name. I created new subaccount having same name as subdomain and tried the same with that.

          however we were facing same issue. I noticed that other deployed apps were taking SF as IDP but not this one.

          IDP redirection for SFSDKAPP was goining to authentication.eu10.hana.ondemand.com (shared one). for other apps IDP was going to subacountnameauthentication.eu10.hana.ondemand.com .

          changed tenant-mode to dedicated in xs-security.json file and then it starts taking authentication mechanism for respective sub-account.

  • Hi Philip,

    Awesome blog, thank you.

    I tried to convert this to a Multitenant App and after hosting in the subaccount I am encountering the below error in the hosted subaccount. The UI opens without any error but the get candidates fails with error message “get request to https://api5.successfactors.eu/odata/v2 $failed! “.

    Log from the sfsdksrv

    [
    	{
    		"message": "Unable to build destination for service binding: Service of type sap-successfactors-extensibility is not supported! Consider providing your own transformation function when calling destinationForServiceBinding, like this:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });",
    		"level": "warn",
    		"custom_fields": {
    			"package": "core",
    			"messageContext": "destination-accessor"
    		},
    		"logger": "sap-cloud-sdk-logger",
    		"timestamp": "2020-02-16T15:19:00.086Z",
    		"msg": "Unable to build destination for service binding: Service of type sap-successfactors-extensibility is not supported! Consider providing your own transformation function when calling destinationForServiceBinding, like this:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });",
    		"written_ts": 1581866340086,
    		"written_at": "2020-02-16T15:19:00.086Z"
    	},
    	{
    		"message": "Unable to match a specific XSUAA service instance to the given JWT. The following XSUAA instances are bound: xxxxx. The following one will be selected: xxxxxx. This might produce errors in other parts of the system!",
    		"level": "warn",
    		"custom_fields": {
    			"package": "core",
    			"messageContext": "environment-accessor"
    		},
    		"logger": "sap-cloud-sdk-logger",
    		"timestamp": "2020-02-16T15:19:00.212Z",
    		"msg": "Unable to match a specific XSUAA service instance to the given JWT. The following XSUAA instances are bound: xxxxxx. The following one will be selected: xxxxxx. This might produce errors in other parts of the system!",
    		"written_ts": 1581866340212,
    		"written_at": "2020-02-16T15:19:00.212Z"
    	}
    ]

    Thanks,

    Thanu

  • Hi Philip,

    Excellent blog, I’m stuck with Extension Factory Pairing step.

    After the enter Integration Token and click the add button in SuccessFactors in the provisioning companies account, below error message, is deployed

    Error: An unexpected error occurred. Report an SAP incident in SAP ONE Support Launchpad, component BC-NEO-EXT-SF.

     Error id: afe350e6-e53a-4eb0-b143-4089fbeb741c

    I tried to search the component(BC-NEO-EXT-SF) in SAP Incident, the component isn’t found.   Regarding these issues, I created ticket SuccessFactors in Support engineer reply check with  SAP IT Team.

    Can you please help me to resolve this issue?

    Thank you

    Jagadish