Technical Articles
MDF promotion design in Compensation Worksheets
We created the MDF promotion design as a workaround for customers wanting to mass import promotions into SuccessFactors Compensation module prior to the Salary Review cycle.
Please find the presentation here as well as the demo and explanations below :
The recording is trimmed towards the end unfortunately but the steps I was about to demo can be seen in the following recording : https://youtu.be/8RXlBBmts1k?t=1260 from this blog post.
For more information on how to build complex mdf objects, please see this post : https://blogs.sap.com/2022/05/17/off-cycle-increases-through-mdf-objects-in-employee-central/?
All the best,
Xavier
This is a great post to show how to use:
Just several questions:
Thanks for your contribution again and look forward to seeing your reply.
Thanks,
Carson
Hi Carson,
All the best,
Xavier
Thanks Xavier for the confirmation.
I have another quick question which is not relevant to this blog topic that I cannot figure out how to check a date column is blank in the column formula.
In my situation. I need to check a date column for suppressing statement generation.
Wonder if you have any hint for this.
Thanks and Happy New Year 2021.
Carson
Hi Carson,
I would try this :
if(date_column != "",false,true)
or if your date isn't in a date column I would also try
if(toDate('date_column','MM/dd/yyyy') != "",false,true)
Happy new year
Thanks Xavier.
I further verified and confirmed below statement should be used:
if(date_column != “”,"false","true")
Since if the date_column is blank, toDate(date_column,'MM/dd/yyyy') will result N/A, which means system failed to evaluate. However, we cannot set:
if(toDate(‘date_column’,’MM/dd/yyyy’) != “N/A”,"false","true")
which will always result N/A in my testing. Probably once the system failed to evaluate in toDate() function, it stopped further checking process.
And it is interesting (stupid):
Both custom* columns are in string type, and customFirstSalaryReviewDate can be blank while customCutoffDate contains a date value derived from lookup table.
My requirement is:
- if customFirstSalaryReviewDate is blank, return 'TRUE'
- elseif customFirstSalaryReviewDate <= customCutoff, return 'TRUE'
- else return 'FALSE'
I have built below formula in a string column:
if(customFirstSalaryReviewDate='','TRUE',if(dateDiff(toDate(customFirstSalaryReviewDate,"MM/dd/yyyy"),toDate(customCutoffDate,"MM/dd/yyyy"))<=0,'FALSE','TRUE'))
Strange result is obtained:
1. if customFirstSalaryReviewDate is blank, it returns 'N/A' (means system failed to evaluate)
2. if customFirstSalaryReviewDate is not blank, it can returns 'TRUE' or 'FALSE'
I tried to split my formula into 2:
1. if(customFirstSalaryReviewDate='','TRUE','FALSE')
> this results properly, 'TRUE' if blank
2. if(dateDiff(toDate(customFirstSalaryReviewDate,"MM/dd/yyyy"),toDate(customCutoffDate,"MM/dd/yyyy"))<=0,'FALSE','TRUE')
> this results properly for customFirstSalaryReviewDate is not blank case
Based on above behavior, seems the if() function will try to compute all condition checks first before giving result.
Now I need to have 4 custom columns to compute:
1. string column for customFirstSalaryReviewDate
2. string column to check if customFirstSalaryReviewDate is blank (result TRUE or FALSE)
3. string column to check the dateDiff() between customFirstSalaryReviewDate and another fixed date (it shows numbers if customFirstSalaryReviewDate is not blank, or else shows 'N/A'
4. string column to check if column 2 is TRUE, then result TRUE, else check column 3 to show TRUE if the number is positive, else show FALSE if the number is negative
Great blog Xavier, Very informative for the community.
Could you please help me to understand how to link MDF to the Promotion pop-up?
Thanks
Mahesh
Hi Mahesh Vidadhala
In this design we are not using the standard promotion popup anymore, we create what is called a "custom view" in the Comp worksheet.
Steps :
Make sure the custom object is correctly permissioned in RBP for Managers.
All the best
Xavier
Got it, thank you, Xavier!