Overview
When creating apps or testing functionality, it is often necessary to create test data. There are a number of ways to do this in PhixFlow. The following methods will be covered:
- Creating an Editable Grid - This method creates a spreadsheet-style screen, that allows you to edit and update data. This method is best when using existing data
- Using External APIs - This method is best for creating large datasets using a third-party data generator (mockeroo.com)
- Using Input/Output Multipliers - This method is best for small datasets, with specific examples. The data can be easily rolled back and reset to its original state. For example, testing the results of a function
Video
Iframe |
---|
allowfullscreen | true |
---|
src | https://www.youtube.com/embed/HBvrPeLJ2_M?si=q623PIXOjczJsTKL&rel=0&ytp-pause-overlay=0&list=PLbPt6SI1Zhb9JAD6TfD-qGC6vzZXOznvn |
---|
width | 800 |
---|
height | 450 |
---|
|
Creating an Editable Grid
Use a simple ERD and Screen setup to create an editable grid.
Step 1: Create a table
Expand |
---|
|
On an , either:Create a new table by dragging Insert excerpt |
---|
| _tables |
---|
| _tables |
---|
nopanel | true |
---|
| from the toolbar onto your ERD canvas- Add an existing table by clicking
Insert excerpt |
---|
| _tables |
---|
| _tables |
---|
nopanel | true |
---|
| on the toolbar, then dragging a table from the Insert excerpt |
---|
| _repository |
---|
| _repository |
---|
nopanel | true |
---|
| onto your ERD canvas - Import a CSV file by dragging it from your PC onto your ERD canvas
If you create a new table, PhixFlow automatically adds the following attributes to the table: Insert excerpt |
---|
| _key_primary |
---|
| _key_primary |
---|
nopanel | true |
---|
| : UID Insert excerpt |
---|
| _display_name |
---|
| _display_name |
---|
nopanel | true |
---|
| : Name
- If you import a CSV file, add the above UID attribute to your table and set it as the
Insert excerpt |
---|
| _key_primary |
---|
| _key_primary |
---|
nopanel | true |
---|
| Add the attributes you require to your table by clicking Insert excerpt |
---|
| _addIcon |
---|
| _addIcon |
---|
nopanel | true |
---|
| Add on the table, and give your attributes appropriate names- New attributes only require a valid Name and Type
|
Step 2: Create a Screen
Expand |
---|
|
- To create a screen using your ERD data, click
Insert excerpt |
---|
| _more_options_erd_IconOnly |
---|
| _more_options_erd_IconOnly |
---|
nopanel | true |
---|
| on your table and choose Insert excerpt |
---|
| _screen_icon_only |
---|
| _screen_icon_only |
---|
nopanel | true |
---|
| Create Screen - On the Create Screen wizard, enter the following:
- Name: give your screen an appropriate name
- Open Maximised: toggle
Insert excerpt |
---|
| _toggle_off |
---|
| _toggle_off |
---|
nopanel | true |
---|
|
- Description: give your screen an appropriate description to indicate its purpose
- Template: choose Edit Form
- Click Create Screen
- The Available Attributes selector will automatically appear - select the attributes you wish to see on your screen
- Click the tickbox next to each attribute, or click the top tickbox to select all of the attributes, and drag them onto your screen
- PhixFlow will ask how you would like the attributes to be displayed, choose
- PhixFlow will ask if you would like to add actions, choose Yes
- On the Grid Actions wizard, drag Delete Selected Records onto the Delete button on your screen - this is the only button you need
- Close the Grid Actions and Available Attribute wizards
|
Step 3: Set up the Screen
Expand |
---|
|
- Right-click on the grid on your screen and select
Insert excerpt |
---|
| _view_show_config |
---|
| _view_show_config |
---|
nopanel | true |
---|
|
- On the
Insert excerpt |
---|
| _property_tabs |
---|
| _property_tabs |
---|
name | action |
---|
nopanel | true |
---|
| , toggle on Insert excerpt |
---|
| _toggle_on |
---|
| _toggle_on |
---|
nopanel | true |
---|
| Auto Save- Select an Auto Save Action Method of
Insert excerpt |
---|
| _actionflow |
---|
| _actionflow |
---|
nopanel | true |
---|
|
- Create a new Save Actionflow by pressing
Insert excerpt |
---|
| _addIcon |
---|
| _addIcon |
---|
nopanel | true |
---|
| . See 1.09 Save Action Configuration- Note: Enabling Auto Save automatically saves any changes made to the data
- Click
Insert excerpt |
---|
| _finish |
---|
| _finish |
---|
nopanel | true |
---|
|
- In the Layers panel, click on the area FieldContainer to open its Properties on the right
- Click on the
Insert excerpt |
---|
| _property_tabs |
---|
| _property_tabs |
---|
name | style |
---|
nopanel | true |
---|
| and within the Style Settings section, change the Width and Height to 100% - Click
Insert excerpt |
---|
| _finish |
---|
| _finish |
---|
nopanel | true |
---|
|
- Click on the Name header on the grid to open the View Attribute Properties on the right
- On the
Insert excerpt |
---|
| _property_tabs |
---|
| _property_tabs |
---|
nopanel | true |
---|
| , within the Grid Settings section, untick Read Only - Repeat this step for all of your attribute headers, except UID
- Note: Unticking Read Only will allow you to manually enter information into these columns on your grid
- Then click
Insert excerpt |
---|
| _finish |
---|
| _finish |
---|
nopanel | true |
---|
|
- With Auto Save set up, the screen no longer requires a Save button
- To delete the Save button, click on it on the screen to highlight it in the Layers, right click it in Layers and select
Insert excerpt |
---|
| _permanentlyDelete |
---|
| _permanentlyDelete |
---|
nopanel | true |
---|
|
- Open the Palette by clicking
Insert excerpt |
---|
| _palette |
---|
| _palette |
---|
nopanel | true |
---|
| on the toolbar - Expand the Buttons - Primary section and drag the Add button onto your screen - the screen will highlight the areas where the button should be dropped
- Give your button a name
- Optional: In the Layers panel, expand the area Window CRUD Bar. Then, while holding
shift , drag and drop your Add button onto either the Left or Right area within the Window CRUD Bar
Check PointAt this point, your screen should look similar to this:
|
Step 4: Add New Records via an Actionflow
Expand |
---|
|
- Right-click on your new Add button and choose
Insert excerpt |
---|
| _actionflow_add |
---|
| _actionflow_add |
---|
nopanel | true |
---|
|
- Give your actionflow a name
- To configure the input connection, within the Connections section on the left, click on Click to Connect
- Choose the On Click Action Event, then select Connect Input
- Drag the Calculate node from the toolbar onto the canvas
- Give it a name
- The Properties for the Calculate node will show on the right
- In the Output Attributes section, add a new attribute by selecting
Insert excerpt |
---|
| _addIcon |
---|
| _addIcon |
---|
nopanel | true |
---|
|
- Give it a name and set the expression to
"new" - Drag the Save node from the toolbar onto the canvas, give it a name, set the Type to Auto Insert/Update, and from the Table dropdown list, choose your table
- Connect the out pipe from the Calculate node to the Save node
- Map across your Output Attribute from the Calculate node onto the Save node
- Drag the Input Connection Point onto the Calculate node
- Close the Actionflow and open the screen you created earlier
- the screen, then select the Add button
- The Actionflow will fire and a new record will be created on the grid, with a unique ID (UID)
- Double click on the fields to manually enter information
- Repeat these steps of adding a new record and updating the information as many times as required
- Each record will save automatically
|
Check Point
At this point, your screen should look similar to this:
Using External APIs
Configure an
Insert excerpt |
---|
| _analysisModel |
---|
| _analysisModel |
---|
nopanel | true |
---|
|
to import data stored outside of PhixFlow using an API.
Create a Multi-Record Table using an API
This example uses the below three elements to create dynamic data. The table in this example will pull across data, as stipulated by the attributes, and this data will change each time the user clicks
Insert excerpt |
---|
| _run_analysis |
---|
| _run_analysis |
---|
nopanel | true |
---|
|
.
The HTTP Datasource is used to connect to the external source, the HTTP Collector then reads the data, and the Table stores the data in PhixFlow.
For more information on how these three elements work and for a detailed example, see Importing Data Through an API.
Expand |
---|
|
- Prepare your API data and ensure it is in JSON format. For this example, we have created a data schema and mock API using https://www.mockaroo.com/mock_apis
- On an
Insert excerpt |
---|
| _analysisModel |
---|
| _analysisModel |
---|
nopanel | true |
---|
| , create a new Insert excerpt |
---|
| _http_datasource |
---|
| _http_datasource |
---|
nopanel | true |
---|
|
- Set up your
Insert excerpt |
---|
| _http_datasource |
---|
| _http_datasource |
---|
nopanel | true |
---|
| Properties to look similar to the below settings, and ensure your URL matches your API source
- Hover over your
Insert excerpt |
---|
| _http_datasource |
---|
| _http_datasource |
---|
nopanel | true |
---|
| and select Insert excerpt |
---|
| _http_collector_add_new |
---|
| _http_collector_add_new |
---|
nopanel | true |
---|
| on the hover menu - Set up the
Insert excerpt |
---|
| _http_collector |
---|
| _http_collector |
---|
nopanel | true |
---|
| Properties to look similar to the below settings, and ensure your URL passes in your API key
- Hover over your
Insert excerpt |
---|
| _http_collector |
---|
| _http_collector |
---|
nopanel | true |
---|
| and select Insert excerpt |
---|
| _table_new |
---|
| _table_new |
---|
nopanel | true |
---|
|
- Set up the
Insert excerpt |
---|
| _tables |
---|
| _tables |
---|
nopanel | true |
---|
| Properties to look similar to the below settings, and ensure the Insert excerpt |
---|
| _attributes |
---|
| _attributes |
---|
nopanel | true |
---|
| you wish to display on your view are set up
Insert excerpt |
---|
| _run_analysis |
---|
| _run_analysis |
---|
nopanel | true |
---|
| on your Insert excerpt |
---|
| _tables |
---|
| _tables |
---|
nopanel | true |
---|
| , then Insert excerpt |
---|
| _view_show |
---|
| _view_show |
---|
nopanel | true |
---|
| to see your data
|
Use a simple table configuration on an
Insert excerpt |
---|
| _analysisModel |
---|
| _analysisModel |
---|
nopanel | true |
---|
|
.
Create a Multi-Record Table using an Array
This example uses an array to create static data. The table in this example will produce the exact records as stipulated in the Input Multiplier.
Expand |
---|
|
- On an
Insert excerpt |
---|
| _analysisModel |
---|
| _analysisModel |
---|
nopanel | true |
---|
| , create a blank Calculate Insert excerpt |
---|
| _tables |
---|
| _tables |
---|
nopanel | true |
---|
|
Within the Table's Insert excerpt |
---|
| _property_tabs |
---|
| _property_tabs |
---|
nopanel | true |
---|
| , add Insert excerpt |
---|
| _attributes |
---|
| _attributes |
---|
nopanel | true |
---|
| to the table, which will act as column headers- Add the Expression _inputMultiplier, followed by .1, .2, .3, etc. to the relevant attributes
- In the Analysis Options section, in the Input Multiplier box, add an array, like the example here
Code Block |
---|
| [
[1,'CHAIR',100],
[2,'TABLE',430],
[3,'MONITOR',800]
] |
Insert excerpt |
---|
| _finish |
---|
| _finish |
---|
nopanel | true |
---|
| the Properties, then Insert excerpt |
---|
| _run_analysis |
---|
| _run_analysis |
---|
nopanel | true |
---|
| on the table- Hover over the table and select
Insert excerpt |
---|
| _view_show |
---|
| _view_show |
---|
nopanel | true |
---|
|
- For this example, the data shows three records, with each record assigned the UID, Item name and Quantity as specified by the Input Multiplier, along with the Last Updated date
Tip |
---|
Alternatively, an Output Multiplier can be used to create data. Repeat the steps above, but with the following changes: - The Expression for all of your attributes must be _outputMultiplier, followed by .1, .2, .3, etc.
- Add the same array as above, but to the Output Multiplier box
- Add 1 in the Input Multiplier box to indicate the number of times the table should run
|
|