IBM Support

Conditions in the template might evaluate differently in Rational Publishing Engine 1.2

Technote (FAQ)


Why does running a template with Rational Publishing Engine 1.2 produce different output results than running a template with earlier versions of Rational Publishing Engine?


In Rational Publishing Engine 1.2, how variables are passed between assignments and conditions has changed.


In Rational Publishing Engine and earlier, all variables were transformed to strings when they were introduced in a script expression. In Rational Publishing Engine 1.2, variables preserve the type and the exact value of the last assignment; they are no longer transformed to strings. This change helps the building and processing of complex structures in JavaScript, but it also can affect the behavior of existing templates.

This change has a negative impact when dealing with variables that are compared to the string literals "true"/"false" in expressions like variable == "true".

If the value of the variable comes from the document specification, i.e. it was provided by the user when configuring the report or it is the default value of the variable, then everything works as before since the variable is still a string. But if the value comes from a prior computation, say variable = (1 < 2), then the value of the variable results in Boolean true, not the string literal "true". This result means that conditions including the variable == "true" comparison evaluate to false, even though the data is the same.

To address this issue, you need to update the conditions so that they are able to handle both scenarios. You can change conditions like variable=="true" to check for equality with both the string literal "true" as well as with the Boolean true. Example: (variable == true) || ( variable == "true")

Document information

More support for: Rational Publishing Engine
General Information

Software version: 1.2

Operating system(s): Linux, Windows

Reference #: 1624880

Modified date: 09 February 2013