Versions Compared

Key

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

Insert excerpt
_Banners
_Banners
nameactionflow
nopaneltrue

Note

This page explains the concepts for actionflows, which were introduced in PhixFlow 9.0.

For applications created in PhixFlow versions 8.3 and earlier, use table-actions and record-actions to configure user interaction with data; see Using Table-Actions.

Image Removed

Overview

Actionflows control the interactions users have with your application and its data. They are reusable, which means a single actionflow can be used in multiple places with different inputs. 

An actionflow is a diagram in which you create the functionality of your application. An actionflow is Actionflows are a graphical means of creating the user functionality for your application made up of individual actions, or nodes, wired together. The actionflow is then wired onto the screen using connectors and attached to nodes wired together, each performing a specific action such as opening a screen or saving data.

An actionflow is wired onto a screen(s), or scheduled task, using an event handler, such as a button or double-click, on a:

  • Component, such as a button or areaButton
  • Grid view component and its attributes
  • Card component.
When the application user triggers an action with an event handler, PhixFlow processes the actionflow. Actionflows can affect data, by making changes to data records, such as update or delete. Actionflows can also move the application user through their task, by validating input
  • View
  • Card Container 

Actionflows can also:

  • Be scheduled to run at a specific point in time.
  • Be configured as an incoming API to PhixFlow. See PhixFlow Incoming API   
  • Be used to guide a user through a series of tasks in an application, by validating input(s) and / or opening the next screen.

For example, a simple Contacts application would include an input screen where the user enters details for a new contact. When the user clicks a "save" button, PhixFlow runs the actionflow to:

  1. Check the input provided is appropriate.
  2. Ask the user to confirm they want to add the contact.
  3. Add the new contact record to the table.

This page explains actionflow concepts. For details of how to create an actionflow, and reference information about its properties see: Creating Actionflows.

Actionflow Page Layout

Image Removed

The illustration shows the layout of an actionflow diagram. The central white area with blue outline represents the reusable part of the actionflow. The outer grey area with pink numbers represent items related to the actionflow instance only. The numbered areas are explained below:

Toolbar 
The toolbar is split into 2 sections:
 

:

Image Added

Expand
titleActionflow Layout Details

1. Toolbar 

Image Modified

  • Action Nodes contains
actions
  • the nodes that you drag onto the actionflow
canvas to create the different nodes
  • to perform specific actions, such as a calculate
or open screen action. Clicking on Open Screen and View open the Repository pane to display a list of all available screens and tables in the application and associated packages. 
  • Dragging a screen from the Repository onto your actionflow canvas will create an open screen node.
  • Dragging a table from the Repository onto your actionflow canvas will ask you if you would like to create a Save, View or Analysis node.
  • Canvas Properties contains options such as Refresh, Align and Save. It will also take you to the actionflow help page.
  • 2. Instance Origin

    The origin
    • node to enrich data or a HTTP node which connects to an external API. 
    • Canvas Properties relate to the canvas itself, providing options such as aligning content and zooming out.

    2. Instance Details

    • Origin indicates the event that triggers the actionflow instance. It displays its location in a hierarchy showing:
    the
    •  name of the screen
    .
  • the name of the component, such as a button, grid or card component.
  • the
    • → component → event type, such as a double-click.
    3. Instance Options
    These options affect the actionflow instance:
    • Show event location will take the user to the screen containing the instance of the actionflow
    instance
    • and highlight in the layers where the
    origin of the action is
    • actionflow is being triggered.
    • Close screen after action
    completes will close
    • completes closes the screen
    that contains
    • where the actionflow
    instance that is running
    • is being used, once it has finished.
    • Hide loading spinner will hide the
    toast
    • loading icon that appears
    in the bottom left corner of the screen
    • after a set amount of time to indicate the actionflow is running.

    4.

    Actionflow

    Phases
    Actionflows can be made up of multiple phases. The first phase will run automatically when the action is triggered. Any additional phases will

    only

    run when prompted to by a start phase node. See Using Actionflow Phases.

    5.

    Instance Insert excerpt_request_interface_connection_point_request_interface_connection_pointnopaneltrue to provide look-up data to the actionflow.

    7. Actionflow Canvas
    The canvas represents the reusable actionflow. It contains actions, or nodes, that are wired together using connection points. Each action has a specific purpose. It can look-up data, processes data or pass data on unchanged. Data passes from one action to another via:

    Insert excerpt_driving_connection_driving_connectionnopaneltrue to move data through the actionflowa  Insert excerpt_request_connection_request_connectionnopaneltrue to look-up data and use it in a calculation.8. Output Interface
    There are Insert excerpt_driving_interface_connection_point_driving_interface_connection_pointnopaneltrue connection points to wire the reusable actionflow to the actionflow instance outputs.

    9. Instance Outputs
    For an actionflow instance, connect to the specific data-bound components to which you want to send data when the actionflow has run. The instance outputs are similar to the instance inputs, without events.
     Data can be output to a data-bound component on a screen, including:

    • grid views
    • cards
    • forms

    Actionflow Nodes

    In an actionflow diagram, the smallest action that PhixFlow can perform is represented as a circle, called a node. Nodes

    Inputs

    The inputs to an actionflow for that instance:
    • Event starts the actionflow regardless of data. The actionflow always runs when triggered by the instance origin.
    • Data provides data to the actionflow. The data displayed belongs to the same screen or component as the event handler. Data could be any data-bound component on a screen, including:
      • grid views
      • cards
      • forms

    6. Input Interface
    There are 2 connection points to wire the actionflow instance inputs to the action nodes:

    Insert excerpt_driving_interface_connection_point_driving_interface_connection_pointnopaneltrue to provide data that the actionflow will process.

    Defines the input(s) that initiates the actionflow. These are specific to the instance of the actionflow being used. See Wiring Actionflows.

    6. Connection Points
    Define the data, or event(s), expected by the actionflow and what it will return. All instances of the actionflow use this connection point(s). See Wiring Inputs Into an Actionflow.

    7. Nodes
    Nodes are the building blocks of actionflows, they perform specific tasks and are wired together to make up the overall actionflow. For details on the different nodes see Using Actionflow Nodes.

    Connection Points

    Connection Points are the interface "in" and "out" of an actionflow. If we consider the actionflow as a black-box, connection points define what goes in and what comes out. See Wiring Inputs Into an Actionflow. Inputs, such as grid data, mouse clicks and scheduled tasks are mapped onto connection points.

    Nodes

    Nodes are the building blocks of actionflows, they perform specific tasks and are wired together to make up the overall actionflow. 

    A Node is represented as a circle with an icon and can be:

    the output connection point of one node to the input connection point on the next. In this way, you
    • data interactions, such as save, delete, add.
    • data calls and calculations that connect to data views to look-up, use or process records.
    • screen interactions, for example to open or close screens in the a screen(s) in an application.
    • gateways, which are decision points with logic to determine the path that PhixFlow takes next.
    As you add action nodes to the actionflow, you wire and map 
    • API integrations which call an external API and read its content.

    Nodes are added to the canvas by dragging them from the toolbar or by clicking on a node on the toolbar to display existing items in the repository and dragging these onto the canvas.

    For details on the different nodes and how they are used see Using Actionflow Nodes. 

    Connections and Mappings

    Connections link nodes together, and data is mapped on each connection from the Output Attributes of one node to the Input Parameters of another node. In this way we create the logical steps needed to complete a specific piece of functionality. 

    To learn more, see Using Actionflow Nodes

    Anchor
    reuse
    reuse

    Reusing Actionflows

    Actionflows can be reused throughout your application. This means you only need to create one actionflow for functionality that occurs on different screens, such as to update records or to processing address data or to open a specific screen. For each instance of an actionflow, you specify the data that the actionflow uses by wiring into its  connection points.

    Note

    When you reuse an actionflow, you do not create a copy of it. You are using the actionflow itself. An instance of an actionflow is the combination of the actionflow and its input and output connectionsinputs. You can change an actionflow and the same change occurs in all the instances where it is used. The changes do not affect the input and output connections of the actionflow.

    For each instance of an actionflow, you specify the data that the actionflow uses by wiring into connection points. This means you can connect to attributes with any name, and changing the names of these attributes will not affect the actionflow.

    To select an existing actionflow to reuse it, click 

    Insert excerpt
    _actionflow
    _actionflow
    nopaneltrue
     next to any actionflow field to display a list of previously created actionflows. Drag the selected actionflow onto the actionflow field. The actionflow opens for you to specify the data the actionflow needs to use in that instance.

    Reusability Example

    The picture below shows an actionflow that validates the format of data to ensure it is a valid area code. Its input connection is called Area Code.

    The actionflow is reused by two applications, shown on the left. The actionflow is owned by a package that is shared between the applications. Each application has separate data with different fields. The actionflow takes data from:

    • Postcode data in the Contact App
    • Zip Code in the Asset Manager App. 

    This shows that an actionflow can take its input from an attribute with any name. It also illustrates the 2 instances which is mapped onto the Connection Point for its instance of the actionflow:

    • Instance 1 is of the actionflow with input from Postcode : Postcode data from the Contact App
    • Instance 2 is the actionflow with input from Zip Codeof the actionfow: Zip Code from the Asset Manager App.
    Note

    To make actionflows reusable between different applications they must belong to a package which is shared between the two applications.

    HTML Comment
    hiddentrue

    Unreachable Actions 

    You can add an actionflow to a screen before assigning it to an event handler. These actionflows are known as unreachable actions and are listed in the screen properties. When you are ready to wire the actionflow, from the screen properties Unreachable Actions section drag the actionflow onto a component on the screen. PhixFlow opens the actionflow diagram where you can connect the instance inputs.

    What's next?

    Child pages (Children Display)styleh3

    API Integration

    Connect to External APIs

    The HTTP Node is used in to establish a connection to an external API for the purposes of retrieving or writing to it. When reading data from an API, the HTTP node is combined with a JSON Node which reads incoming data and converts it into a workable format for PhixFlow. See HTTP Node and JSON Node.  

    Internal API Connections

    Actionflows support the creation of APIs into PhixFlow. This is achieved by setting an Actionflow to be an API End-Point in its properties. See PhixFlow Incoming API.   

    Submitting Data

    Setting an actionflow as a Submit actionflow, will ensure validation is run on the data before the actionflow is started. This allows validation issues to be returned to user to resolve before they continue.

    Allow to Run with Errors 

    Available when the actionflow is set to submit.

    It is possible to set an actionflow to run even if it contains validation issues. For example, a customer services application records user details, if the user does not have all mandatory information available we might wish to save the data entered so far and progress at a later data when this information becomes available. See Adding Validation.

    Nesting Actionflows

    Actionflows can be embedded within one another, this essentially creates a bespoke node to perform a specific task. For example, an actionflow which sets nonstandard country information to a two digit ISO country code, could be nested within an actionflow that standardises address information. See Actionflow Node

    Phases

    Actionflows can be separated into

    Insert excerpt
    _action_phase
    _action_phase
    nopaneltrue
    s. This can be used to divide complex actionflows into more manageable chunks, but also because Actionflows process data one record at a time you may want to process all records up to a point before continuing to the next phase.

    Confirmation Dialogs

    Confirmation dialogues can be added to Actionflows, these ask the user for a confirmation before continuing, for example, "Are you sure you wish to archive these records?". Confirmation screens are setup in a specific way detailed in Configure a Confirmation.

    Security

    Security can be applied to Actionflows so that only those with sufficient permissions can run the actionflow. Further to this if an actionflow is assigned to a button and the user does not have permission to run the actionflow, the button will not be displayed on a screen. See Actionflow Properties.

    Actionflow Example

    Expand
    titleExample Actionflow configuration.

    The following example is a simple actionflow that:

    1. From the All Companies grid view, for the selected record the attributes Company Name and Company ID are mapped into the actionflow.
    2. The Connection Point data is mapped onto the Input Parameters of the 
      Insert excerpt
      _action_calculate
      _action_calculate
      nopaneltrue
      . The Company Name is then used to create a new attribute which contains the text "Details for: " plus the company name, for example "Details for: PhixFlow".
    3. The Output Attributes from the 
      Insert excerpt
      _action_calculate
      _action_calculate
      nopaneltrue
       are mapped into the input parameters of the 
      Insert excerpt
      _action_screen
      _action_screen
      nopaneltrue
      .
      1. The message created above is mapped onto a dynamic text header on the screen, so that for the selected record the title of the page reads "Details for Selected Company Name". 

    Image Added

    What next?

    PhixFlow Fundamentals, this course provides a practical guide to using PhixFlow including setting up Actionflows within your application.

    Further Reading

    Child pages (Children Display)
    depth1