ISM Manual
  • Overview
  • Features
  • Components
  • Directory Structure
  • Startup/Shutdown
  • ISM Admin UI
    • Dashboard
    • Flow
    • Job
      • Schedule
    • Channel
      • AMQP
      • Mqtt
      • sFTP
    • Interface
      • System
      • Data Structure
      • Field Group
      • Field
    • Web Service
    • Utility
    • Admin
    • Result
  • Tasks
    • Control Task
      • Route
      • Split/Join
      • Mapping
    • FTP
      • FTP Input
      • FTP Output
      • FTP Transfer
    • DB
      • SQL Executor
      • SQL Batch Executor
    • File
      • File Input
      • File Output
      • File Validator
      • Record Extractor
    • Excel
      • Excel Reader
      • Excel Writer
    • Flow
      • Flow Execution
      • Wait Sub
    • Web Service
      • REST Client
      • Web service Client
    • PGP
      • Encrypt
      • Decrypt
    • Cloud
      • SharePoint
      • Amazon S3
      • Google Cloud Storage
    • Others
      • Email Sender
      • LDAP Client
      • Function
      • Script
      • Java Class
  • REST Service
  • Trouble Shooting
  • Logging Configuration
  • Implementing a Task
  • Custom Class
  • Frequently Asked Questions (FAQ)
    • What is XNARUM Integration Service Mastery (ISM)?
    • What is the purpose of XNARUM?
    • Can XNARUM be customized to specific integration requirements?
    • Is XNARUM scalable?
    • Does XNARUM provide support and maintenance?
Powered by GitBook
On this page
  • Input
  • Output
  • Example
  • Main flow
  • Sub flow
  1. Tasks
  2. Flow

Flow Execution

PreviousFlowNextWait Sub

Last updated 2 years ago

This component is used to execute another flow called sub flow. The parameters and data generated while a flow is being executed are passed to the sub flow. The use case of the sub flow is like this.

Load the data from the source table, validate each record, and synchronize to the target table.

The 1st step is loading data from the source table. And the 2nd step performs validation per record. The 3rd step executes query per record too. The data from the 1st step is a list and the 2nd step validates every single element in the list. This means a loop processing. But Flow does not provide loop function. Flow provides sub flow feature instead.

The 1st step will be executed in a main flow. The 2nd step and the 3rd step are executed in a sub flow. The single element of the list can be passed one by one to the sub flow through this component.

Main flow

Sub flow

Input

Attribute
Description

Flow Id

Sub flow id

Synchronous

Execute the sub flow synchronously or asynchronously?

Synchronous

Asynchronous

Loop

Execute the flow per record or with entire records once?

Invoke Parameter

Parameter passed to the flow.

Parameter name does not need to be enclosed by #.

If Loop = yes and InvokeParameter is list, each element in the list is passed as InvokeParameter.

Parameter name can be hierarchical ??? parent_parameter.child_parameter

Exclude Parameters

If exists, the parameters specified here are not passed to the sub flow.

DataStructure Parameter

Parameter name which contains data linked to Data Structure Id for future mapping

Output

Attribute
Description

InvocationResult

Invocation result

LoopCount

The total number of the transactions that sub flow has been executed.

DataStructureId

Data structure id for future mapping

(*) FlowExecution component does not generate any output which can be mapped to any data structure. The data for Data structure come from Data Structurre Parameter of input properties.

Example

This example demonstrates the multi-level flow execution. In this example, the main flow will load employee data from the source database, filter the employee data, and synchronize to the target database.

The synchronization process filters out employees based on their department and does not synchronize them to the target database.

Main Flow

Sub Flow

Main flow

Load Employees

The Load Employees component retrieves the employee data and store the data into ResultArray.

Input
Output

Execute Flow

The Execute Flow component executes sub flow asynchronously as many times as the number of the ResultArray The number of executions is stored into LoopCount.

Input
Output

Wait

The Wait component checks whether the executions of the sub flow are complete until the timeout. The number of the executions comes from the output of Execute Flow component ??? LoopCount.

Input
Output

Sub flow

Check Department

The Check Department component verifies if the employee belongs to the Marketing department or not. It executes a query to retrieve data from the dept_emp table using the emp_no and dept_no parameters. The result set is then stored in the CheckResultArray variable. However, the default name of the result set (ResultArray) conflicts with the input parameter of the flow (employee info). To prevent this conflict, the default name of the result set is changed.

Input
Output

Not Marketing?

If the result does not exist, it proceeds to Synchronize Employee.

Input
Output

Synchronize Employee

The Synchronize Employee component executes an insert ignore query using employee information.

Input
Output

Graphical user interface, application, Teams

Description automatically generated with medium confidence
Graphical user interface, text, application

Description automatically generated