Symptom
Environment
- Compensation
Resolution
- 'if' function should have 3 parameters, if (cond, result1, result2). If parameter number is not 3, it may cause formula evaluation to fail. This will also cause formula references fields with such formulas to get the wrong result.
- If (cond, result1, result2): the second (result1) and the third (result2) parameters of function 'if' should have the same type. If they don’t have the same type, it will cause formula evaluation in JAVA side fails. This will also cause formula references fields with such formulas get the wrong result.
- Simple example of using IF THEN ELSE logic:
if(location='BDA', curSalary/curRatio, finSalary)
"if location = BDA then target is based on midpoint of final pay grade, else, target is based on final salary."
- More complicated if() usage scenarios can be: if () to conditionally reference two different lookup tables, or use another nested if() call like: if (cond1, if(cond2, value1, value2), value3)
- Even more complicated nested if-then-else example using lookup tables:
if(customSalaryFrequency='Monthly', (customMonthlyPartTimeRate/lookup('Market_Index', customJobCode, 1)), if(customSalaryFrequency='Annual', (curSalary/lookup('Market_Index', customJobCode, 1)),(curSalary*lookup('Hours Per Month', customMarketIndexCode, 1)*customGuranteedMonths)/lookup('Market_Index', customJobCode, 1)))
Keywords
KBA , sf compensation worksheet design , LOD-SF-CMP , Compensation Management , How To
Product
SAP SuccessFactors HCM Core all versions