Operator Scope of Action:
Operator First Added:
In queries and conditional action code expressions, starting an attribute name preceded by an exclamation mark plus a $ character functions as a shortened form of the Boolean test for a false value. Thus the following are functional equivalents:
In both cases the result is false if the value of $MyBoolean is false.
Usefully Tinderbox also useful supports such short-form !$AttributeName tests for all the other attribute data types, returning true if the attribute has a default value. Per data type, this equates to long form tests like:
In all these cases a short-form test returns true if the attribute value is the default for that data type.
This test is the logical opposite of the $AttributeName test.
Occasionally, especially in multiple term conditions/queries, a !$AttributeName can get mis-parsed. If results are incorrect it can help to place parentheses (round brackets) around the term to clarify operator precedence. The following are all correct, and functionally equivalent:
inside("Tasks") & !$Checked
inside("Tasks") & (!$Checked)
(inside("Tasks")) & (!$Checked)