Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The most basic expressions simply assign a constant value to the field. For example these three expressions assign the integer 3, the floating point number 3.2 and the string "Hello" to the field:

ExpressionResult
33
3.23.2
"Hello""Hello"

Note that if you want to assign a string value (as in the last example) then the characters must be enclosed in either single 'Hello' or double "Hello" quotes.

...

When writing expressions it is important to consider the type of the result. For example, if you have written a Stream Attribute expression to return the integer 3 but have defined the type of the Stream Attribute to be a String then PhixFlow will stop and report the error when the expression is evaluated. The full list of types handled by PhixFlow is shown below. It's not necessary to understand the meaning of the individual types at this stage, however just be aware that the different types exist.

TypeDescription
ArrayA list values, e.g. [1,2,3]. For details about what other values arrays can hold and Array handling in general see Arrays and Record Sets.
DateA date. For details about date manipulation functions go to Date Functions.
DatetimeA date and time. For details about date manipulation functions go to Date Functions.
FloatA floating point number, e.g. 3.2 or 3.0 or 0.0
IntegerAn integer, e.g. 3 or 0
NumberAn integer or floating point number
StringA string value, e.g. "Hello" or the empty string ""
BooleanA logical value of either true or false. Note that any non-null, non-zero value is treated as true
Regular ExpressionRegular Expressions allow string patterns to be expressed. See Regular Expressions for more details

Assigning values from a Pipe

...

Several values can be combined using the usual basic mathematical operators. For example when in.numProducts has the value 9:

ExpressionResult
in.numProducts + 312
in.numProducts - 36
in.numProducts * 327
in.numProducts / 33

The usual calculation precedences apply i.e. * and / operations are carried out before + and -. When the mathematical statements involve multiple calculations, brackets () can be used to force the correct processing order:

ExpressionResult
3 * 3 + 312
3 * (3 + 3)18

String Concatenation (+)

The + operator also serves as the string concatenation operator i.e. joins strings together. For example if in.customerName returns "Smith" and in.title returns "Mr"

ExpressionResult
"Hello" + " to " + "you""Hello to you"
"Dear " + in.title+ " " in.customerName + "," +"Dear Mr Smith,"

Note that if you attempt to use + to concatenate a String and a numeric value (e.g. an Integer ) then PhixFlow will simply treat the number as a string and concatenate it. E.g.

ExpressionResult
"Hello" + 3"Hello3"
"4" + 3"43"

Multiline statements and
Anchor
dollarVar
dollarVar
$-variables

Often there is a need to work out the result of a more complex expression which may require several different statements to be evaluated first. To group several statements together in this way, you should make use of the do() function. In nearly all multiline statements, it is also very convenient to assign the value of an expression to a $-variable which may then be used later in the expression. E.g.

ExpressionResult
do ( $name = in.customerName, $title = in.title, $salutation = "Dear", $result = $salutation + ' ' + $title + $name )"Dear Mr Smith"

Please note that every statement within the do() function (except the last) ends in a comma ",".

Please also note that the value of an expression (e.g. the value that will be assigned into a Stream Attribute ) is the value of the last statement to be evaluated. In the above example, this seems very trivial as the last statement to be evaluated is the last line. However when we look at Conditional Statements the last statement evaluated is not always the last statement in the expression. For example:

ExpressionResult
if ( in.customerName == "Smith", 45 , // else 36 )45 if the customer's name is "Smith" but otherwise the value 36.

Adding Comments

In longer scripts (and even short scripts) it is a good idea to add comments to remind yourself (and anyone else who may need to modify the script in future) what steps are being followed. For short, 1 line comments, just prefix the line with // and for longer, multiline comments, enclose the lines in /* .... */. For example:

...

The lines above are comments and are ignored by PhixFlow.

See Also