What is a Lookup?
Lookups are denoted by a dotted double-ended connector transferring data into and out of a Action, and are used to lookup and retrieve records in other recordsets. Lookup views require: View
- 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
- Outgoing Mappings: the attributes being passed out of the View Action via the lookup connector
Creating Lookups
- Hover over an action node, e.g. a Calculate Action, on the canvas and select
- Enter a name for the Lookup Connector
- Click onto a Viewaction on the canvas
- 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:
- A Course Management screen containing - this screen was created using the Tile with Buttons template, and contains:
- A grid of the School Courses data
- A contacts card container of the School Students data
- An empty string field, StudentIDFromAttendees
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 expandable tile on the Course Management screen.
Lookup to Retrieve Data
We will create an Actionflow containing a Action and a Calculate ViewAction. The Calculate Action will allow the input data to pass through into the View Action, where it will be used to lookup to the Course Attendees table to find the Student IDs of the students attending a course.
The Actionflow will output the Student IDs from the Attendees data to a string field, where we will set up a background filter that uses the string field to filter a contacts card container of Students to show only those attending the course.
To do this it we will:
- Lookup using the Course ID, which is found on both the Course and Attendees tables
- Use the Course ID on the Attendees table to find the corresponding Student ID(s) of the student(s) attending that course
- Write those Student ID(s) back to the screen onto a string field
- Setup a background filter to only show students in a Students contacts card container that match the Student ID in the field
Screen Setup
- your screen to expand the Students Lockcontacts card container on the right, shown by the tile with chevron
- your screen and click Unlock in the toolbar to open the Serene Grey palette Palette
- Expand Buttons - Secondary and add a custom button to the Tile - Footer area beneath the School Courses grid
- Name:
Enrolled Students
- Name:
- Using the , hold down shift to move the button into the area, Right Layers
Create Calculate Action and View Action
- Right-click on the Enrolled Students button and choose Add Actionflow
- Enter a name for the Actionflow:
- Name:
Find Students
- Select Confirm
- Name:
- Select Click to Connect and for the input, choose the School Course , then select Connect Input Grid View Component
- In the Mappings window that opens, drag the CourseID attribute from the left to the right
- Select Save
- Click and drag the icon from the toolbar onto the canvas Calculate
- In the Create Calculate Action window enter:
- Name:
FindStudents
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.
- Name:
- Click and drag the action node Calculate icon onto the
- Right-click on the in connector and choose Open Mappings
- Drag the CourseID attribute on the left onto the Drag and Drop area on the right
- Select Save
- To look up to the Course Attendees table, we need to create a Action View
- Click and drag the icon from the toolbar onto the canvas View
- In the Create View Action window enter:
- Name:
GetStudentID
- Primary Table: choose
Course Attendees
Select Create Action
- Name:
Configure the Lookup on the View Action
- Hover over the Action and select Calculate
- Enter a name for the Lookup Connector:
- Name:
lu
- Select Confirm
- When the red arrow shows, click on the action on the canvas View
- Name:
- Select the action on the canvas to open its View Properties
- In the Output Attributes section, click on the
- In the Available Attributes window, drag StudentID into the Output Attributes section of the Properties
- Click OK
icon - Select the lu connector to map the incoming and outgoing data
- For the Incoming Mappings:
- Drag the CourseID attribute from the left (Calculate Action) into the Drag and Drop area on the right to create a corresponding attribute in the action View
- Select Next
- For the Outgoing Mappings:
- Drag the StudentID attribute from the left (View Action) to the Drag and Drop area on the right to map a corresponding attribute back to the action Calculate
- Right-click on the StudentID attribute you just created and select Edit
- Rename the attribute:
StudentIDFound
- Click Confirm
- Drag the StudentID attribute from the left (View Action) to the Drag and Drop area on the right to map a corresponding attribute back to the action Calculate
- We need to filter the data coming out of the lookup
- Click on the action to open its Properties View
- In the Data Retrieval Options section, click the
- Name:
ByCourseID
- Filter Details:
- Click abc to interpret the field as an expression
- the Filter tab Apply and Close
icon next to Filter - Name:
- the View Action tab Apply
Configure the Calculate Action and Output
- Click on the action on the canvas to open its Calculate Properties tab
- In the Output Attributes section, click the
- Name:
CourseStudentIDs
- Type: Choose
Structured Data
- This will return the results as an array
Expression:
lu.StudentIDFound
Click Apply and Close
icon to create a new attribute: - Name:
- Under Connections on the left, select Add
- Add an Output Connection Point:
- Name:
out
- Type: choose Output
- Click Create Connection Point
- Name:
- Select Click to Connect and choose the CourseManagement , then Connect Output Form
- Close the Mappings window that opens
- Hover your mouse over the action on the canvas and click out Calculate
- When the red arrow shows, click on the node under Connections
- On the Mappings window, drag across the CourseStudentIDs output attribute from the Calculate action into the Drag and Drop area on the right to create a corresponding attribute in the output
- Click Save
- Click the out connection point, under Connections
- On the Mappings window, drag the CourseStudentIDs output attribute from the output to the string field, StudentIDFromAttendees
- Click Save
- The Actionflow is now built
Setup Background Filter
The Actionflow will populate the string field, StudentIDFromAttendees, but the values in this field need to be linked to the Students contact cards using a background filter in order to only see the students for the selected course only.
- Return to the Course Management screen
Click on the Students contact card container to open the Card Component Properties
- Ensure you click on the white space underneath the top contact card to open the Card Component
On the , in the Properties tab Background Filter Rules section, click
- Enter the Rule Expression:
true
- Create a new filter by pressing
- Name:
ByStudentID
- Filter Details:
- Click on both the Filter and Filter Rule Apply and Close Properties
next to Filter: - Name:
- the screen and press the Enrolled Students button to see the Actionflow working Lock
Once you have verified the Actionflow is working, the StudentIDFromAttendees string field can be hidden in the to tidy up the screen. Styles tab