Extension Center enables simplified creation and management of Generic Objects and their component parts, called Extensions.
Extension Center offers a one-stop shop to create and maintain all MDF Extensions. You can view and change a Generic Object and all entities that interact with that object—such as rules, workflows, and Configuration UIs. You can also create new entities. The following figure shows the Extension Center homepage.
Extension Center incorporates all the transactions needed to build the component parts of an Extension and publish your overall Extension for use in the SAP SuccessFactors system. It also gives you a holistic view of your extensibility assets in one central location, including the different objects used in Extensions. In this blog post, we’ll cover the basics of Extension Center, including scenarios for creating Extensions, components of an Extension, parent and child associations, and using Extension Center.
Extension Center is accessed in Admin Tools under Company Settings.
Scenarios for Creating Extensions
Extensions are typically created for one or more of the following purposes.
Custom Foundation Objects
Extensions can be used to add additional org structure objects (e.g., a Subdivision or Regional Location) or to add other Foundation Objects.
Custom Person or Employment Objects
Extensions can be created to add to the People Profile. There are many use cases, such as Tuition Reimbursement or Objects on Loan.
Data about business objects can be stored. For example, you can store data about different assets or detailed data on projects. This use case applies for SAP SuccessFactors to store benefits data and work schedules, for example.
Extensions can be used as lookup tables for other functionality. For example, you can look up workflows by attribute or user to run a check on attributes when running rules or calculations. Time Off uses lookup tables for storing seniority data.
Tables to store configuration data for applications such as Time Off or global assignments are reasonably common. For Global Assignments, they may be screens of configuration settings, whereas for Time Off or Benefits, they could be objects that determine what time types or benefit programs are used.
As you can see from the sampling in the previous list, there are many custom and standard use cases for Extensions.
In the figure below, a custom Extension for Company Property Log has been created in the People Profile of Peter Stauffacher.
Let’s now take a look at the components of an Extension.
Components of an Extension
Extensions are always made up of an Object Definition, but they may be made up of a number of MDF components based on the business requirements of the Extension.
These components include the following:
With the exception of UIs and the workflow and rules objects themselves, the remaining components are actually part of the Object Definition. However, in Extension Center they are broken out to enable logical grouping of components and attributes for configuring Extensions that make more sense to the user.
In addition to these components, the following are other objects that in some cases need to be created as part of the Extension:
- Business Rules
- Workflow Configurations
- Configuration UIs
In Extension Center, all these components can be created as part of the Extension creation process. The next figure shows the architecture of an Extension showing all objects in the system that form part of an Extension, along with related components to the right of these objects. For example, you configure Rules as part of the Generic Object, but these are references to actual Business Rule objects. Likewise, Workflows can be assigned using rules in the Rules component on an Extension.
Before we take a brief look at creating an Extension, let’s discuss parent and child associations, which will impact Extension design.
Parent and Child Associations
Sometimes—particularly for self-service Extensions—it’s normal to use a single parent Generic Object in an Extension for an employee record and have a child Generic Object used to store multiple records for that employee record. For instance, in the Company Property Log Extension example shown earlier, two Generic Objects are used as part of the Extension. One Generic Object is used for the Company Property Log Extension parent object itself, and a second child Generic Object stores each Company Property record that is created. Each of these child records are linked to the main Company Property Log Generic Object. Both objects form part of the same Company Property Log Extension.
This means that a single record can be kept for an employee for a fixed or permanent period, but multiple child records can be created as needed. The system also provides a logical method of storing transactional data against an employee. However, there are many use cases when one or more child Generic Objects can be used. It’s worth looking at some of the SAP SuccessFactors-delivered Generic Objects to understand how such scenarios play out in practice.
Using Extension Center
Extension Center is accessed in the Admin Center by selecting Extension Center in the Company Settings menu. We saw the homepage of Extension Center in the first figure above. The homepage displays all Extensions in the system, which can be displayed as tiles (the default view) or as a list. Both MDF Extensions and SAP Business Technology Platform Extensions are managed here. It’s possible to search through your Extensions and their components using the search box.
To view details of an Extension, click on the tile of that Extension to go to the Extension Detail screen for the Extension, as shown here.
As well as viewing details of the Extension, we can also make changes here and publish or republish the Extension so it can be used in the instance.
There are two tabs located below the Description box that enable you to view all the Generic Objects (Object(s)) or all Picklists (Picklist(s)) that are part of the Extension. You can then select any of those General Objects or Picklists to view more details about them.
Next to the search box, there are three icons. The first two enable you to view all the Generic Objects and Picklists as tiles or a list, respectively, just like with the Extension on the homepage of Extension Center. The third button, called Entity Relationship View, displays the relationships of all Generic Objects and Picklists in the Extension. You can see this in this figure.
Editor’s note: This post has been adapted from a section of the book SAP SuccessFactors Employee Central: The Comprehensive Guide by Luke Marson, Rebecca Murray, and Brandon Toombs.