Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

In some workflows, the solution requires handing over a variable from one object to another. This article helps you understand the general concept of sharing variables in IWS.

How to share variable from one task to another?

Let's have a look at the following example with two translators: shared_var_test_1 and shared_var_test_2. We want to share a variable (called variableA) from one translator to another.

Step-by-step instruction to do that:

Double-click first translator to open its worksheet and drop the Variable shape from the left panel ToolBox in CONTROL OBJECTS group:

By default, the variable is named as var. To set another name, click to the shape, and change the property Name in the left panel.

In our example we want to rename it to variableA.

To set a value for the variable, click the shape and put the value to the fx input on top of the workspace using quotes.

Update the default variable varTaskParams

 In case of streaming translator (click to expand):

Drop the Code shape from left panel in ADVANCED group and set value of the Code shape as 

:varTaskParams: := :varTaskParams: + 'variableA;' + :variableA: + '!'

If you need to share more variables you can add them to the Code shape using syntax variable_name;variable_value!. For example, if we have another variable count to share, the Code shape value is set like this:

:varTaskParams: := :varTaskParams: + 'variableA;' + :variableA: + '!' + 'count;' + :count: + '!'
 In case of transform translator (click to expand):

Drop a Variable shape onto the worksheet. It represents the variable you are going to share. Drop a Call Include shape from the left panel in ADVANCED group and click the Browse button next to the File property in the right panel

Select w_config.inc file in eagle_ml-2-0_cm folder

Drop the Code shape from left panel in group ADVANCED after Call Include shape with w_config.inc and set value of the Code shape as

IF Find(:FILE_NAME:, :corrIdSep:) = -1 AND Find(:FILE_NAME:, '-', 2) != -1 AND Find(:FILE_NAME:, '_') != -1 THEN [ :CorrelationId: := SubString(:FILE_NAME:, Find(:FILE_NAME:, '-', 0, 2) + 1); :CorrelationId: := SubString(:CorrelationId:, 0, Find(:CorrelationId:, '_')); ];

Drop a Code shape, then a Call Include shape and click Browse button next to the File property in the right panel

Select get_w_state.inc file in eagle_ml-2-0_cm folder

Drop a Code shape and set its value as

:varTaskParams: := :varTaskParams: + 'variableA;' + :variableA: + '!'

If you need to share more variables you can add them to the Code shape using variable_name;variable_value! syntax. For example, if we have another variable count to share, then the Code shape value will be as follows

:varTaskParams: := :varTaskParams: + 'variableA;' + :variableA: + '!' + 'count;' + :count: + '!'

Drop a Call Include shape and click Browse button next to the File property in the right panel

Select upd_w_state.inc file from eagle_ml-2-0_cm folder

Return to the workflow and select the first translator. Set the name of the variable to share (variableA in our case) in the OutParams property in the right panel 


If you add several variables, use comma separator in OutParams property, for example, variableA,variable1,variable2,…

Now we can call variable variableA like this EXPR#:param_variableA:

Click to the second translator and in the property CustomCMParams set the name of the variable in first column, which you will use in the translator. It is not necessary to use the original name variableA in first column.

In the second column you must use the following construction:

EXPR#:param_TASK_[name_of_task]_[original_name_of_shared_parameter]:

EXPR#:param_TASK_ is a required prefix. [name_of_task] is the name of the task where shared variable was created (shared_var_test_1 in our example). And variableA is the original name of the shared variable.

Final expression for our example:

EXPR#:param_TASK_shared_var_test_1_variableA: 

Double click second translator. Here you can use :param_it_is_shared_var: construction.

param_ is a required prefix, then goes the name which you set in CustomCMParams property earlier.

Workspace of the second translator.

We drop a STATUS shape to check the value of the variable.

Status after workflow launch



  • No labels