Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Connect 2026 Agenda Now Available: Explore Sessions
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Is this Bug?

I have spent almost whole day in trying to figure out the difference between 2 tables in the attached Application.

I have 2 columns in the table to display status color in the Back ground . TP99 Status and FCI Status

the logic for coloring these 2 columns is :

for TP99 Status:

IF TP99 > SLA_TP99 or isnull(SLA_TP99)THEN Red
IF TP99 <= SLA_TP99 THEN Green

for FCI Status:

IF FCI > SLA_FCI or isnull(SLA_FCI)THEN Red

IF FCI <= SLA_FCI THEN Green

This was working fine for until I changed the labels of the expressions SLA_TP99 to SLA TP99 and FCI_SLA to FCI SLA

I just removed  underscore from the label and all the color coding is messed up , please compare the 2 charts by clicking on service API value, 1 chart changes the color and the other disables the color code and display correct color only for selected values.

Is this something that can be fixed?

Please Help!

1 Solution

Accepted Solutions
Peter_Cammaert
Partner - Champion III
Partner - Champion III

In your Background color expressions as well as the two regular expressions, you use an IsNull() call. IsNull() is not an aggregation function, so it will try to refer to an expression outcome (by way of the expression label) or a field name with an implied-but-invisible Only() call. In the upper table, the IsNull() parameter exists as an expression label, so it will use that one in both the regular expression as well as in the Background color expression.

In the bottom table, you have changed the label name of the expression that is referenced in the IsNull() call. The existing parameter of IsNull() now refers to a field that may and will return multiple values that will be treated as a NULL value by a non-aggregating function like IsNull. The result will be unpredictable.

Solution: in all IsNull() calls, change the parameter to the changed label and add square brackets around the label (because of the space). Like

... IsNull([SLA FCI]) ...  // new expression label

instead of

... IsNull(SLA_FCI) ... // old label, doesn't exist anymore


And yes, those almost-hidden expressions like for a Background color can quickly become a PITA if you start changing label or field names.


Best,


Peter

View solution in original post

3 Replies
Peter_Cammaert
Partner - Champion III
Partner - Champion III

In your Background color expressions as well as the two regular expressions, you use an IsNull() call. IsNull() is not an aggregation function, so it will try to refer to an expression outcome (by way of the expression label) or a field name with an implied-but-invisible Only() call. In the upper table, the IsNull() parameter exists as an expression label, so it will use that one in both the regular expression as well as in the Background color expression.

In the bottom table, you have changed the label name of the expression that is referenced in the IsNull() call. The existing parameter of IsNull() now refers to a field that may and will return multiple values that will be treated as a NULL value by a non-aggregating function like IsNull. The result will be unpredictable.

Solution: in all IsNull() calls, change the parameter to the changed label and add square brackets around the label (because of the space). Like

... IsNull([SLA FCI]) ...  // new expression label

instead of

... IsNull(SLA_FCI) ... // old label, doesn't exist anymore


And yes, those almost-hidden expressions like for a Background color can quickly become a PITA if you start changing label or field names.


Best,


Peter

Anonymous
Not applicable
Author

I Actually tried that earlier but as the expression was showing as error did not apply , but just noticed that even though it shows errors the chart works

Peter_Cammaert
Partner - Champion III
Partner - Champion III

Don't worry about any imaginary expression errors. Those are common and in your case caused by the $-sign substitution. The syntax checker will not do $-sign expansion to check whether $(cRed) is okay in this spot or contains something "illegal". It gets stuck, and considers this unexpected piece of text an error.