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 14 Next »

This topic is for application designers who want to understand the concepts of actionflows.

For applications created in PhixFlow versions 8.3 and earlier, use actions and stream item actions to configure user interaction with data; see Using Stream Actions.

This page explains the concepts of the new actionflow feature, introduced in PhixFlow 9.0.

Overview

Actionflows are diagrams in which you create the functionality of your application. Actionflows are wired onto the screen using connectors:

  • either to a component such as a button
  • or to data views and their attributes.

When the user triggers an action with a mouse-click or keyboard-press, PhixFlow processes the actionflow. Actionflows can affect data, for example by making  changes to stream-items, such as update or delete.

Actionflows can also move the user through their task, by validating input or opening the next screen.

For example, a CRM system includes a screen where the user enters details of a new customer. When the user clicks the update button, PhixFlow runs the actionflow to:

  1. Check the input provided is appropriate
  2. Add the new customer stream-item to the CRM database
  3. Provide a confirmation message.

This page explains actionflow concepts. For details of how to create an actionflow and their properties see: Actionflows.

Actionflow Diagrams

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

  • data interactions - save, delete, add
  • data calls and calculations - connecting to data to look-up, use or process stream-items
  • screen interactions - to open or close screens in the application
  • another actionflow - this means you can represent a complex step as a single node
  • gateways - decision points with logic to determine which path PhixFlow takes next.

As you add nodes to the actionflow, you wire the output connector of one node to the input  connector on the next. In this way, you are create the logical steps needed to complete a specific piece of functionality.  Todo UPDATE picture

Reusing Actionflows

You can resuse an actionflow throughout your application. This means you only need to create one actionflow for functionality that occurs on different screens or layouts, such as to save or update stream-items. You can also include an actionflow as a node within another actionflow.

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 connections. 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 connections to the actionflow.

todo - check: However, if you remove or add nodes, you will need to wire the input/output connectors for all the instances of the actionflow.

For each instance of an actionflow, you specify which data the actionflow takes by wiring to connectors. This means you can connect to attributes with any name.

todo - how do you select an actionflow to reuse it.

Unreachable Actions

Dashboards have a section called unreachable actions - todo - what this means and how to use it.

Illustration

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

The actionflow is reused by two applications, shown on the left. 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 of the actionflow:

  • Instance 1 is the actionflow with input from Postcode 
  • Instance 2 is the actionflow with input from Zip Code

As actionflows are reusable, you:

  • create an actionflow, setting up all the nodes, wires and the logic
  • use and actionflow, connecting it to screen components, events and data, thin mapping the data through the actionflow.

Actionflow Window

The following illustration shows the layout of an actionflow diagram. The numbered areas are explained below.

  1. Toolbar
    The toolbar contains icons that you drag onto the actionflow canvas to create the different nodes, such as a calculate action.
  2. Source
    If the source is empty, you are editing the actionflow.
    If the source contains a name, you are editing an actionflow instance.
    The source indicates what triggers the actionflow. This can be:
    • the name of the component, such as a button
    • an event, such as a double-click If this is empty then the user is editing the Actionflow directly.
  3. Options
    These options affect the entire workflow, such as hiding the loading spinner. 
  4. Inputs
    Inputs to an actionflow
    • Event starts the actionflow. Events can be:
      • either a user-triggered action, such as a mouse click on a button.
      • or system-triggered action such as a task plan.
    • View provides data to the actionflow. The event acts upon data in the same area, or nested within the area.  A view is a combination of:
      • a stream.
      • related attributes.
      • sorting and filtering of stream-items.
      • data display, such as  grid or form fields.  
  5. Connectors
    These specify the data and events that the actionflow requires. All instances of the actionflow require appropriate inputs to be wired to these connectors.
    Connectors collect data, pass data back to the calling object and perform lookups on data.  
     todo - more detail
  6. Action Nodes
    The nodes on the diagram represent individual action that pass or process the data from the connectors. Nodes can also look-up data from other sources, for example to add parameters to a calculation.


Error rendering macro 'excerpt-include' : No link could be created for '_term_tables'.

  • No labels