Skip to main content

Item form expression node types

Build an expression out of nodes

The Item Form Expression Builder provides various types of expression node that you can add to the canvas. Each node represents a value or a function. By connecting the inputs and outputs of added nodes, you can build an expression that outputs a final value.

The Nodes toolbar of the Item Form Expressions Builder

Value nodes

The following node types can store a static or dynamic value.

Literals

Use literal nodes to store static values that you enter yourself. They can't take input from other nodes or be referenced outside of the expression. You can connect their output circle to one or more other nodes.

IconNameDescriptionInput typeOutput type
Alloy IDStore a single Item ID code, e.g. 64c00830822ba1843892951bNoneAlloyId
AQSStore an AQS query, which fetches qualifying items and attribute dataNoneAqsJson
Alloy ID ArrayStore multiple Item ID codes, e.g. [64c00830822ba1843892951b, 645e38ab2c320b06983ec02e]NoneAlloyId[]
BooleanStore a value that's true or falseNoneboolean
DateStore a date, e.g. 02 July 2023Nonedate
Date TimeStore a date and time, e.g. 02 July 2023 13:30:00 PMNonedatetime
NumberStore an integer or decimal number, e.g. 230, 3.1415Nonenumber
StringStore a string of text, e.g. Hasta la vista, baby!Nonestring

Globals

Use global nodes to reference dynamic values. They can link to the value of a control property on the item form, or a global Alloy variable (e.g. the current time). They can't take input from other nodes. You can connect their output circle to one or more other nodes.

IconNameDescriptionInput typeOutput type
AQSStore a reference to an AQS queryNoneAqsJson
Alloy ID ArrayStore a reference to an array of Item ID codesNoneAlloyId[]
BooleanStore a reference to a value that's true or falseNoneboolean
DateStore a reference to a dateNonedate
Date TimeStore a reference to a date and timeNonedatetime
Is TriggeringOutputs true if the referenced value is what caused the expression to be (re)calculatedNoneboolean
NumberStore a reference to an integer or decimal numberNonenumber
StringStore a reference to a string of textNonestring

Finals

Use a final node to represent the output of the expression. If there are multiple possible branches of execution, they should all end with a final node. The outputted value will be applied to any control property that targets the expression, whenever the expression is (re)calculated.

IconNameDescriptionInput typeOutput type
Alloy IDOutput a single Item ID codeAlloyIdNone
AQSOutput an AQS queryAqsJsonNone
Alloy ID ArrayOutput multiple Item ID codesAlloyId[]None
BooleanOutput a value that's true or falsebooleanNone
DateOutput a datedateNone
Date TimeOutput a date and timedatetimeNone
NumberOutput an integer or decimal numbernumberNone
StringOutput a string of textstringNone

Function nodes

The following node types receive input from other nodes, perform a function, and then produce an output.

Conditionals

Use conditional nodes to test one or more inputs and produce a corresponding output:

Output true if the condition is fulfilled and false if it isn't
IconNameDescriptionInput typesOutput type
EqualsIf the two input values are equal, output trueAll except AqsJsonboolean
Not EqualsIf the two input values are not equal, output trueAll except AqsJsonboolean
ANDIf both input values are true, output truebooleanboolean
ContainsIf input A contains a character sequence matching input B, output trueA: AlloyId[], string
B: AlloyIdAlloyId[], string
boolean
Greater ThanIf input A is greater than input B, output truedate, datetime, numberboolean
Greater Than Inclusiveif input A is greater than or equal to input B, output truedate, datetime, numberboolean
Is NullIf the input is null (no value received), output trueAllboolean
Less ThanIf input A is less than input B, output truedate, datetime, numberboolean
Less Than InclusiveIf input A is less than or equal to input B, output truedate, datetime, numberboolean
MatchIf input A contains any matches for the regular expression stored in input B, output truestringboolean
ORIf at least one input value is true, output truebooleanboolean
Output one of two inputs, depending on whether the condition is true or false
IconNameDescriptionInput typesOutput type
Alloy IDOutput one of two Alloy IDs, depending on the input conditionInputs: AlloyId
Condition: boolean
AlloyId
Alloy ID ArrayOutput one of two Alloy ID Arrays, depending on the input conditionInputs: AlloyId[]
Condition: boolean
AlloyId[]
AQSOutput one of two AQS queries, depending on the input conditionInputs: AqsJson
Condition: boolean
AqsJson
BooleanOutput one of two booleans, depending on the input conditionInputs: boolean
Condition: boolean
boolean
DateOutput one of two dates, depending on the input conditionInputs: date
Condition: boolean
date
Date TimeOutput one of two date and times, depending on the input conditionInputs: datetime
Condition: boolean
datetime
NumberOutput one of two numbers, depending on the input conditionInputs: number
Condition: boolean
number
StringOutput one of two strings, depending on the input conditionInputs: string
Condition: boolean
string

Transforms

Use transform nodes to modify an input value and output the new value.

IconNameDescriptionInput typesOutput type
AQS Set ParameterModify an AQS query by assigning a value to the named parameter (useful for cascading lookups)
Input: AqsJson
ParameterName: string
ParameterValue: AlloyId[], boolean, date, datetime, number, string
AqsJson

Dates

Use date nodes to create or manipulate a date value.

IconNameDescriptionInput typesOutput type
AddAdd one or more input units (years, months, days) to the input dateInput: date
Units: number
date
CreateCreate a date from the input units (year, month, day)numberdate
DayGet the day of the input date, e.g. 1 to 31datenumber
Days DifferenceCalculate the number of days between the two input datesdatenumber
MonthGet the month of the input date, e.g. 1 to 12datenumber
SubtractSubtract one or more input units (years, months, days) from the input dateInput: date
Units: number
date
YearGet the year of the input dateInput: date
Units: number
date

Date Times

Use date time nodes to create or manipulate a date and time value.

IconNameDescriptionInput typesOutput type
AddAdd one or more input units (years, months, days, hours, minutes, seconds, milliseconds) to the input date and timeInput: datetime
Units: number
datetime
CreateCreate a date and time from the input units (years, months, days, hours, minutes, seconds, milliseconds)numberdatetime
Milliseconds DifferenceCalculate the number of milliseconds between the two input date and timesdatetimenumber
HourGet the hour of the input date and time, e.g. 0 to 23datetimenumber
MinuteGet the minutes of the input date and time, e.g. 0 to 59datetimenumber
SecondGet the seconds of the input date and time, e.g. 0 to 59datetimenumber
MillisecondGet the milliseconds of the input date and time, e.g. 0 to 999datetimenumber
SubtractSubtract one or more input units (years, months, days, hours, minutes, seconds, milliseconds) from the input date and timeInput: datetime
Units: number
datetime