Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

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.

To make an expression reusable in different contexts, you need to use an argument, $args[1], to replace references to named items, such as attributes.

To use the macro in an expression, specify:

macro_name(argument_name)

For example, we want to reuse an expression:

if( out.AppleHarvestDate < 1, 1, 0)

Create a macro called isGreaterThanOne that contains the expression:

if($args[1] > 1, 1, 0)



To use the macro, replacing  $ars[1] with the pipe and attribute name _out.AppleHarvestDate:

isGreaterThanOne(_out.AppleHarvestDate)

See also: Expressions and Scripts


Properties

For information about the properties toolbar, and about the sections Parent Details, Analysis Models, Description and Audit Summary, see Common Properties.  We recommend you always add a Description that explains the purpose of the item you are creating. 

For a full list of all the PhixFlow property tabs and windows, see Properties, Windows, Menus and Toolbars.

Basic Settings

FieldDescription
NameThe name of the macro. This name is also how the macro will be invoked (called) from elsewhere in PhixFlow
Minimum ParametersThe minumum number of parameters that must be passed to the macro when it is invoked.
Maximum ParametersThe maximum number of parameters that may be passed to the macro when it is invoked.

Expression

FieldDescription
ExpressionEnter the script that evaluates to a value based on the input parameters.

Example

This sample 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 example, with :

padCost(".977")

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
    )
  )
)


See also:



  • No labels