Skip to Content
Technical Articles

The decimal value zero in the rule does not work

Customers and Consultants who are familiar with SuccessFactors Employee Central would have used Business Rules in some form to provide with a way to add application logic to determine the outcome of a change made to particular data in the system.

Business Rules are created in the Rules Engine tool and the system executes these rules during run-time at configured event triggers.

In this post, I’ll detail a tip to configure Business Rules if you do it in another language different to English. In some cases the expressions of comparison don’t work if the decimal a compare is zero.

Problem Statement

For the example, I will create a business rule that validates deduction quantity in employee time, if the quantity is zero I will give an error message: “invalid decimal number”.

The error occurs when working in a language other than English; I’ll prove it, in this case, in Spanish and Portuguese.

Go to User Options, Change Language, Select Spanish and Switch

Go to Configure Business Rules (Configurar reglas de negocio / Configurar regras de negócios) and create the rule. The expression of comparison that causes the conflict is, in this example

If EmployeeTime.Deduction Quantity = 0

t is important to note that this is just an example, the error occurs in any logic that involves placing a comparison with the zero decimal, if working in a language other than English.

In Spanish the error occurs when it is saved, invalid decimal number

and the same happens in Portuguese, invalid decimal number

possibly also occur in other languages other than English.

Conclusion

To be able to configure this type of comparisons, it is advisable to go to the English language. The change will be taken, the logic of the rule will not fail. But keep in mind when making changes, because you will validate this error if you add other logic in the rule. That is, if you want to extend the functionality of the rule. In the case that there is a comparison for less, equal or greater than zero decimal.

You can also avoid this comparison by placing a different decimal but the logic would be unclear.

In summary, the example is trivial, but it can occur in any comparison with decimal greater, less or equal to zero because it does not recognize it as a decimal number in that language.

In English the error does not happen

 

Be the first to leave a comment
You must be Logged on to comment or reply to a post.