Skip to Content

Rules and Picklists in the SuccessFactors Metadata Framework

Following up on my recent blog Extending SuccessFactors with the Metadata Framework, I wanted to delve a little deeper into the Rules Engine that forms part of the SuccessFactors Metadata Framework (MDF) and also look at Picklists. Both of these form an integral part of data validations, approvals, and business logic that is used within the SuccessFactors system and, in particular, Employee Central.

Rules Engine

As mentioned in my blog on the MDF, it provides a flexible and consistent framework for customers and consultants to extend the object model of SuccessFactors and add their own unique rules, validations, and business logic to SuccessFactors. Rules can be used where user exits, BAdIs, or ABAP program Enhancement points would be used in SAP HCM to provide customer-specific business logic or validation of data input.

The Rules Engine allows you to create rules by modeling statements and flow logic to define the business logic of the rule. Rules have two sets of logic that is configured in the MDF: If logic and Then logic.

If logic uses statements “and” and “or” statements to determine if the Then logic should occur. Each of these statements involves checking a field for a particular value or object attribute. If logic can also be set to Always True, which means that the Then logic automatically executes when the rule is triggered. An example can be seen in the screenshot below, along with Then logic.

The Then logic determines either the value to be set and/or the message to be raised if the If logic conditions are met. When the Set Output Type is selected then a value will be set to the field that is configured, either from a selected value or an object attribute.



Once a rule has been created, it can be assigned to one or more Hooks. Hooks are points at which Rules can be triggered and can be either at the object level or the field level.

At the object level Rules can be added at four points of the object “lifecycle”:

  • Initialization
  • Validation (pre-save)
  • Saving
  • Deleting

At each point one or more rules can be defined. They will be triggered once the object gets to that point of its maintenance.


Within the object level rules can be added at field level. Here one or more rules can be defined so that they will be triggered when a field is modified.


Picklists are, simply, selection lists used to populate a data input field with one of a number of predefined values. They act in the same way as F4 Helps in SAP HCM. Picklists provided in the standard system can be altered to use customer-specific values. The screenshot below shows a simple example of a Picklist for Marital Status.


Picklists are configured using the option Manage Configure Generic Object Definition under Company Settings in OneAdmin or under Generic Objects in the old Admin Tools. Below shows a Picklist being created for the different types of documents that you can contribute on SCN.


This Picklist can then be assigned to a field in the MDF as below. You can also see the Rules section to define one or more rules at the field level.



When combined, the Rules Engine and Picklists provide customers to add their own business logic, rules, and validations to objects and fields. This means that customers can have a significant level of control on ensuring that data is created, maintained, and deleted the way that they need it. It also means that data quality can be upheld by using the system to validate data entry or provide users with picklists from which to select values.

The MDF is covered in detail in the SAP PRESS title SuccessFactors with SAP ERP HCM.

You must be Logged on to comment or reply to a post.
  • Luke, if one reads through the MDF documentation they would have to flip through 20 pages to get the information you provide in this well-structured blog. Great follow-up to your MDF blog.



    • Thanks Jyoti. I know which document you are referring too and I only read it after I'd written the blog. I'm expecting it to be enhanced over the coming months as the MDF gets rolled out. My blog may become obsolete in that case though 😉

      Best regards,


  • Seems as the cloud systems face an ever wider range of real world requirements they gain in complexity and then it takes an SAP on-premise trained and battle hardened consultant like Luke to cut through the jungle 😉

    • I think the key to the SaaS is getting what SaaS means as a delivery method for HR services. It's not just on-premise technology hosted in the Cloud. The aim for consultants who transition is to understand both on-premise and Cloud.

  • Hi Luke,

    Thanks for sharing nice overview on rules and picklist. I am trying to create a custom rule using manage data link but "Rule type" field is blank while I create a custom rule.

    Based on rule engine Handbook ( section 3.3 ) I followed mentioned steps to create a rule type.

    1. Company Processes & Cycles portlet, -> Company Settings -> Configure Object Definitions.

    2. Click Search: Picklist and select RuleType (RuleType) from the dropdown list.

    However I could not find any predefined picklist so I created custom picklist "RuleType".

    After I created a picklist to for rule type I still can not find my custom rule type in "RuleType" dropdown from the dropdown list.

    Is there something I am missing while creating a rule type? I have checked permission and I have all the permission to create a rule.



    • Hi Abhay,

      You need to create the Rule Type picklist as per the handbook. It seems like you might have done that. However, make sure you have set the effective date of your RuleType picklist to 1/1/1900.

      All the best,


  • Hi Luke,

    I appreciate the simplicity of this blog and it's always easy to comprehend. I'm currently looking for any expression within the rule to extract the last 4 characters of a string.

    I have built the custom field WBS in MDF alternate cost distribution, the requirement is when saving the record I have to check if the cost centre value is equal to last 4 characters of WBS string. Kindly share your thoughts.


    Prasanna Manikandan

  • My Question - i have a picklist of numbers which once selected from the dropdown will be used to do some calculations. Somehow the calculations are not correct when i do it thru picklist but If i manually input a number in the field, the calculation is correct. Any ideas please?

  • Hi Luke,

    Thanks for another great article. I'm wondering if you can help me; do you know how I modify the 'AddressType' picklist? The implementation guide states that for this picklist, the external code needs to be referenced in the data model; do you know if there are any further notes I can find around this?

    Many thanks for your help!

    • AddressType is not an MDF Picklist, so you change it by downloading the picklist file in Admin Center in Company Settings > Picklist Management

  • Hi Luke,

    thanks for this nice acritical, i have one question

    can i add authorization on the pick list level, for example i have pick list include 3 options (A,B,C), each option will open other fields, but all the fields for the 3 options on the same portlet, the business requirements is to give separate access for each group of fields according to pick list options, so is this doable somehow ?

  • Hi Luke,


    I have a question.. How can a picklist can be created through csv. what is the procedure to follow, i am aware of the picklist management in MDF but i get stacked up when i try to create a Picklist through csv, Xml. Please advice.

    Thank in advance.

    • Hi Lokesh,

      Download the CSV template, fill it in, then upload it. Make sure to save it as a CSV file with the right encoding so you don't lose formatting.

      Best regards,


  • Hi Luke,

    I have two questions.  With a picklist, is it possible to hide the key value?  So what we see is Stop Pay Statement Print (Stop) where Stop is the picklist key.  The other question I have is can you default a value to a field such as setting the effective date to the system date?

    Thanks for all your help!

    • Hi Margaret,

      On some objects (typically Generic Objects) you can remove the key, but that is not universal across SF.

      Yes, you can default field values using business rules.