Introduction
SuccessFactors Integration Center is a really useful feature that I have come to rely on heavily. Unfortunately there is limited documentation available on its use available for system admins so I am hoping this blog post may be of assistance. Many of the options are similar to other programming languages and functionality, but is contained within a more restricted UI with sometimes unexpected terminology or functionality. For example, when creating calculated columns, it is not able to support logical conditional statements (for example "if field value equals xxxx OR yyyy OR zzzz), and it is also not possible to use more than three IF/THEN statements for any individual field (
KBA 2759182 - Unable to create more than 3 If/Then/Else statements in Integration Center).
The workaround to the limitations described above is to use the "Choose" function in the calculated column which functions as CASE/IF logic. Many thanks to my co-worker
deepthisaip for helping me to understand what the SuccessFactors Choose function was and how to apply it to our use-case. All screenshots are from our test environment.
Use-Case
We needed to anonymize (set value to zero) the pay amount field for particular combinations of compensation pay groups (two value options) and legal entities (17 value options) on an outgoing flat file integration. Given that we had ten "exceptions" we did not have enough IF/THEN statements available to accomplish this. Experimentation with different common "OR" syntax in the condition statement (OR, |, ||, etc.) didn't seem to be recognized by integration center - it evaluated it all as a text string.
Here is the completed calculated column:
calculated column logic using IF and CHOOSE functions
Line 1 starts with looking at the value of the Pay Group. Because only one of the values for Pay Group might need to be anonymized in our instance, it is a simple If/Else statement. If the value isn't 2, the integration will populate the column with the pay amount field value - lines 16-17. If the value is 2, then it kicks into the Choose function to evaluate. The choose function is set to look at the Legal Entity number/id field value. Lines 4-13 check to see if the legal entity value is equal to the value listed in the When condition. If true, it anonymizes the field by replacing it with a zero value. If the record being evaluated doesn't meet any of the when statements, it populates with the pay amount field value (lines 14-15).
Conclusion
As can be seen in the above use-case, it would be simpler to be able to to say:
If legal entity = ( 1 OR 2 OR 3 OR 4 OR 5)
Then ....
Please vote for IR
IR 275481 Integration Center - Support Conditional Operators (OR, AND) for IF Statement if you agree. In the meantime, hopefully the use of the Choose function may offer a solution for others with similar scenarios. It doesn't appear that the Choose function has a restriction on the number of "When" statements. Choose will need to be used for calculated columns if you have more than three if scenarios.
P.S. Here are a few other influence requests for enhancements to Integration Center's functionality that I believe will make it an even better tool in the future!
IR 258976 Integration Center - Deliver Reports by Email
IR 275485 Integration Center - allow Calculated Column Improvements
IR 276316 Integration Center - pull corresponding records by effective date not as of date
IR 274777 Allow other file types (txt) and delimiters to be specified for input integrations besides...