Multi-Row Operator: Using Multiple Operators

Overview

Sometimes, you'll want to use more than one Multi-Row operator at once. This can give you a little more context when analyzing your data. Let's say you want to compare stock prices over 5 days. To do that, you'll use a Data Table to hold your stock prices on a given day. Then, you'll use a Data Workflow with 4 Multi-Row operators to create the additional data.

Here's how your module will look in the Module Builder:

Here's how your module will look in Express View:

What You'll Learn

In this article, you'll learn how to use multiple Multi-Row operators in one Data Workflow.

What You'll Need

To set up this use case, you’ll need:

  • 1 Data Table component

  • 1 Hidden component

  • 1 Chart component

  • 1 Button component

  • 1 Data Workflow component

To set up your Data Workflow, you'll need:

  • 1 Input operator

  • 4 Multi-Row operators

  • 1 Create Field operator

  • 1 Pick operator

  • 1 Output operator

  • 1 Console operator

These instructions assume you have a new module open, saved with a title.

Configuration

Configure the Data Table Component

First, let's set up your sample data. You'll use a Data Table for that.

1. Drag and drop a Data Table component onto your canvas.
2. Enter dtStocks in the Label and Property Name fields.
3. In the data table, enter the following:

stock

price

date

ABC

54

2021-07-01

ABC

65

2021-07-02

ABC

67

2021-07-03

ABC

78

2021-07-04

ABC

99

2021-07-05

ABC

87

2021-07-06

ABC

45

2021-07-07

ABC

32

2021-07-08

ABC

12

2021-07-09

ABC

12

2021-07-10

ABC

12

2021-07-11

ABC

87

2021-07-12

ABC

65

2021-07-13

ABC

54

2021-07-14

ABC

43

2021-07-15

ABC

55

2021-07-16

ABC

66

2021-07-17

ABC

77

2021-07-18

ABC

88

2021-07-19

4. Click Save.

Configure the Hidden Component

You'll use a Data Workflow to duplicate your stock prices. But first, you'll need a place to store your final data. You'll use a Hidden component for that.

1. Drag and drop a Hidden component onto your canvas. Place your Hidden component below your Data Table.
2. Enter multiFiveDay in the Property ID and Canvas Label Text fields.
3. Click Save.

Configure the Data Workflow Component

Now it's time to add your Data Workflow. Here, you'll use an Input operator to bring in your original data. Then, you'll use 4 Multi-Row operators configured to duplicate your price data. Your first Multi-Row operator shifts your data up 1 step. The second shifts your data up 2 steps, and so on. This gives you 5 stock prices in each row of your table, each from a different date. Then, you'll add a Create Field operator to take the average between those 5 stock prices. You'll also use a Pick operator to draw out 3 pieces of data:

  • Date

  • Stock price

  • 5-day average price

Finally, you'll use an Output operator to place that data in your Hidden component.

1. Drag and drop a Data Workflow component onto your canvas. Place your Data Workflow below your Data Table.
2. Enter dwfMultiRow in the Canvas Label Text and Property Name fields.

Configure the Input Operator

This operator references your original data.

1. Drag and drop an Input operator onto your Data Workflow canvas.
2. Configure the Input operator's Info window as follows:

Setting

Value

Category

Input

Component

dtStocks

Required

Yes

Source

Default

Configure the First Multi-Row Operator

This operator duplicates your price data and moves it up 1 row.

1. Drag and drop a Multi-Row operator onto your Data Workflow canvas.
2. Configure the Multi-Row operator's Info window as follows:

Setting

Value

Category

Multi-Row

Label

Price 1

Default

0

Key Name

price

Steps

1

New Key Name

priceB

3. Connect the output port (right) of the Input operator to the input port (left) of the Multi-Row operator.

Configure the Second Multi-Row Operator

This operator duplicates your price data and moves it up 2 rows.

1. Drag and drop another Multi-Row operator onto your Data Workflow canvas.
2. Configure the Multi-Row operator's Info window as follows:

Setting

Value

Category

Multi-Row

Label

Price 2

Default

0

Key Name

price

Steps

2

New Key Name

priceC

3. Connect the output port (right) of the Price 1 Multi-Row operator to the input port (left) of the Price 2 Multi-Row operator.

Configure the Third Multi-Row Operator

This operator duplicates your price data and moves it up 3 rows.

1. Drag and drop another Multi-Row operator onto your Data Workflow canvas.
2. Configure the Multi-Row operator's Info window as follows:

Setting

Value

Category

Multi-Row

Label

Price 3

Default

0

Key Name

price

Steps

3

New Key Name

priceD

3. Connect the output port (right) of the Price 2 Multi-Row operator to the input port (left) of the Price 3 Multi-Row operator.

Configure the Fourth Multi-Row Operator

This operator duplicates your price data and moves it up 4 rows.

1. Drag and drop another Multi-Row operator onto your Data Workflow canvas.
2. Configure the Multi-Row operator's Info window as follows:

Setting

Value

Category

Multi-Row

Label

Price 4

Default

0

Key Name

price

Steps

4

New Key Name

priceE

3. Connect the output port (right) of the Price 3 Multi-Row operator to the input port (left) of the Price 4 Multi-Row operator.

Configure the Console Operator

This operator lets you view your data after it's gone through the Multi-Row operators. This is optional, though it's useful for troubleshooting purposes.

1. Drag and drop a Console operator onto your Data Workflow canvas.
2. Configure the Console operator's Info window as follows:

Setting

Value

Category

Console

Label

Multi-Row Result

3. Connect the output port (right) of the Price 4 Multi-Row operator to the input port (left) of the Console operator.

Configure the Create Field Operator

This operator finds the average of your 5 stock prices. It then places that average in a new key of your table called priceAvg.

1. Drag and drop a Create Field operator onto your Data Workflow canvas.
2. Configure the Create Field operator's Info window as follows:

Setting

Value

Category

Formula

Label

priceAvg

Do Not Sanitize Formula

Yes (checked)

Field 1

priceAvg=SUM(price,priceB,priceC,priceD,priceE)/5

Field 2

 

Field 3

 

Field 4

 

Field 5

 

3. Connect the output port (right) of the Price 4 Multi-Row operator to the input port (left) of the Create Field operator.

Configure the Pick Operator

This operator draws out your date, price, and priceAvg data.

1. Drag and drop a Pick operator onto your Data Workflow canvas.
2. Configure the Pick operator's Info window as follows:

Setting

Value

Category

Pick

Label

date,price,priceAvg

Pick Keys

date,price,priceAvg

3. Connect the output port (right) of the Create Field operator to the input port (left) of the Pick operator.

Configure the Output Operator

This operator places the data from your Pick operator into your Hidden component.

1. Drag and drop an Output operator onto your Data Workflow canvas.
2. Configure the Output operator's Info window as follows:

Setting

Value

Category

Output

Component

multiFiveDay

Action

value

3. Connect the output port (right) of the Pick operator to the input port (left) of the Output operator.
4. Click Save.

Configure the Chart Component

With your new data created, you're ready to display it. Your Chart component handles that. You'll configure this component to draw from the data in your Hidden component. Remember, your Hidden component holds the date, the stock price for that date, and the 5-day average stock price for that date. And you'll set the date can serve as the X-axis for both of the other data points.

1. Drag and drop a Chart component onto your canvas. Place your Chart below your Hidden component.
2. Enter 5 Day Moving Avg in the Label field.
3. Enter chartFive in the Property Name field.
4. In the Inputs table, enter the following:
ID Label Chart Type Categories Values

multiFiveDay

Price

line

date

price

multiFiveDay

5 Day Avg

line

date

priceAvg

5. Click the Formatting tab at the top of the configuration window.
6. Enter Date in the X Axis Label field.
7. Enter Price in the Y Axis Label (Primary) field.
8. Set the Show Legend setting to Yes (checked).

9. Click Save.

Configure the Button Component

Now all you need is a way to start the whole operation. You can use a Button for that.

1. Drag and drop a Button component onto your canvas. Place your Button below your Data Table.
2. Enter btnMultiRow in the Property ID field.
3. Enter Start Multi-Row in the Label Text field.
4. Select Event as the Action Type.
5. Enter dwfMultiRowFive in the Trigger on Click field.

6. Click Save.
7. Save your module.

Now it's time to preview your work. Open your module in Express View and click your button. Your chart populates with the new data from your Hidden component. Now, you'll see how your average stock prices have changed over 5 days.

And here's exactly what happened with your Multi-Row operators, as seen in the DevTools Console:

You'll see that each of your rows now contains price, priceB, priceC, and priceD. This is the result of your Multi-Row operators taking your original price data and moving it up the set number of rows.

Lab

You can view this complete use case here: https://training.unqork.io/#/form/60e73ef5f1709f2629c0f8ba/edit.