Lookup Configuration

What is a Lookup?

Lookups are denoted by a dotted double-ended connector transferring data into and out of a   View Action, and are used to lookup and retrieve records in other recordsets. Lookup views require:

  • Request (Incoming) Mappings: the attributes being passed into the View Action via the lookup connector
  • Output Attributes: the attributes being used by View Action to filter results
  • Return (Outgoing) Mappings: the attributes being passed out of the View Action via the lookup connector 

For views, see View Action Configuration.

Views vs Lookups

 Learn More

There are two kinds of View.

Views

  Views return a set of individual records which flow through the Actionflow one-by-one.

Typically, Views are used where the data requires processing, e.g. sending emails to individuals.

This is the most common type of view.

Lookups

Lookups are a type of View but they return records as an array within one recordset

Generally, Lookups are used where data requires listing, e.g. to display in a filter.

Creating Lookups

  1. Hover over an action node, e.g. a Calculate Action, on the canvas and select 
  2. Enter a name for the Lookup Connector
  3. Click onto a   View action on the canvas
  4. Alternatively, click onto any empty space on the canvas to create a new   View Action


Worked Example

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

In this example, we are using:

  • Classroom Management screen  - this screen was created using the Tile with Buttons template, and contains:
    • A basic card container of the Classroom data
    • A basic card container of the Courses data
    • An empty string field, FilterField

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 Foundation Application. For this example, we'll be working on the Classroom Management screen. 

Lookup to Classroom Courses

In this example, we want to see the courses held in each classroom when each classroom is clicked. To do this, we will use the classroom data to lookup and retrieve the associated courses data, then output that data back to the screen where it can be used to filter the courses data.

To do this it we will:

  • Lookup the courses using the Classroom ID, which is found on both the Classroom and Course tables
  • Write those courses' Course ID(s) back to the screen onto a string field
  • Setup a background filter to only show courses in a Courses card container that match the Course ID in the field

Event Handler Setup

Event handlers facilitate actions occurring in response to a user action. For this example, we want a user clicking on a classroom card to run an Actionflow that populates a string field that we will later to use to filter the information that can be seen on screen

  1.  Click on the top card on the Classroom Management screen to open the  Properties for the area, Card
  2. Click on the  Actions tab
  3. Click the  icon in the Event Handler section
  4. In the New Card (On Click) Event Handler tab, click  Apply
    1. Enter a name for the Actionflow:
      1. Name: Filter Courses

Create Calculate Action and Lookup

  1. Select Click to Connect and for the input, choose the Classrooms Card Component, then select Connect Input   
  2. In the Mappings window that opens, drag the ClassroomID attribute from the left to the right
    1. Select Save
  3. Click and drag the  Calculate icon from the toolbar onto the canvas
  4. In the Create Calculate Action window enter:
    1. Name: GetCourses
    2. Select Create Action

      For the input data, the attributes pass through the Calculate action without being processed. For the output data, the Calculate action processes the data into an array. 

  5. Click and drag the  icon onto the  Calculate action node
  6. Right-click on the in connector and choose  Open Mappings
    1. Drag the ClassroomID attribute on the left onto the Drag and Drop area on the right
    2. Select Save
  7. To look up to the School_Courses table, hover over the  Calculate action node and choose, Add Lookup
    1. On the Add Connection Point window, name the lookup: luc
      1. We recommend choosing a name to indicate the action taking place, e.g. "luc" for look up courses
    2. Click Confirm
  8. With the red arrow attached to your mouse, click anywhere on the canvas
  9. In the Create View Action window enter:
    1. Name: Courses
    2. Primary Table: choose School_Course 
    3. Select Create Action

Configure the Lookup 

  1. The Output Attribute Selection window will open automatically 
    1. Click the tick box next to CourseID
    2. Click Next
  2. The Request (Incoming) Mappings window will open automatically
    1. Drag the ClassroomID attribute from the left (Calculate Action) into the Drag and Drop area on the right to create a corresponding attribute in the   View action
    2. Select Next
  3. The Return (Outgoing) Mappings window will open automatically
    1. Drag the CourseID attribute from the left (View Action) to the Drag and Drop area on the right to map a corresponding attribute back to the  Calculate action
    2. Click Confirm and Create Filter
  4. We need to filter the data coming out of the lookup 
    1. Name: ByClassroomID
    2. Click abc to tell PhixFlow to interpret the field as an expression
    3. Filter Conditions: 
      1. In this filter, the top CourseID is from the Courses data, and the bottom CourseID is from the Classroom data  
    4. Select Finish
 Checkpoint

Configure the Calculate Action and Output

  1. Click on the  Calculate action on the canvas to open its  Properties tab
  2. In the Output Attributes section, click the  icon to create a new attribute:
    1. Name: CourseIDArray
    2. Type: Choose Structured Data   
      1. This will return the results as an array

    3. Expression: 
      luc.CourseID
    4. Click  Apply and Close

  3. Under Connections on the left, select  Add

  4. Add an Output Connection Point:

    1. Name: output
    2. Type: choose Output

    3. Click Create Connection Point
  5. In the Connect Output window, choose the ClassroomAvailabilityManagement  Form, then Connect Output
    1. Close the Mappings window that opens as we don't have any attributes to map to this yet
  6. Hover your mouse over the  Calculate action on the canvas and click out
  7. When the red arrow shows, click on the  node under Connections
    1. On the Mappings window, drag across the CourseIDArray attribute from the Calculate action into the Drag and Drop area on the right to create a corresponding attribute on the output
    2. Click Save
  8. Click the output connection point, under Connections
    1. On the Mappings window, drag the CourseIDArray attribute from the output to the string field, FilterField
    2. Click Save
  9. The Actionflow is now built
 Checkpoint

Setting up a Background Filter

The Event Handler and Actionflow will now populate the string field, FilterField, by clicking each classroom card, but the Courses card container needs a background filter setting so it can be filtered by the values in the string field.

 Troubleshooting

If at any point your screen does not display the expected results, such as clicking on the classroom card does not populate FilterField, or after creating the below filter the Courses cards do not filter, always try closing and reopening the screen first.

  1. Return to the Classroom Management screen 
  2. Click on the Courses card container to open the Card Component  Properties 

    1. Ensure you click on the white space underneath the top contact card to open the Card Component
  3. On the  Properties tab, in the Background Filter Rules section, click 

    1. Enter the Rule Expression: true
  4. Create a new filter by pressing  next to Filter:
    1. Name: ByFilterField
    2. In the Filter Details section, click Select an option and choose the CourseID in the Table Attributes
    3. Filter Details: 
    1. Click  Apply and Close on both the Filter and Filter Rule  Properties
  5.  Lock the screen and click a classroom card to see the Actionflow working

Having trouble? See Troubleshooting above.

Once you have verified the Actionflow is working, the FilterField string field can be hidden in the  Styles tab or  Layers to tidy up the screen.