Logic¶
18 nodes. Types ending in [] are lists. An input with a default is optional.
Nodes¶
And¶
Returns true only when both inputs are true.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
boolean |
— | First operand. |
b required |
boolean |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when both operands are true. |
Tags: && conjunction boolean Logic.And
Equals¶
Tests whether two values are equal, the same way as Logic.Compare with ==: numbers compare by value (2 equals 2.0), text ignores upper and lower case, text that reads as a number equals that number ("5" equals 5), text that reads as a date equals that date, and two lists are equal when they have the same items in the same order. A list is compared as ONE value; to test every element of a list set List Levels to @L1 on a (an empty element is equal only to another empty one). For a case-sensitive text test use Logic.Compare with ignoreCase off, and for numbers within a tolerance use Math.IsClose.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
any |
— | First value. A list is compared as one value; set List Levels to @L1 to compare every element instead. |
b required |
any |
— | Second value. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when the values are considered equal. |
Tags: == equal same compare Logic.Equals
GreaterThan¶
Returns true when the first number is greater than the second.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
number |
— | First operand. |
b required |
number |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when a > b. |
Tags: > compare larger Logic.GreaterThan
GreaterThanOrEqual¶
Returns true when the first number is greater than or equal to the second.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
number |
— | First operand. |
b required |
number |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when a >= b. |
Tags: >= compare atleast Logic.GreaterThanOrEqual
If¶
Returns one of two values depending on a boolean condition. Both branches are always computed, so a node wired into the unused branch still runs: to skip nodes (a modifying node, a slow search) use Flow.When instead. A list of booleans on test gives a list of choices.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
test required |
boolean |
— | The condition to evaluate. |
trueValue required |
any |
— | Value returned when the condition is true. |
falseValue required |
any |
— | Value returned when the condition is false. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
any |
Either trueValue or falseValue. |
Tags: condition branch ternary switch flow when Logic.If
IsNull¶
True when the value is null (nothing came out). Wired to a list it tests the LIST, which is never null; set the input's List Levels to @L1 to test every element instead, and each empty element gives true. That gives the bool mask for List.FilterByBoolMask (pair with Not to keep the non-nulls). Text that is empty or blank is not null: use IsNullOrEmpty or String.IsBlank for that.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
value required |
any |
— | The value to test. A list is tested as a whole (a list is never null). To test each element of a list, set this input's List Levels to @L1: an empty element then gives true. |
Outputs
| Output | Type | What it gives |
|---|---|---|
isNull |
boolean |
True when the value is null. |
Tags: null is check missing empty mask test Logic.IsNull
IsNullOrEmpty¶
True when the value is null, an empty string, an empty list or an empty dictionary — the guard for "did anything come out?" checks before If branches. NOTE: wired to a list directly it tests the LIST (empty or not); set the input's List Levels to @L1 to test each element instead, and each empty element gives true. Text of only spaces is not empty here: String.IsBlank counts it as blank.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
value required |
any |
— | The value to test: null, an empty string, an empty list and an empty dictionary all count as empty. To test each element of a list, set this input's List Levels to @L1: an empty element then gives true. |
Outputs
| Output | Type | What it gives |
|---|---|---|
isEmpty |
boolean |
True when the value is null or empty. |
Tags: null empty is check missing guard test Logic.IsNullOrEmpty
LessThan¶
Returns true when the first number is less than the second.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
number |
— | First operand. |
b required |
number |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when a < b. |
Tags: < compare smaller Logic.LessThan
LessThanOrEqual¶
Returns true when the first number is less than or equal to the second.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
number |
— | First operand. |
b required |
number |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when a <= b. |
Tags: <= compare atmost Logic.LessThanOrEqual
Logic.Choose¶
Picks one of several options by position (0 = first) — a multi-way If. All options are always computed, so a node wired into an option that is not picked still runs: to skip nodes use Flow.When.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
index required |
integer |
— | Which option, counting from 0. |
options any number of wires required |
any[] |
— | The options (wire several nodes into the one socket, or a list). |
Outputs
| Output | Type | What it gives |
|---|---|---|
value |
any |
The option at that index. |
Tags: select pick switch index option multiplexer flow when
Logic.Compare¶
Compares two values — numbers, text or dates — with a test chosen from a list (==, >, contains, matches, regex …). Text that reads as a number is compared as a number, and text that reads as a date (2026-10-01) is compared as a date when the other side is a date. Text ignores upper and lower case unless ignoreCase is off (the regex test is the same). A missing value (empty or blank) is never greater or less than anything, so it does not pass > >= < <=; use isNull or isEmpty to find it. Equals and Logic.NotEquals follow the same rules for == and !=. A list on a is tested as ONE value: to test every element set List Levels to @L1 on a (or use List.FilterByValue to split a list). For numbers within a tolerance use Math.IsClose.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
any |
— | The value to test. A list is tested as one value; set List Levels to @L1 on this input to test every element instead. |
b |
any |
null |
What to test it against (unused by the isNull / notNull / isEmpty / notEmpty tests). |
test |
string |
"==" |
The test: ==, !=, >, >=, <, <=, contains, !contains, startsWith, endsWith, matches (wildcards * and ?), regex, isNull, notNull, isEmpty, notEmpty. |
ignoreCase |
boolean |
true |
True (default) ignores upper/lower case when comparing text. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when the test passes. |
Tags: compare greater less equal date text contains wildcard regex test tolerance
Logic.IsBetween¶
True when a number, text or date lies between a lower and an upper bound (bounds included by default). Text that reads as a number or, next to a date, as a date is compared as one. A list on value (or on a bound) gives a list of answers, one per element, so a whole column can be tested at once. A missing value, or text that is not a number next to numbers, is not between; an empty bound is an error. To test a number against a target within a tolerance use Math.IsClose.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
value required |
any |
— | The value to test (number, text or date). A list tests every element and gives a list of results. A missing value (empty or blank) is never between. |
min required |
any |
— | The lower bound. A list pairs with the values. |
max required |
any |
— | The upper bound. A list pairs with the values. |
inclusive |
boolean |
true |
True (default) counts the bounds themselves as inside. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when the value is within the range. |
Tags: range within between inside interval tolerance
Logic.NotEquals¶
True when two values are different — the opposite of Equals, with the same rules: numbers compare by value, text ignores upper and lower case, text that reads as a number or a date is compared as one, and two lists are equal when they have the same items in the same order. A list is compared as ONE value; to test every element of a list set List Levels to @L1 on a.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
any |
— | First value. A list is compared as one value; set List Levels to @L1 to compare every element instead. |
b required |
any |
— | Second value. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when the values are not equal. |
Tags: != different not equal unequal
Logic.Switch¶
Gives the result that goes with the first case equal to the value, otherwise the fallback — a status-to-colour or code-to-name mapping. Matching follows Equals: text ignores upper and lower case and text that reads as a number matches that number. A list on value is looked up element by element and gives a list of results. All results are computed whether or not they are picked; to skip nodes use Flow.When.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
value required |
any |
— | The value to look for. A list looks every element up and gives a list of results (a status column becomes a colour column). |
cases required |
any[] |
— | The values it can be. |
results required |
any[] |
— | What to give for each case (same length as the cases). |
fallback |
any |
null |
What to give when no case matches (nothing by default). |
Outputs
| Output | Type | What it gives |
|---|---|---|
value |
any |
The result for the first matching case, or the fallback. |
Tags: case match map lookup translate switch select flow when
Logic.TypeOf¶
Names the kind of a value — number, text, boolean, datetime, list, dictionary, null or the object's type — for debugging what a node really returns.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
value required |
any |
— | Any value. |
Outputs
| Output | Type | What it gives |
|---|---|---|
type |
string |
One of: null, number, text, boolean, datetime, list, dictionary, or the type's name. |
Tags: type kind debug inspect what is this class
Logic.Xor¶
True when exactly one of the two inputs is true.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
boolean |
— | First operand. |
b required |
boolean |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when the two inputs differ. |
Tags: exclusive or either one of
Not¶
Inverts a boolean value.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
value required |
boolean |
— | The value to negate. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when the input is false. |
Tags: ! negate invert boolean Logic.Not
Or¶
Returns true when at least one input is true.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
boolean |
— | First operand. |
b required |
boolean |
— | Second operand. |
Outputs
| Output | Type | What it gives |
|---|---|---|
result |
boolean |
True when at least one operand is true. |
Tags: || disjunction boolean Logic.Or