Input Switch Operator: Creating a Comment Array

Overview

The Input Switch operator lets you configure a single Data Workflow path with 2 inputs. The operator then decides which input to use based on a condition of your choosing. A common use for this operator is to create an array of comments inside your application. To do this, you'll need a Create Table operator when you receive your first comment. Then, you'll use a standard Input operator to add new comments to those you already have. To switch between these inputs, you'll add an Input Switch operator.

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

Here's how the completed use case will look in Express View with a sneak peek at the DevTools Console:

What You'll Learn

In this article, you'll learn how to use an Input Switch operator to create an array of comments.

What You'll Need

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

  • 1 Text Area component

  • 1 Hidden component

  • 1 Initializer component

  • 1 Button component

  • 1 Data Workflow component

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

  • 3 Input operators

  • 2 Create Table operators

  • 2 Create Field operators

  • 1 Get operator

  • 1 Size operator

  • 1 Input Switch operator

  • 1 Append operator

  • 1 Console operator

  • 2 Output operators

Configuration

Configure the Text Area Component

First, you'll need a place to enter comments. You'll use a Text Area for that.

1. In the Module Editor, drag and drop a Text Area component onto your canvas.
2. Enter comment in the Property ID field.
3. Enter Comment in the Label Text field.
4. Click Save.

Configure the Initializer Component

You'll use an Initializer component to clear your Text Area after each comment. You'll reference this later, setting your Data Workflow to trigger the Initializer every time it runs.

1. Drag and drop an Initializer component onto your canvas. Place your Initializer above your Text Area.
2. Enter initClear in the Property ID and Canvas Label Text fields.
3. In the Outputs table, enter the following:
Property ID Type Value

comment

clear

yes

4. Click Save.

Configure the Hidden Component

Next, let's add a place to hold all the comments you receive. You'll use a Hidden component for that. Later, you'll set this as an output in your Data Workflow.

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

Configure the Data Workflow Component

Now let's set up your Data Workflow. You'll use many operators to collect your end-user's information and append it. Pay attention to the Input Switch operator in this configuration, though. Here, you'll connect a Create Table operator to fire when you receive your first comment. But you'll also connect an Input operator to reference your final commentsTable Hidden component. Then, you'll use a Size operator to determine if your Hidden component holds any comments or if it's empty. This Size operator serves as the argument for your Input Switch operator. So, if your Hidden component has a size greater than 0, the Input Switch chooses that as the input. This lets you keep all your comments in one place. And if your Hidden component is empty, the Input Switch chooses your Create Table operator instead.

In short, your Input Switch uses your Create Table operator only for the first comment. For every comment that follows, the Input Switch chooses your Hidden component.

1. Drag and drop a Data Workflow component onto your canvas. Place your Data Workflow between your Text Area and Hidden components.
2. Enter dwfAddComment in the Canvas Label Text and Property ID fields.

Configure the First Input Operator

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

comment

Required

No

Source

Default

Configure the First Create Table Operator

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

Setting

Value

Category

Create Table

Label

New Comment

Create Index

No

Number of Rows

1

Configure the First Create Field Operator

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

Add Comment

Do Not Sanitize Formula

No (unchecked)

Field 1

comment=_arg

Field 2

 

Field 3

 

Field 4

 

Field 5

 

3. Connect the output port (right) of the comment Input operator to the argument port (top) of the Create Field operator.
4. Connect the output port (right) of the New Comment Create Table operator to the input port (left) of the Create Field operator.

Configure the Second Input Operator

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

Setting

Value

Category

Input

Component

currentUser

Required

No

Source

Default

Configure the Get Operator

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

Setting

Value

Category

Get

Label

Get Name

Path

name

3. Connect the output port (right) of the currentUser Input operator to the input port (left) of the Get operator.

Configure the Second Create Field Operator

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

Setting

Value

Category

Formula

Label

Add Name

Do Not Sanitize Formula

No (unchecked)

Field 1

writtenBy=_arg

Field 2

date = moment(moment(),'format', 'MM/DD/YYYY')

Field 3

 

Field 4

 

Field 5

 

3. Connect the output port (right) of the Add Comment Create Field operator to the input port (left) of the Add Name Create Field operator.
4. Connect the output port (right) of the Get operator to the argument port (top) of the Add Name Create Field operator.

Configure the Third Input Operator

This Input operator serves as the first input for your Input Switch. This operator brings in any existing comments in your array. If you don't have any comments yet, the Input Switch you'll add later chooses a different input.

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

Setting

Value

Category

Input

Component

commentsTable

Required

No

Source

Default

Configure the Size Operator

This Size operator determines whether your commentsTable Hidden component holds any data. This serves as the argument for the Input Switch you'll add in a few steps.

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

Setting

Value

Category

Size

Label

Number of Comments

3. Connect the output port (right) of the commentsTable Input operator to the input port (left) of the Size operator.

Configure the Second Create Table Operator

This Create Table operator serves as the second input for your Input Switch. If you don't have any existing comments in your array, the Input Switch chooses this input.

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

Setting

Value

Category

Create Table

Label

First Comment

Create Index

 

Number of Rows

 

Configure the Input Switch Operator

The Input Switch operator determines whether you have an exiting array of comments or if you're starting with your very first comment. It uses the Size operator above as an argument when choosing between your commentsTable Input or your First Comment Create Table operators.

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

Setting

Value

Category

Input Switch

Label

If Comments Exist

Do Not Sanitize Formula

No (unchecked)

Condition

_arg > 0

3. Connect the output port (right) of the commentsTable Input operator to the upper input port (left) of the Input Switch operator.
4. Connect the output port (right) of the First Comment Create Table operator to the lower input port (left) of the Input Switch operator.
5. Connect the output port (right) of the Size operator to the argument port (top) of the Input Switch operator.

Configure the Append Operator

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

Setting

Value

Category

Append

Label

Append Tables

3. Connect the output port (right) of the Input Switch operator to the upper input port (left) of the Append operator.
4. Connect the output port (right) of the Add Name Create Field operator to the lower input port (left) of the Append operator.

Configure the First Output Operator

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

commentsTable

Action

value

3. Connect the output port (right) of the Append operator to the input port (left) of the commentsTable Output operator.

Configure the Second Output Operator

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

Setting

Value

Category

Output

Component

initClear

Action

trigger

3. Connect the output port (right) of the Append operator to the input port (left) of the initClear Output operator.

Configure the Console Operator

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

Final Table

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

Configure the Button Component

Finally, let's add a button to trigger your whole operation.

1. Drag and drop a Button component onto your canvas. Place your button between your Text Area and Data Workflow components.
2. Enter btnAddComment in the Property ID field.
3. Enter Add Comment in the Label Text field.
4. Select Event as the Action Type.
5. Enter dwfAddComment in the Trigger on Click field.

6. Click Save.
7. Save your module.

Now you can test it out! Open your module in Express View and enter a comment. You'll see your comment in the DevTools Console. Now, type another comment and click Add Comment. You'll see your new comment added to the same array as your first comment. This gives you all your comments in one place that you can reference later.

Lab

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