Overview
Sometimes we might want to write our own expressions that can be used time and again. To do this we can write a macro:
- In the PhixFlow repository, add a new Macro item and name it.
- Add minimum and maximum parameters.
- Copy in the expression you want to reuse.
- To make an expression reusable in different contexts,
...
- change all references to named items to arguments, such as ,
$args[1]
...
- To use the macro in an expression, specify:
...
- macro_name(argument_name)
For example, we want to reuse an expression:
...
To use the macro, replacing $ars$arg[1]
with the pipe and attribute name _out.AppleHarvestDate
:
...
See also: Expressions and Scripts
Macro Properties
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Basic Settings
Field | Description |
---|---|
Name | The name of the macro. This name is also how the macro will be invoked (called) from elsewhere in PhixFlow |
Minimum Parameters | The minumum number of parameters that must be passed to the macro when it is invoked. |
Maximum Parameters | The maximum number of parameters that may be passed to the macro when it is invoked. |
...
Field | Description |
---|---|
Expression | Enter the script expression that evaluates to a value based on the input parameters. |
Example
This sample Thie following macro is called padCost. It takes 1 parameter - a numeric value. It checks to see if the numeric value is missing a 0 before a decimal point. If so, it adds the 0 and returns the string. It can be called anywhere in PhixFlow that an expression can be entered, for . For example, with :by entering padCost(".977")
Code Block |
---|
do( $val = $args[1], if( startsWith($val, "."), // if the cost is positive, add a zero onto the beginning "0" + $val, // ELSE if( startsWith($val, "-."), //if the cost is negative, replace the -. with a -0. "-0." + substring($val,3), //ELSE $val ) ) ) |
...