Versions Compared

Key

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

Insert excerpt
_Banners
_Banners
namephixScript
nopaneltrue

Overview

PhixFlow is a low-code, application-development platform. Using PhixFlow, you can create applications starting with the user interface, rather than requiring software developers to code all the functionality. However, PhixFlow sometimes needs code-like instruction to achieve the dynamic behaviour you need. This is done using

:

expressions. Usually these are simple, short

expressions
  • longer, more complex scripts
  • reusable macros.See Macro
  • PhixFlow items have a property tab where

    pieces of code. Longer, complex expressions are usually called scripts. For useful expressions that you want to reuse in different places, you can put the expression into a macro.

    PhixFlow items have a 

    Insert excerpt
    _property_tabs
    _property_tabs
    nopaneltrue
     where you set the options for that item. You can see a list of the properties help pages for different items on the 

    Property Tabs This topic explains how to write

    Properties, Windows, Menus and Toolbars page. Items where you may need to add some instructions have a field where you can enter an expression. These dynamic fields are often labelled as Expression.

    Image Removed

    Actions have a dynamic field where you can write an expression to check that the action has run correctly.

    Image Removed

    Streams have several dynamic fields where you affect the data records in the stream 

    Expression Editor

    Usually a dynamic field is expecting an expression. In some cases, a dynamic field expects different code, such as an SQL statement. If you want to use an expression in this type of field, enclose it in curly brackets.

    Expressions can also include variables. Some internal variables are defined in PhixFlow. The internal variables that you can use depends on the context. You can also create your own variables. As these are prefixed with the $-symbol they are called $-variables.

    To find out what code a dynamic field expects, or which internal variables are available, check the help for the properties tab in which you are working. At the top of the properties tab, click 

    Insert excerpt
    _help
    _help
    nopaneltrue
    .

    Large Editor

    When working on large expressions or scripts it can be useful to use the option, 

    Insert excerpt
    _editor_expand
    _editor_expand
    nopaneltrue
    . When working in the large editor, the content can be saved to the
    Insert excerpt
    _property_tabs
    _property_tabs
    nopaneltrue
     without closing the larger editor window by clicking Save. 

    Section


    Column

    Image Added


    Column

    Image Added


    As well as internal variables, PhixFlow has lots of functions that you can use in expressions.

    Functions

    The pages in this topic provide information on writing your own expressions, from simple assignments to complex looping operations.

    Expression BasicsBasic operations (+, -, *, /), $-variables, variable types, assignment statements, object types and commenting scripts.
    Expression StyleA summary of the recommend scripting styles e.g. how to lay out an if clause and how best to name variables
    etc
    .
    Using VariablesHow to use variables
    are used
    in PhixFlow expressions.
    PhixFlow values that PhixFlow defines in the course of processing that are available for use in building modelsHow to construct filters and perform dynamic lookups on Pipes
    all the pre-defined variables in PhixFlow. Depending on the context of your expression, only some of these will be appropriate to use.
    Text Expressions and Escape CharactersInformation for including text strings in expressions, characters that have special meanings, and how to escape them.
    Regular ExpressionsHow to use regular expressions that match strings in the data.
    Embedded ExpressionsHow to embed an expression within a statement or text.
    Conditional StatementsHow to conditionally control the flow of your script using the if() and switch() functions.
    Looping StatementsHow to execute blocks of script a number of times.
    Arrays and Record SetsHandling sets of data.
    Filters and Lookups
    SequenceCreate a series of unique identifiers.
    MacroEncapsulate
    script so that it can be used from several different dynamic fields

    Arguments

    Arguments can contain several types of functions. (To find the correct syntax for an expression - find it in the list below or search in confluence)

    1. Another jep expression eg. if( _out.AppleHarvestDate < toDate('20210101'), 1, 0). Here we see an expression within an expression. toDate(converts the string 20210101 into a date 01-01-2021)
    2. Internal Variables (eg _out.) _out. signals that AppleHarvestDate is being sourced from the same stream as the attribute on which you are writing an expression for and that it has therefore already been calculated. Also frequently used is the name of a pipe that goes into a stream followed by a . eg in.AppleHarvestDate which signals that AppleHarvestDate is being sourced down a pipe going into the stream called 'in'. The internal variable preceding an attribute name should reflect where the attribute is being source from. There are many other internal variables, see Internal Variables.
    3. Regular Expressions - Regular expressions can be used to match patterns within strings or arrays as arguments within jep expressions, for example replaceAllreplaceFirst and matches. See Regexp ToDelete.
    4. Simple integers or strings. In the above case 1 and 0 are simple integers. They tell PhixFlow to return the number 1 if NumberOfApples > 1 and 0 if it is not. A string could be returned instead eg. if(_out.NumberOfApples > 1, 'True', 'False') would return the string True if NumberOfApples >1 and False if it is not. Note strings need to be wrapped in ' marks. 

    Additionally it is good practise to add comments to code to allow other people to understand the code you have written. Comments are not evaluated when the code is run. To add a comment start a new line and begin it with */ and end it with */. 

    eg. if(_out.AppleHarvestDate < toDate('20210101'), 1,

    /* Evaluates to 1 if AppleHarvest Date is Before 1st January 2021*/

    0

    /* and to 0 if it is not */

    )

    The pages in this topic are:

    Child pages (Children Display)depth4
    an expression so you can reuse it in different places.
    Referencing Files and Images Via a Soft LinkHow to use paths to access files on the PhixFlow server.

    Managing 4-byte Characters

    How to handle invalid characters.
    Combining PDFs

    How to present all the PDFs produced by a file exporter as pages in a single PDF.

    Binary File GrammarInformation about how to extract data from binary files, if you need to load them using a file collector.
    Functions

    The full list of all the PhixFlow functions. For example the lookup function is for filters and dynamic lookups on Pipes.
    Each function has its own help page.

    PhixScript Cheat SheetA short list of commonly used functions.