Parameter Types
Anchor | ||||
---|---|---|---|---|
|
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.
Type | Description |
---|---|
Array | A 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. |
Date | A date. For details about date manipulation functions go to Date Functions. |
Datetime | A date and time. For details about date manipulation functions go to Date Functions. |
Float | A floating point number, e.g. 3.2 or 3.0 or 0.0 |
Integer | An integer, e.g. 3 or 0 |
Number | An integer or floating point number |
String | A string value, e.g. "Hello" or the empty string "" |
Boolean | A logical value of either true or false. Note that any non-null, non-zero value is treated as true |
Regular Expression | Regular Expressions allow string patterns to be expressed. See Regexp ToDelete for more details |
Using $-variables in Calculations
Anchor | ||||
---|---|---|---|---|
|
In stream attribute expressions that have complex calculations, you may need a variable to hold the result of a calculation. You can then reference the variable later in the expression, or in other attribute expressions. In PhixFlow you can use a $-variable for this, by prefixing the variable name with the $ symbol.
Tip |
---|
It can be helpful to distinguish between $-variables that are:
|
Panel | ||||
---|---|---|---|---|
| ||||
The following expression sets 2 $-variables $
Another expression can reference the $A and $B variables in a different calculation. The following expressin returns 100.
|
$-variables are not really needed in simple calculations. They are useful:
- in forEach loops
- when using look-up pipes
- to store a value from a look-up pipe, when you need the value in multiple attributes.
- In the first attribute, look-up the value.
- Use a $-variable to store the value that is returned by the look-up.
- When you need the value in another attribute, reference the $-variable instead of repeating the look-up.
- in complex expressions, to break up multiple consecutive functions into separate lines. In this case, use a $-variable to store the intermediate values; see Multiline Statements and $-variables, below.
Assigning Values From a Pipe
One of the most common type of expression is to fetch the value returned by a Pipe. This is simply done by suffixing the Pipe name with the name of the attribute to be returned. For example:
in.accountRef
This expression causes PhixFlow to look at the pipe named "in" and return the value in the field called "accountRef".
Tip |
---|
This expression can return multiple values; see Arrays and Record Sets. |
If the name of the attribute whose value you want has to be calculated based on other factors then the attribute name can be assigned to a variable (see the section below on mulitline statements and $-variables) and the variable used in place of the attribute name itself e.g.
in.$attrName
If the name of the attribute whose value you want contains characters that would otherwise be invalid you can either assign that name to a variable (see the section below on multiline statements and $-variables) and use the variable instead of the actual attribute as discussed above or simply enclose the name in quotes e.g.
in.'account-ref'
Mathematical Operators (+, -, *, /)
Several values can be combined using the usual basic mathematical operators. For example when in.numProducts has the value 9:
Expression | Result |
---|---|
in.numProducts + 3 | 12 |
in.numProducts - 3 | 6 |
in.numProducts * 3 | 27 |
in.numProducts / 3 | 3 |
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:
Expression | Result |
---|---|
3 * 3 + 3 | 12 |
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"
Expression | Result |
---|---|
"Hello" + " to " + "you" | "Hello to you" |
"Dear " + in.title+ " " in.customerName + "," + | "Dear Mr Smith," |
Note |
---|
If you |
use |
, such as an Integer |
, then PhixFlow |
treats the number as if it is a string |
. For example:
|
Multiline Statements and $-variables
Anchor | ||||
---|---|---|---|---|
|
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.For example:
Expression | Result |
---|---|
do ( $name = in.customerName, $title = in.title, $salutation = "Dear", $result = $salutation + ' ' + $title + $name ) | "Dear Mr Smith" |
Note |
---|
Every statement within the do() function (except the last) ends in a comma ",". |
Please also note that the The value of an expression (e.g. , that is the value that will be assigned into a Stream Attribute ) the 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 , in Conditional Statements, the last statement evaluated is not always the last statement in the expression. For example:
ResponsiveExpression | Result |
---|---|
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 It is always a good idea to add comments to remind yourself (and anyone else who may need to your scripts to explain its steps. These help anyone who needs 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 /* .... */. .
There are two ways to tell PhixFlow that a line is a comment, and can be ignored.
Notation | Use for |
---|---|
// | short comments up to 1 line |
/* <comment> */ | multi-line comments |
For example:
/*
Get the discount rate that should apply
to
the calls that match the filter conditions */
$discountRate = discount.rate,
Now apply the discount
//$value = $value * ( 1 - $discountRate)
The lines above are comments and are ignored by PhixFlow.
See theSee Also
- Expressions and Scripts topic page for links to more information
- .