Integrating MDF and Master Data (FO/GOs)

Objective

After completing this lesson, you will be able to describe FO/GO fields in Recruiting.

Introduction to the Metadata Framework

The Metadata Framework (MDF) is SAP SuccessFactors' robust extensibility framework that enables customers to extend HR cloud functionality to create company-specific objects that support their unique business processes, without the need to code. Some of these database objects can be leveraged for use in other SAP SuccessFactors HCM modules, so they do not need to be duplicated, and the field values stay in sync.

All the tools used to manage MDF Objects are within Admin Center.

With MDF, you can create and manage database object definitions, object relationships, and object hierarchy. The object is like a container that contains a list of fields. The fields are the attributes. Up to 200 custom fields are supported.

Generic Objects (GOs) are used to store information and settings related to processes that allow you to work with people in the company more efficiently. This can include information like Org Structure, Position Management, and so on. Generic Objects are created using the Metadata Framework and are maintained in Admin Center.

Foundation Objects (FOs) are used to set up data that can be shared across the entire company, such as Location. Foundation objects are contained and configured in the Corporate Data Model XML. Eventually, all FOs are expected to be converted to GOs and will be available for update directly in Admin Center.

MDF integrates with role-based permissions (RBP), so that companies can manage who has access to and track who has modified objects that are created in the Metadata Framework.

MDF is tightly integrated with the rules engine so that simple business logic can be used to set values for fields on requisitions and offers, trigger messages, perform calculations, and more. Customers can run reports on objects created in the Metadata Framework.

Effective Dating is an important concept for MDF objects and data. It is possible to create a job requisition with fields of type FO/GO whose values are currently inactive, but will become active in the future. For example, a hiring manager can start the hiring process for a new location that will become active on a future date.

Customers can import and export data from third-party systems. Company-specific objects created with MDF come with out-of-the-box support for OData REST APIs so that customers can quickly create new UIs or integrate them into their existing UIs.

Introduction to Master Data

To enable process efficiency, Recruiting now provides the capability to reuse the data defined in other modules using Foundation Objects (FOs) and Generic Objects (GOs), also called HR "Master Data" objects. This avoids the need for duplication of data, which provides seamless transmission of field values between products. For example, you can now reuse the Org Structure defined in Employee Central without creating a copy of it in Recruiting Management. In addition, there is no need to have employees in a location to have that location available in Recruiting. Master Data allows data to stay in sync between product pillars.

Employee Central (EC) is not required to use Master Data. However, additional functionality is available for customers who have enabled Employee Central (EC). For example, in an EC environment, customers can reference the FO/GOs that have been defined in the People Profile. In a non-EC environment, values for fields such as Location, Division, and Department are still derived from the User Data File (UDF).

The standard FO/GO type fields that are available for use in Recruiting are as follows:

Object NameTypeField Id
Legal EntityGOlegalEntity_obj
Business UnitGObusinessUnit_obj
DepartmentGOdepartment_obj
DivisionGOdivision_obj
Cost CenterGOcostcenter_obj
LocationFOlocation_obj

Below is an example of FO/GOs on a job requisition:

Screenshot of FO/GOs on a job requisition with dropdown menus to select Legal Entity, Business Unit, Cost Center, Division, Department, Location, and Custom Field (GO)

Custom fields of type FO/GO can also be defined using MDF.

Additional information about the use of Foundation Objects/Generic Objects in Recruiting are as follows:

  • FO/GOs are recommended for new implementations.
  • Currently, foundation object/generic object field types are supported on the Job Requisition, Offer Approval, Candidate Profile and Application.
  • Some object/generic object fields can be configured to use the multi-select attribute. For objects that are defined as multi-select, the type ahead feature is available for end-users to easily find the object value they wish to insert into the field upon completion.
  • The FO/GO field types can be maintained by using Manage Templates.
  • The standard FO/GOs can be used as filter fields.
  • Field values are available as tokens to be used in offer letters and emails.
  • Fields are reportable in Ad Hoc reporting.
  • FO/GOs are available to the Rules Engine to be used with simple business logic.
  • FO/GOs used in Recruiting can be used to send data to Employee Central and Onboarding.
  • Versioning, effective dating, and the ability to import and export FO/GO data are all supported.

Use Case of Training

In this use case, you will learn how to configure and use the Generic Objects Division and Department.

Screenshot of Division and Department dropdown menus

Division and Department objects exist in the system and are available when MDF is enabled. The relationship between the two needs to be defined from Admin CenterConfigure Object Definitions.

The specific Division and Department data required by the customer are created from Admin CenterManage Data.

DIVISIONDEPARTMENT
OperationsEngineering
CorporateHuman Resources
CorporateStaffing
CorporateFinance
SalesSales

Note

Initial settings in backend system are required.

Enable Role Based Permissions

For the administrators who will work with GOs, enable the following options from Admin CenterManage Permission RolesAdministrator Permissions:

  • Metadata Framework: Configure Object Definitions, Manage Data, and Read/Write Permissions on Metadata Framework. Additional options can be selected as well.A screenshot of the Metadata Framework section ,showing options to select, including Configure Object Definitions, Manage Data, and Read/Write Permissions
  • MDF Foundation Objects: Select all options for Department and Division except for Field Level Overrides. These permissions are required in order to add and edit data for the Generic Objects and to use the GOs on a job requisition. See additional details under Object Level Permissions.A screenshot for MDF Foundation Objects showing that all options are selected for Department and Division except for Field Level Overrides, which is unchecked.

View Object Definitions

The Division and Department GOs exist in the system as soon as they are enabled. View these objects from Admin CenterConfigure Object Definitions.

A screenshot of the Configure Object Definition section shows data under Object Definition: Division.

Note

Additional fields can be added, if required by the customer.

Associate the Division and Department Objects

Associations define a hierarchical relationship between two objects. Without associations, all objects are on the same level. The relationship between objects can be One-to-Many or One-to-One.

  • One to Many relationship – A Division consists of several Departments, so you create an association of one Division to many Departments
  • One to One relationship – A Location can only have one geozone associated with it

There are two types of associations:

  • Valid When Associations allow data for objects to be connected, but leave the objects as separate entities. This is often used in Foundation Object relationships to create filtering capabilities between records. For Valid When associations, the associated object has its own lifecycle and exists even without the object that is being defined.
  • Composite Associations create a parent-child relationship between two objects. For this association type, the entity being associated is a child entity that does not exist outside the parent object that you are defining. If an object is referred as a composite child in an object, it cannot be used as a top-level object, and records cannot be created separately for the child object.

For our Division and Department use case, use a Valid When Association. Associations are configured from the child object, which is the Department. Navigate to Department from Configure Object Definitions.

From the right side of the page, from the Take Action list, select Make Correction:

Make Correction is selected on the Take Action menu.

Scroll down to Associations.

A screenshot of the Associations section with 'cust_' typed in the second line.

Start typing in the second line, which contains the text: cust_. Enter the following information:

  • Name = cust_to_division. (Note that "Name" is actually the "ID", not the label.)
  • Multiplicity = One to Many.
  • Destination Object = Division.
  • Type = Valid When.
  • Choose the Details link.
  • Label = Division.
A screenshot showing Division in the Label field of the Details section.

Save both the Details and the Object.

Output:

The screenshot shows a list of associations with their properties, notably highlighting cust_to_division, which connects One To Many to Division and is marked Valid When.

OData Refresh

If you change an association, you will receive the following message, also shown in the screenshot below:

You have renamed the association [cust_toDivision]. This may cause reference loss in rules/RBP /Configurable UI screen definitions. Please update those references manually. Click yes to save.

A screenshot of the message you receive if you change the association

To resolve this, do an OData Refresh. Do the refresh for similar types of changes, for example, if you add a new field to the job requisition template that impacts business rules.

From Admin CenterOData API Metadata Refresh and Export:

A screenshot of the Admin section shows the OData API Metadata Refresh And Export section with The Refresh Metadata Cache option.

Create Divisions Data

Use Manage Data to populate the Divisions field. This may be referred to as Divisions data or instances.

For this use case, create the following structure: three Divisions and five Departments:

DIVISIONDEPARTMENT
OperationsEngineering
CorporateHuman Resources
CorporateStaffing
CorporateFinance
SalesSales

Navigate to Admin CenterManage Data.

Search on Division and from the second list notice that no records are found.

From Create New at the right side of the page, use typeahead to select Division.

A screenshot of the Create New search field, with 'div..' as input,which triggers the full word to appear, Division.

Enter the following:

  • Effective as of: 01/01/1900.
  • Code: Operations.
  • Name: Operations.
  • Status: Active.

Save the Division data.

A screenshot of the Division Operations forms with fields for effective date, name, description, status, head of division, and parent division

Create the other two Divisions in the same way: Corporate and Sales.

Create Departments Data

As you create the five Departments required for our customer, associate them to the three Divisions.

From Admin CenterManage Data, choose Create New and select Department.

A screenshot of 'depart...' typed in the Create New field, prompting the full word, Department, to appear

Enter the following:

  • Effective as of: 01/01/1900.
  • Code: Engineering.
  • Name: Engineering.
  • Status: Active.
  • Division: Operations.

Save the Department data.

A screenshot of a Department page with fields to complete for effective date, code, name, description, status, head of department, parent department, and cost center

Create the other four Departments in the same way: Human Resources, Staffing, Finance, and Sales. Associate them with the Divisions listed.

Configure the Job Requisition Template

The FO/GO type standard fields for Division, Department, and Location are not a replacement of the existing Division, Department, and Location non-FO/GO type standard fields on the Job Requisition and Offer. Both types of fields co-exist until one of them is explicitly disabled. In this part of the use case, add the GO field types for Division and Department to our job requisition template, and remove the non-GO field types for those fields. Additional steps will be performed later to use the GO versions of these field types.

There are six new standard FO/GO type fields available for the requisition, listed below.

Generic Objects:

  • Legal Entity: legalEntity_obj
  • Business Unit: businessUnit_obj
  • Department: department_obj
  • Division: division_obj
  • Cost Center: costCenter_obj

Foundation Object: Location: location_obj

This is how the field id and object are defined for Division and Department on the JRDM:

Two fields labeled department_obj and division_obj of type object are shown in sections titled Standard Field, with labels Division below each Field ID, and various field settings.

There are two tags available in field-criteria:

  • sourceFieldName
  • destinationFieldValue

The sourceFieldName is the name of the association configured in MDF: cust_to_division plus ".internalId". For example, the sourceFieldName = cust_to_division.internalId.

The destinationFieldValue is the field ID of the parent field as defined on the JRDM. For example, the destinationFieldValue = division_obj.

Remember to remove the original, derived, Division and Department fields and permissions from the job requisition template and add the permissions for the new GO fields.

Define Template Role Permissions – on the Job Requisition Template

The following types of permissions for the job requisition are available:

  • Template role permissions
  • Object level permissions
  • Target population

These permissions are executed in a specific sequence. At any point in time, if one of these permissions fail, the next set of permission are not executed.

Template role permissions are set, as always, to determine the read or write access that an operator has to a field on the job requisition. Valid requisition states include pre-approved, approved, and closed. If the required template role permissions are not defined, you will not see the field.

The example from the use case where the Recruiter can edit the Division and Department GO fields when the requisition is in the pre-approved status:

The screenshot shows the Field Permission section with fields to configure. The status is set to pre-approved.

Remember to set read and write permissions for the new GO field types for all operators and all requisition statuses on the job requisition.

Define Object Level Permissions – in Role Based Permissions

To use FO/GOs on a job requisition, you must first grant permission for each object. There are several permissions that can be granted to an object:

View/View Current – If you do not select this permission, the field label will be visible on the UI (requisition form), but the input field associated with it will not be visible. When the View Current permission is granted, clicking the business card next to the field will bring up a pop-up displaying information about the object.

Create – Granting the Create permission to an object displays the option to create a new object instance (data). Once the Create permission has been granted, a create icon is displayed next to the input field associated with the object. Click this icon to create a new instance (data) for this object.

Correct/Delete – Granting the Correct/Delete permission to an object displays an option to edit and manage an object. From the business card, click Edit to make the changes to the object instance from the same page, or click Manage to view the data on the Manage Data page. You can also go directly to the Manage Data page to edit the data.

A screenshot shows that a business card icon next to the Division field is selected, which triggers a popup with division details, such as effectiveness, code, name, and status, along with edit and manage options.

Earlier in the use case, you set these permissions for the admin users from Role-Based Permissions.

A screenshot of the MDF Foundation Objects section with options to select permission settings

Object level permissions also need to be set for any users who will create or edit job requisitions, so for our use case, that’s all hiring managers and members of the staffing department. This allows the users to see the field. Remember that permission to read or write is granted in the job requisition.

The image shows MDF Foundation Objects permissions with checkboxes for Department and Division's visibility:View Current, View History, and actions to select: Create, Insert, Correct, Delete, Import/Export.

Define the Target Population

After you have defined permissions for the FO/GOs, the next step is to define the target population of users who will have access to the object. This is part of Role-Based Permissions, not specific to Recruiting. For the use case you don’t need to do this step.

Test – Populate the FO/GOs on a Job Requisition

Log in to SAP SuccessFactors HCM and navigate to Recruiting as a user who has permissions to create and edit job requisitions and FO/GO fields.

Create or open a requisition form.

Ensure that:

  • You are able to populate the new Division and Department fields.
  • The fields are correctly associated with each other (for example, if Operations is selected for Division, the only option for Department is Engineering).
  • The user can choose the business card to access the Edit and Manage options.
A screenshot shows the following: Corporate in the Division input field and Human Resources in the Department input field.

Setting the Visibility of FO/GO Fields Recruiting

Options from Manage Recruiting Settings control the visibility of fields on the Job Requisition Summary page, using Display Options and Filter Options.

A screenshot using display and filter options for the job requisition shows Human Resources under Department and Corporate under Division.

These settings also control the visibility of the fields in the following scenarios:

  • Manage Recruiting E-Mail Template
  • Manage Offer Letter Template tokens

From Admin CenterManage Recruiting Settings, select the following to enable the FO/GO fields:

Checkbox settings for GO/FO field types. ''Enable Generic Object/ Foundation Object (GO/FO) field types is selected, and under that, options to enable Department Object and Division Object are selected.

Also make the following change to disable the standard fields:

The checkbox is selected next to the following field: Disable Department, Division, and Location filter options on Job Requisition tab.

Internal and External Career Search Settings

The standard FO/GO fields can also be used as filters (career search) fields. Select the desired fields from Admin CenterInternal and External Career Search Settings, and clear the derived fields.

A screenshot showing options to select checkboxes and numbers for four categories: Legal Entity (0), Department (5) checked, Division (4) checked, Cost Center (0).

Result:

Job search interface with numerous filter options: In the Division dropdown, Corporate is selected among these options: Select all, Operations, Sales.

Tokens

All six of the FO/GO fields defined on the job requisition template and offer template are readily available to be used as tokens; no configuration is necessary.

FO/GOs in Employee Central (EC) and non-Employee Central instances

The primary use case for using FO/GOs is to allow for the reuse of data defined in MDF for Recruiting. Without EC enabled, the other modules, including the Employee Profile/People Profile, do not use FO/GO values, such as Division and Department. On a non-EC instance, these field values will still be derived from the User Data File (UDF)

Use of FO/GOs on the Offer Template

Refer to the Implementation Guide: Implementing HR Master Data Sync for Foundation Object and Generic Object Fields in Recruiting.