Workflow

Description

The Workflow action executes a previously defined workflow as a child workflow of the current one.

For ease of use, it is also possible to create a new workflow within the dialog, pressing the New Workflow button.

Use the Workflow action to execute a previously defined workflow.

This allows you to perform "functional decomposition." That is, you use them to break out workflows into more manageable units.

For example, you should not write a data warehouse load using one workflow that contains 500 actions.

It is better to create smaller workflows and compose them.

See also:

Options

Main workflow options

Option Description

Action name

Name of the action.

Workflow Filename

Specify the XML file name of the workflow to execute. Click to browse through your local files.

The selected workflow will automatically converted to a path relative to your ${PROJECT_HOME}.

For example, if your ${PROJECT_HOME} is /home/admin/hop/project/ and you select a workflow /home/admin/hop/project/subfolder/sub.hwf than the path will automatically be converted to ${PROJECT_HOME}/subfolder/sub.hwf.

Run configuration

The workflow run configuration to use for this workflow action.

Options Tab

Option Description Default

Execute for every result row

Implements looping; if the previous workflow action returns a set of result rows, the workflow executes once for every row found. One row is passed to the workflow at every execution. For example, you can execute a workflow for each file found in a directory.

false

Wait for remote workflow to complete

Blocks the workflow until the child workflow has finished, so this action returns the result of the child workflow.

true

Stop after (milliseconds)

Maximum time to wait for the workflow to complete. Empty or 0 means wait indefinitely. When the time is reached the workflow is stopped and this action fails. Only used when wait-to-finish is enabled. The value may contain a variable.

empty (no limit)

Logging Settings Tab

By default, if you do not set logging, Hop will take log actions that are being generated and create a log record inside the workflow.

For example, suppose a workflow has three pipelines to run and you have not set logging. The pipelines will not output logging information to other files, locations, or special configuration.

In this instance, the workflow executes and puts logging information into its master workflow log.

In most instances, it is acceptable for logging information to be available in the workflow log.
For example, if you have load dimensions, you want logs for your load dimension runs to display in the workflow logs. If there are errors in the pipelines, they will be displayed in the workflow logs. If, however, you want all your log information kept in one place, you must set up logging.

Option Description

Specify logfile

Enable to specify a separate logging file for the execution of this workflow

Name of logfile

The directory and base name of the log file; for example C:\logs

Extension of logfile

The file name extension; for example, log or txt

Loglevel

Specifies the logging level for the execution of the workflow. See Logging for more details.

Append logfile?

Enable to append to the logfile as opposed to creating a new one

Create parent folder

Create the parent folder for the log file if it does not exist

Include date in logfile?

Adds the system date to the filename with format YYYYMMDD (eg 20051231).

Include time in logfile?

Adds the system time to the filename with format HHMMSS (eg 235959). See also the logging window in Logging.

Parameters Tab

Specify which parameters will be passed to the sub-workflow.

See Fields, parameters, and variables for how parameters relate to fields and variables. For the exact rules that decide which value a parameter ends up with, see Passing parameters to a child pipeline or workflow.

Option Description

Copy results to parameters

results from previous workflows or pipelines are passed down to this workflows action’s parameters

Pass parent values to matching parameters

Seed a parameter the sub-workflow declares, but that is not listed above, from this workflow’s value of the same name. With the option off the sub-workflow keeps its own default. Variables are inherited by the sub-workflow either way.

Parameters

Specify the parameter names that will be passed to the workflow.

Stream column name

Allows you to capture fields of incoming records of a result set as a parameter.

Value

Allows you to specify the values for the sub-workflow’s parameters. You can do this by:

  • Manually typing some text (Ex: ETL workflow)

  • Using a parameter to set the value (Ex: ${Internal.workflow.Name})

  • Using a combination of manually specified text and parameter values (Ex: ${FILE_PREFIX}_${FILE_DATE}.txt)

Result

What this action passes on to the next action. See Action results for how results travel through a workflow.

Result Value

True

The child workflow ended with a true result.

False

The workflow could not be loaded or started, the log file of Specify logfile could not be created, the child workflow ended with a false result, or Stop after (milliseconds) was reached. With Execute for every result row, the first run that fails ends the loop: the remaining rows are not processed.

Result files

The result files of the child workflow are added to the files the action received, plus the log file with Specify logfile.

Result rows

The child workflow starts with the rows the action received. When it returns at least one row, those rows replace the rows the action received; when it returns none, the received rows are passed on. A child that doesn’t change the rows returns them as it received them. With Execute for every result row, every run receives only its own row, and the action passes on what the last run left: the rows the last child returned, or else the last row the action received.

Metrics

The line counts and the number of errors of the child workflow. With Execute for every result row, those of the last run.

Without Wait for remote workflow to complete, the result is true as soon as the child workflow starts, and its files, rows and metrics are not passed on.