Any column that does not have a value is known as being "NULL or UNKNOWN" and whenever you compare anything to a Null value the result will always be false (down the ELSE path). Also important to note is that NULL is not equal to another NULL, nor is it "not equal" - it is unknown.
To work around this you need detect when a column has a Null value and initialize it.
In this workflow usercalc, we want to see when a value has changed in a given field. The easy and obvious solution is to test new value against old value like this:
5000 | IF | NV | EID.DRIVERS_LICENSE | EQ | OV | EID.DRIVERS_LICENSE | 5100 | 5500 |
If either the new value (NV) or old value (OV) are NULL, the condition will be false and you will always go down the else branch - even when they are both NULL.
To deal with this scenario, we have to use some variables (recommended to be character type) and additional logic using the EQNL operator.
5000 | LET | V | NV_DL | EQNL | NV | EID.DRIVERS_LICENSE | A | No Value | 5010 | |
5010 | LET | V | OV_DL | EQNL | OV | EID.DRIVERS_LICENSE | A | No Value | 5020 | |
5020 | IF | V | NV_DL | EQ | V | OV_DL | 5100 | 5500 |
When using this technique you must always use a value (in this case the alpha "No Value" that would never actually be in the field you are comparing to in order to correctly check that there was a change occurring.
Screen captures are meant to be indicative of the concept being presented and may not reflect the current screen design.
If you have any comments or questions please email the Wiki Editor
All content © High Line Corporation