Extracting and Moving Actions

Extracting Actions to a New Actionflow

Action nodes, within an Actionflow, can be re-used by extracting them from their original Actionflow and converting them into a new Actionflow. In the original Actionflow, the actions are transferred to an embedded Actionflow node.

The newly created Actionflow automatically contains:

  • input, output and lookup connection points to connections outside of the new Actionflow, e.g. to action nodes and the original Actionflow
  • all transferred action nodes 
  • the original attributes, which are mapped to match the original Actionflow setup 

Creating a Reusable Actionflow

  1. To make a reusable Actionflow, select the required action nodes and right-click to choose  Extract to new Actionflow
    1. A new Actionflow is automatically created
    2. On the original Actionflow, the selected action nodes are replaced with the new embedded Actionflow node - see Actionflow Node

Important Considerations:

  • All action nodes requiring extraction must be connected
  • If a  Start Loop Action or  End Loop Action is extracted, its corresponding end/start loop must be extracted too
  •  Start Phase actions cannot be included in the extraction

  • Any passthrough attributes must be mapped into the original Actionflow

Moving Actions to Another Actionflow

An action node or group of action nodes can be moved to another Actionflow. This useful where you wish to reverse an action node extraction.

The nodes must be disconnected from the Actionflow's inputs and/or outputs before moving.

How-to Move Actions

  1. Disconnect the action or group of actions from the Actionflow's inputs and/or outputs
  2. Right-click on the actions nodes to be moved and choose  Move to another Actionflow
  3. On the Select Actionflow popup, use the dropdown to select the Actionflow to move the action nodes to and select OK
  4. On the Select Action Phase popup, use the dropdown to select the phase within the chosen Actionflow to move the action nodes to and select OK
  5. The Actionflow that the action node(s) have been moved to will open

Worked Example

Here's a worked example using the Retail Data (available from the Learning Centre).

In this example, we are using:  

  • Customer Form screen containing blank input fields, set up to create a new staff member  - this screen was created using the Edit Form template

If you are completing this chapter as part of the Actionflow course and using a training instance, the data and screens have already been pre-loaded into the Actionflow Intermediate Application. For this example, we'll be working on the Save button on the Customer Form screen.


Extract Proper Case Calculate Action

In this example, we'll modify the Actionflow on the Save button for when a customer is created. We'll configure this Actionflow to convert the string entered for the First Name attribute to proper case, for example, if the user enters "JOHN" or "john", this action will convert this string to "John". 

We'll then extract this Actionflow for use elsewhere in our application.

Create Proper Case Calculate Action

  1. Open the Actionflow on the Save button on the Customer Form
  2. Add a  Calculate Action
    1. This will be used to convert the text to proper case 
  3. Drag the Calculate Action onto the connector between the input and Save action
  4. Click on the input connector under Connections and map in the first_name attribute
  5. Map these two attributes into the Calculate action
  6. On the Calculate action, create a new Output Attribute that will convert text to proper case, using the following Expression
    Expression
    do(
    
        /* put the name into lowercase, e.g. "john" */
        toLower(in.first_name), " ", 
            
        /* put the first letter into upper case, e.g. "J" */
        $firstLetter = toUpper(substring(in.first_name, 1,1)), 
                
        /* put the name from the 2nd letter onwards into lower case, e.g. "ohn" */
         $remainingLetters = toLower(substring(in.first_name, 2)), 
                    
        /* create a new proper case name using the upper case first letter and lower case remaining letters, e.g. "J" + "ohn" = "John" */
        $newName = $firstLetter + $remainingLetters
    )
  7. Click on the connector between the Calculate action and the Save action

  8. Map across the new Output Attribute onto the first_name attribute

     Checkpoint

  9. Close the Actionflow and Customer Form
  10. Reopen the Customer Form and enter a First Name in upper or lower case, then press Save to test the Actionflow
  11. Open the Shop Staff screen to see the new customer record with a correctly formatted first name

Extract Proper Case Calculate Action

  1. Re-open the Actionflow
  2. Right-click on the Calculate Action and choose  Extract to new Actionflow
  3. Name the Actionflow: Proper Case
    1. Ensure the attribute customerID is removed from the out connector on the canvas of the Proper Case Actionflow so that the Actionflow can be reused elsewhere in your application