You have an option to do custom development of extension application for SuccessFactors or to go with one of the partner apps which meets your requirement. You can find partner apps in the area of Core HR, Engagement , Learning , Legal and Compliance , Productivity , Security and Privacy and Talent Acquisition etc
Overview of SuccessFactors extensions on SAP Cloud Platform
SAP Cloud Platform is the enterprise platform-as-a-service with comprehensive application development services and capabilities. It enables customers to achieve business agility, create a truly integrated and optimized enterprise, and accelerate digital transformation across the business – all without the requirement of maintaining or investing in on-premises infrastructure.
Quickly extend cloud or on-premises applications to deliver on company goals. Personalize your existing applications or choose from 1000+ pre-built applications from SAP partners that integrate seamlessly with SAP applications. With its comprehensive services and capabilities SAP Cloud Platform provides readily available tools and services to build cloud applications in less time. SAP Cloud Platform is an enabler for simplification, innovation and agility in your digital transformation.
SAP Cloud Platform allows developers and partners to extend SuccessFactors HR capabilities by building new applications. With SAP Cloud Platform, on-prem SAP ERP HCM or SuccessFactors can be extended.
SAP Cloud Platform provides following capabilities:-
Development Environment – the SAP Cloud Platform provides an end-to-end development environment for full-software development lifecycle.
User Experience – SuccessFactors extensions built on the SAP Cloud Platform integrate natively without disruption for the end-user. End-users enjoy the same beautiful user experience from SuccessFactors.
Application Container –SuccessFactors extensions built on the SAP Cloud Platform will allow customers to host their applications, connect and store data from anywhere, and manage the applications from anywhere. This allows IT to not worry about hardware and maintenance, so that they can focus on more strategic priorities.
Integrated marketplace– by having native integration with the SAP App Store – SuccessFactors customers are able to search and find extensions relevant for thecontext of their business challenges – whether its finding an expert in your company or finding a way to implement a new recognition and rewards system.
SAP Cloud Platform as Extension Platform
SAP Cloud Platform is the platform of choice to extend SAP’s cloud solutions or build new next-generation cloud applications.It enables developers to develop loosely coupled extension applications securely, thus implementing additional workflows or modules on top of the existing SAP cloud solution they already have.
SAP Cloud Platform provides a secure application container which decouples the extension applications from the extended SAP solution via a public API layer. This container ensures that extension applications have no impact on the stability of the extended solutions. It also ensures that data access is governed through the same roles and permission checks as those of any other SAP interface.
The extension package for SuccessFactors simplifies many of the system integration challenges, handling aspects such as identity propagation, extension account onboarding, dynamic theming, branding via technical on-boarding process with a click of a button.
With SAP Cloud Platform Neo environment, we can build HTML5 as well as Java applications which are loosely coupled extension application by consuming OData API’s exposed by SuccessFactors or any custom objects build using Extension center framework on SuccessFactors side. SAP Cloud Platform integrates UI extension applications that mimic the SuccessFactors UI with theming and branding using SAP portal service. SAP Portal service uses template which basically Inherits theme and branding from SuccessFactors company settings when configured as a navigation link. So that the footer and header of UI extension will look that of SuccessFactors. Extension applications can also be registered as home page tiles on SuccessFactors.
Extension application will not have any impact on stability of extended solution. By building extension applications, we are keeping core system SAP Cloud solution “SuccessFactors” intact by doing innovation and agile development on SAP Cloud Platform.
We can use the SAP Cloud Platform extension package for both custom development based on the provided SuccessFactors APIs and also for running certified extension applications provided by SAP partner companies.
Go through this white paper to understand why SAP Cloud Platform for LOB extensions
Configuring SAP Cloud Platform, Extension Package for SuccessFactors
Extensibility Management provides you with the tools to setup and manage the integration between SAP Cloud Platform and SAP SuccessFactors. Using SuccessFactors provisioning, you can trigger the automated configuration procedure for SAP Cloud Platform extension package for SAP SuccessFactors, and thus creates an SAP Cloud Platform subaccount, configures security settings and integrated extension management.
Once you have performed the automated configuration of the extension package, you continue with the installation and configuration of your extension applications
Follow on-line documentation for detailed steps on how to do Technical on-boarding
Some of the benefits of using extension package for SuccessFactors are :-
By using extension package for SuccessFactors all configuration steps highlighted below are done out of the box.
Administration & Lifecycle Management
- Automated Technical On-Boarding – connect your cloud solution to your SAP Cloud Platform instance with a click of a button
- Development services for building extensions that are tightly connected and integrated to SuccessFactors by using all the authentication and authorization capabilities of the SAP SAP SuccessFactors
- Solution Deployment, Subscription, and Monitoring
Security & Connectivity
- API Authentication Support from Line of Business to and from SAP Cloud Platform
- Principal Propagation from SAP Cloud Platform to and from Line of Business
- SAML 2.0 Single Sign On
- Delegated Authorization Checks
User Interface Integration
- Harmonized end-user experience across the standard SuccessFactors modules and the new platform extensions.
- User Interface embedding into Line of Business portal
- User Interface rebranding making an extension all look like it belongs
With SAP SuccessFactors, you have the two options for extensions development :-
a) In – App extension
SAP Cloud products are delivered highly configurable which allows to adjust standard SaaS solution to meet your requirement. The SuccessFactors extensibility framework allows users to create and modify objects, screens and add rules within SuccessFactors. All the changes made as part of In-App extensions are within the SaaS solution.
- Extension center “formerly know as MDF”
This extensibility layer allows you to extend SAP SuccessFactors applications from within the application or SAP Cloud Platform. Creation of custom business objects allows further customization of SuccessFactors. It enables system administrators and consultants to create custom objects and screens without the requirement to code. Business analysts, consultants and HR administrators can extend SuccessFactors delivered objects by configuring labels, required fields, pick lists, and adding customer fields to deliver features and functions much faster.
With Extension center, you can create the precise functionality needed to your company’s unique business requirements. You can easily maintain and update the functionality as needed throughout the application lifecycle. You can also integrate changes into your existing business processes, since every MDF object comes ready with an OData API that can both read and write data.
The extensions you create are tightly coupled with EC entities and there is is no duplication of data. They can be consumed both from within EC and from SAP Cloud Platform as OData API’s.
Refer this blog for more details about Extension Center.
b) Side by Side extension
- SAP Cloud Platform
SAP Cloud Platform enables customers and partners to build new applications that integrate with SuccessFactors and SAP on-premise HCM. Customers get access to new HR capabilities and use extensions that integrates with SuccessFactors. It allows you to create new applications consuming OData API’s, recreate your custom applications, and easily extend existing applications.
Using Extension center, you can develop custom objects, automatically expose them to SAP Cloud Platform, and enable them for social media and mobile apps. This allows you to quickly define the data layer inside the SAP SuccessFactors HCM suite. You can then access that data layer and build on top of it by defining complex application logic and creating a feature-rich user interface in SAP Cloud Platform.
Extensibility Foundation – Integration Layers
During the automated configuration, the system creates an SAP Cloud Platform extension account, subscribes it to portal service, enables WEB IDE and also subscribes to extension service.
Infrastructure layer allows Integration of extended solution and SAP Cloud Platform which allows SAP solution administrators to have a consistent experience in managing extensions as an integral part of the product they are responsible for, including but not limited to software lifecycle management, administration of roles, permissions and visibility groups.
The security layer allows you to enable SSO for the extension you are building by using all the authentication and authorization capabilities of the SAP SuccessFactors that you want to extend.
The connectivity layer enables principal propagation and SucessFactors as a role provide to manage the extension you are building to use the same authentication and authorization capabilities of the SAP SuccessFactors that you want to extend.
With tight integration between the SAP product and SAP Cloud Platform allows extension users to get the same seamless user experience as the native product modules to provide embedding and dynamic branding.
Architecture of an extension application
An extension application consists of several layers. It usually has a front-end UI layer decoupled from backend services ,business logic layer ,Persistency layer and connectivity to one or more back-end systems.
Front End: Usually the front end UI layer is implemented using SAPUI5 to achieve smooth retheming and rebranding. SuccessFactors extensions leverage the SAP Cloud Portal to achieve dynamic branding and retheming of extension UIs by using SAP Portal sites configured with a corresponding template to mimic the look and feel of the extended SAP solution.
Business logic: Mainly consists of business logic with OData/REST service and security checks.
Persistency: This layer is optional depending on extension application developed and its storage needs. There are several options for storing data offered by SAP Cloud Platform, including both relational (e.g. SAP HANA and SAP ASE ) and unstructured (document service) data storage options. And also it is also possible to store data in SuccessFactors in the form of MDF object via custom field or custom business objects. This layer basically lets you decide where , when and how to store data.
Connectivity: It connects an extension application to the SuccessFactors instance and to other required back end resources. All the back-end calls are performed on behalf of the user who is logged on to the extension front-end layer.
How does Typical extension application look like ?
The above architecture diagram represent typical set-up of extension application, You have Java or HTML5 extension application running on SAP Cloud Platform which consumes OData API’s from the SuccessFactors. At the end extension application is configured as tile or navigation link on SuccessFactors side, So that end users access the extension application directly from the SuccessFactors even though application runs on SAP Cloud Platform.
Note:- The above diagram only depicts scenario of embedding extension application on SucessFactors side.
What are development Options for SAP SuccessFactors ?
- Custom development
- Certified partner applications
Refer this blog to learn more about SAP Apps center
An extension account is a customer or partner SAP Cloud Platform account which is configured to interact with a particular SAP solution through standardized destinations, usually with identity propagation turned on. So if you have 2 tier landscape like development and Production for SuccessFactors then you will have 2 SAP Cloud Platform accounts paired with respective SuccessFactors instances as depicted in option a . There is always one-on-one pairing between SAP Cloud Platform and SuccessFactors instance.
Option a: Custom development option
Customers can develop and run their own, home grown extensions. In that case, these applications are deployed, run and operated completely in the own extension accounts.The above diagram in option a depicts the typical landscape setup that companies adopt i.e development environment, quality and productive. By having multiple staging accounts help companies to manage properly the development life cycle of their business applications. With SAP Cloud Platform this is achieved by creating multiple accounts dedicated and administrated for each stage and purpose. These accounts shall be configured and paired with the respective SuccessFactors system.
Option b: Subscription Model – Multitenant application set-up.
if customer wants to adopt an application developed by Partners , then you can go with a provider-consumer deployment model . With this model, the application is deployed and runs in the Partner environment and customer account simply subscribes to the application as depicted in option b.
In case of multi tenant application you will have two accounts, one acting as provider account where extension application resides and runs and other is consumer account which basically subscribes to the provider application.Deployment and operation of the application are done by the partner company.
Extension Solution’s Lifecycle Management
SAP Cloud Platform provides with capabilities to package extension application components in one specifically structured bundle, and deploy in one go into the productive environment.
There are 3 possible ways to manage lifecycle of an extension application:-
- Solutions: You can deploy your extension application as a solutions via the SAP Cloud Platform Cockpit. You can package all artifacts that are needed for your extension solution – Java applications, HTML5 application, database bindings, Destinations even SuccessFactors roles and home page tiles into MTA archive file and then just upload the MTA archive in your account and by providing the extensions descriptor file. More preferred option for SuccessFactors extension application deployment which can used in both standalone mode deployment in case of custom development “option a” as shown above in the typical landscape section or subscription mode in case of partners “option b” as shown above in the typical landscape section.
2. CTS+: Another option is to use the well known CTS+, The Enhanced SAP Change and Transport System (also known as CTS+) is used to transport and promote a solution among different environments or landscapes. You can deploy one or several MTA archives to your account in one go.
3. Console client:Using console client command, named “deploy-mta”, you can deploy one or several solutions in one go via scripting.
SAP Cloud Platform console client is part of the SDK and you need to install locally.
Possible extension applications that can be build for SuccessFactors Solutions are:-
- SuccessFactors In-App extension – Create MDF Object and expose it as OData service
- UI extension on SAP Cloud Platform by consuming API from SuccessFactors
- Mash-up extension scenario(UI5/Java Data persistency /Jam Collaboration / Roles)
- Integration scenario – SAP Cloud Integration / SAP Cloud Connector / Smart Data Integration
- Analytical scenario on SAP Cloud Platform by using replication data from SuccessFactors , on-premise systems or 3rd party systems.
- And many more…
Note:- Please note above scenarios are just some examples. It is no means full pledged complete list or recommended scenario’s.
Supported API’s on SuccessFactors
The extension applications interact with the extended SAP SuccessFactors system using the HCM Suite OData API. The HCM Suite OData API is a RESTful API based on the OData protocol intended to enable access to data in the SAP SuccessFactors system
SuccessFactors supports both OData and SOAP API’s, depending on your development or Integration scenario you can choose API that suits your requirement.
You can find a list and implementation details of the APIs supported by SAP SuccessFactors HCM Suite on SAP Help Portal, at OData API’s.
If your scenario requires the retrieval of SFSF data that is not provided by the HCM Suite OData API, you can retrieve such data using the HCM Suite SFAPI which are based on the SOAP protocol. Refer SFAPI Online help for further details. SFAPI’s are mainly used for data replicate scenarios where you want to replicate SuccessFactors data to downstream 3rd party systems.
There is 3rd type of interface supported by SuccessFactors which are events triggered by a business event in SFSF. The SuccessFactors product can trigger and publish an event, such as manager, employee, and job information changes, employee absences, or new hires and terminations. To respond to an SFSF event you must configure a service to be called when the event occurs. This service can be REST or SOAP based. Whenever that event is triggered by SFSF, those subscribed services are called with information relevant to the change. Ideally the SAP Cloud Platform will be used to develop the service be called with the event occurs. The time off extension application is a good example of how you can use intelligent services to build an extension. What it does is listen for time off events, update the user’s Google calendar when they occur.
Note: Manual configuration step is required in order for extension application to subscribe to an intelligent service event on SuccessFactors instance.
To learn more about SuccessFactors intelligent service click here.
Hopefully this blog gave you very high level overview about SAP Cloud Platform, various extension options, extension layers and how it is all integrated, typical landscape set-up and how solution deployment is done in case of SuccessFactors extension on SAP Cloud Platform. if your still interested in learning more about SAP Cloud Platform and SuccessFactors extensions refer links below in reference links to take it to the next level.
Happy Learning !
Want to learn more about SuccessFactors extensions on SAP Cloud Platform
Thank you Manju Venkatesh. I appreciate you describing the full architecture of SuccessFactors Extensions. The "big picture" with lots of pictures is very helpful.
The addition of the SAP App Center has real potential to change the way solutions from partners are marketed, sold and delivered.
Thanks for sharing this detailed blog.
However the link to OData API explorer (https://help.sap.com/viewer/DRAFT/d599f15995d348a1b45ba5603e2aba9b/1802/en-US) does not work and displays an error that I do not have permission to view this content.
Could you please update the link?
Thanks for the blog. It was a good read and knowledgeable.
Now as partners we do have Succesfactor license and are using Integration Center for all integrations as of now. We are planning to shift to CPI for all integrations. Is there any guideline for same.
We have Build SAP SuccessFactors Extensions as an SAP Partner which helps you on building integration/extensions as well. Feel free to leverage next time you want to extend SAP SuccessFactors functionality and sell it on SAP Store.
Please check the following blog post - One-Stop shop mission for SAP SuccessFactors Software Partners | SAP Blogs
This link is broken, you may share which one is correct.
Follow on-line documentation for detailed steps on how to do Technical on-boarding
By the way, great blog!