LogoLogo
  • Welcome to Tailent Automation Platform documentation
    • Start for Free
  • Getting Started
    • State Machine Approach
    • TAP Studio
      • How to install TAP Studio
      • TAP Studio Overview
      • Variables and Data Types
      • Transitions
        • Normal transitions
        • Exception transitions
      • How to Create a New Automation Project in TAP Studio
      • How to add an Activity to Favorites
      • How to Open an Existing Automation Project in TAP Studio
      • How to Save an Automation Project
      • Control Identifiers in UI Browser
      • List of Activities that use Control Identifier as Input Parameter
      • Press Key - Values of Key parameter
      • Outlook vs standard IMAP protocol
      • Hardware & Software Requirements TAP Studio
    • TAP Assistant
      • Basic Scheduling
      • Setting Custom Log Sizes
    • TAP Frequenty Asked Questions
  • Actions
    • TAP Actions
      • CSV
        • Append CSV
        • Read CSV
        • Write CSV
      • Application
        • Kill Process
        • Start Process
        • Wait for Control
      • Clipboard
        • Get Clipboard Text
        • Set Clipboard Text
      • Control
        • If Control Exists
        • Wait for Control to Disappear
        • Check Control
        • Select List Item
        • Set Focus
        • Set Text
        • Get Value
        • Get Native Value
        • Get Window State
        • Set Window State
      • Custom
        • C# Script
      • Data
        • JSON Deserialization
      • Database
        • Connect To Database
        • Database Query
        • Database Non Query
        • Disconnect From Database
      • Diagram
        • Invoke Workflow
        • Sequence
      • Direct text
        • Click Text
        • Extract Direct Text
      • Excel
        • Write Table
        • Set Range Color
        • Rename Sheet
        • Read Range
        • Read Cell Formula
        • Insert Rows
        • Insert Columns
        • Format Range
        • Fill Rows
        • Fill Columns
        • Delete Sheet
        • Delete Rows
        • Delete Columns
        • Create Sheet
        • Clear Range
        • Open Excel WorkBook
        • Close Excel WorkBook
        • Get Cell Value
        • Set Cell Value
      • Flow
        • Assign Value
        • Show Message Box
        • Wait
      • Loging
        • Log to FIle
        • Write to Console
      • IO
        • Copy File
        • Create Directory
        • Create File
        • Delete Directory
        • Delete File
        • Move File
        • Read Text File
        • Write To File
      • Keyboard
        • Press Key
        • Type Text
        • Type Password
      • Mail
        • Get Email Messages
        • Move Mail Message
        • Save Email Attachment
        • Get Outlook 365 Emails
        • Save Outlook 365 Attachments
      • Mouse
        • Click Control
        • Click Point
        • Move Mouse
        • Move to Control
        • Click Image
      • Office
        • Word.Replace
        • Get Word Page Count
      • PDF
        • Extract Sections from PDF
        • Get PDF Page Count
        • Read text from PDF
      • UI
        • Assign Control Identifier
      • User
        • Choose File
        • Choose Folder
        • User Input Dialog
      • Visual
        • Get Image
        • Extract Text
      • Web
        • Wait for Page
        • Run JavaScript
        • Wait for Element Attribute
        • Set Element Text
        • Get HTML Element
        • Open Browser
        • Click Element
        • Get HTML
        • HTTP REST Request
      • ZIP
        • Add to ZIP
        • Extract ZIP
  • TAP Release Updates
    • Release Updates
      • TAP Release Notes 24.8
      • TAP Release Notes 24.01
      • TAP Release Notes 21.12
      • TAP Release Notes 21.10
      • TAP Release Notes 21.06
      • TAP Release Notes 21.04
      • TAP Release Notes 21.02
      • TAP Release Notes 20.12
      • TAP Release Notes 20.11
      • TAP Release Notes 20.09
  • Use Cases
    • Use Cases
      • TAP Studio - Define Invoices Naming Convention
      • TAP Studio - Extract Accounting Data from Invoices
      • TAP Studio - Control Identifier Fine Tuning
      • TAP Studio - Move File
      • TAP Studio - Download Invoices from Email and Move Emails
      • TAP Studio - How to input invoice data into an Accounting System
      • TAP Studio - How to open all desired files of a certain type in a folder
      • TAP Studio - How to parse a custom excel date format without errors
  • Knowledge Base
  • Scripting Utility Classes
    • Tailent.Control Class
      • Tailent.Control.ControlExists
    • Tailent.Console Class
      • Tailent.Console.WriteLine
    • Tailent.StringUtils Class
      • Tailent.StringUtils.FuzzSetMatching
    • Common Scripts Repository
      • C# Scripts Repository
        • Read Excel
        • Write Excel
        • Add LOV in Excel
        • Change Excel Cell Color
        • RegexSplit (Text Filtering)
        • Start a process
        • Filter HTML Contents
        • Reading CSV Contents
        • LINQ Filtering
        • Data Conversion
          • Double to DateTime
  • Solution Migration
  • Microsoft 365 Automation
    • Creating an application Instance
  • Remote Desktop Automation
    • Setting up the remote context
  • Knowledge Base
    • Configuring Proxy Servers
    • tap.runtime.config - Debug flag
    • Unblocking Action .dll Files
Powered by GitBook
On this page
  • Arguments
  • Using arguments with Invoke Blocks

Was this helpful?

  1. Actions
  2. TAP Actions
  3. Diagram

Invoke Workflow

PreviousDiagramNextSequence

Last updated 1 year ago

Was this helpful?

Invoke Blocks are top level diagram components (like Sequences). The difference between Invoke Blocks and Sequences is that Invoke Blocks are not used to store actions.

Like the name suggests, Invoke Blocks are used to “invoke” (or more simply put - run) other workflows. You can “run” any kind of compatible .tapflow file (workflow), both internal (located within the current solution) and external (located in another solution or on the file system). So, simply put, the Invoke Block can be looked at as an action that executes a whole other workflow.

This segmentation is especially useful for designing modular automation solutions, where you can split automation logic into different, well-organized containers (or workflows). With the Invoke Block element, users can freely execute these components according to their requirements.

Invoke Block can be inserted within the diagram similarly to Sequences (using drag & drop).

The picture above displays an Invoke Block. Using the dropdown button you can quickly select one of the workflows from the current solution or you can browse for external workflows (.tapflow files) as well.

Note: You can also directly use the textbox area to manually input a workflow filename to be executed. Please note that values within the textbox area are used as expressions - so any string will need to be contained within quotes.

The Invoke Block features two additional buttons:

  • Show Workflow - used to display the currently selected workflow (this only works for workflows from the currently loaded solution). Clicking it will focus the designated workflow (or open a new tab for it if it’s not currently displayed).

  • Arguments - used to display a popup for setting workflow arguments.

Arguments

From a functional point of view, arguments are similar to variables (in that they have unique names, data types and values). The main difference between variables and arguments is their purpose: to facilitate data transfer between workflows, for both input and output.

In order to achieve this, arguments have an extra attribute assigned to them: Direction. This can either be Input or Output, depending on the purpose of the argument. Input arguments are used to “inject” or transfer data into a workflow from an external workflow, while output arguments are used to “export” or transfer data from the current workflow to an external workflow.

Similarly to variables, arguments are global within the scope of the workflow they are defined in. To be used properly, these need to be defined as part of the workflow and according to their designated purpose.

Arguments can be created similarly to variables, using the dedicated Arguments pane:

Please note that you are required to save the solution after updating the arguments within a particular workflow in order for the changes to be reflected throughout the whole project.

Using arguments with Invoke Blocks

Once properly defined, arguments can be used with Invoke Blocks in order to transfer data between the invoking workflow and the invoked workflow. This can be done by clicking the Arguments button from the target invoke block:

This popup allows users to manage how data is transferred between workflows via arguments.

All arguments attributes are read only at this point since they have been defined externally (in the invoked workflow). Users can only change the values that the arguments will use.

The above example shows using both Input and Output arguments. The arg1 and arg2 arguments are assigned the values of value1, respectively value2 (these are both normal variables from the current workflow). Thus, the date stored in the value1 and value2 variables will be transferred to the invoked workflow - and can be accessed in the invoked workflow via the arg1 and arg2 arguments.

Similarly, the outputArg is an Output argument - so it’s used to extract data after the invoked workflow has finished execution. The assignment direction is reversed for Output arguments - the sum variable (from the current workflow) is assigned whatever value is stored within the outputArg argument.

it is important that arguments that are being passed values receive evaluated expressions whose result is of the same data type. Assigning a string value to an Int32 argument will fail.

The article doesn't fully answer your question, or you want to find out more? Ask your question in the comments, on our community forum, or contact our support team or your account manager. Whatever works for you, your question will find its answer soon!