In this article, you will learn...
- How to write the logic within a routing app
- Multiple methods for directing operators to other apps
Most Tulip apps are created for a specific purpose, like:
- Work instructions
- Production visibility
- Defect reporting
But, you can also create apps that are strictly meant to redirect operators to other apps.
From the operator experience, this will feel like one continuous flow:
- Open up an app
- Scan a barcode or press a button
- Begin the correct procedure for assembly/inspection etc.
But, from an app building perspective, they are actually using two separate apps: one for routing, and one for instructions.
This guide will teach you how to build a routing app that will automatically redirect an operator to another app based on a work order number or a product name.
There are three common ways to do this:
- Show a list of products, and add a button next to each one that will redirect the operator
- Upon scanning a work order, redirect the operator based on a certain character or number in the work order number using "If" statements
- Naming different app after different processes or products and then redirecting dynamically based on a value using "Go To App By Name"
This guide will focus on building a separate routing app, but you can also create a routing step within an app, and redirect the operator to a specific step group.
Routing Via Multiple Buttons
Let's imagine that you manufacture 10 different products. When an operator receives a work order, they must select the individual product that they are working on. This will redirect them to the correct set of instructions.
You can do this with custom buttons. First, add the images and text for each product or product category. It might look like this:
Then, add a custom button next to one of the products. Then, add a trigger that will direct the operator to the correct app.
The step should look like this:
And the trigger might look like this:
- "App" "Complete Then Change To" (app name here)
Then, copy and paste this button next to each product name, and change the trigger so that the operator will be directed to the correct app.
Automatic Redirect Based on Work Order Number or SKU
Let's say that you instead would like to automatically redirect operators after they enter a batch number or barcode number. Since barcodes require manual input, you cannot use a series of buttons.
Instead, you can use a Form Step with if/else logic to direct operators based on a letter or number in the string.
First, create a Form Step with a text input. Let's say that it is for a SKU.
Then, track this value in a variable by clicking the "+" sign next to the "Variable" section of the Context Pane.
Next, after clicking the step itself, choose "Custom Action" under the Submit button section of the Context Pane and choose "Add Trigger"
Then, add an "If" statement that looks for a specific character in that string, and add the correct app in the "Then" statement.
Here's how to redirect an operator to a set of work instructions if the SKU contains the letter "A":
- "Variable" "Add SKU Number" "Contains" "Static Value" "text" "A"
- "App" "Complete Then Change To" "Cabinet Making Instructions".
Add an "Else If" statement for each possible app that the operator might need.
Redirecting Dynamically Based on A Value In An App
Let's imagine that you are repairing parts in the aerospace industry, and after you complete one repair, there are 10 options for what the operator might need to do next.
You probably don't want to write 10 "if" statements to redirect them to one of 10 different apps.
Instead, you can use "Complete And Change App By Name" to redirect to a separate app based on a variable value.
For example, let's imagine that you have a variable called "next_operation" that stores the next operation that the operator must complete. This text value must match the name of another app exactly in order for this logic to work.
Here's how to redirect to another app based on the value stored in "next_operation":
- "App" "Complete Then Change App By Name" app name: "Variable" (text variable)