Both sides previous revisionPrevious revision | Next revisionBoth sides next revision |
transformations:iteratetable [2021/06/06 23:47] – craigt | transformations:iteratetable [2021/06/06 23:47] – craigt |
---|
{{ transformations:IterateTableAction.png}} | ===== Iterate table ===== |
====== ITERATE TABLE ====== | |
Category: Workflow / Internal \\ | |
| |
\\ | This action is similar to [[transformations:iterate|Iterate]] action, but allows passing a table to an iterated project. The "Iterate table" action has two inputs: |
=====Description===== | |
This action is similar to [[transformations:iterate|Iterate]] action, but allows passing a table to an iterated project. //Iterate table// has two inputs: | |
| |
- The output of the previous action | - The output of the previous action |
- The external table passed into the called module/project (referenced in the Action settings) | - The external table it references |
| |
This action works as follows: It takes a dataset from another table (input #2, above), passes it to the called module or project, and runs it as many times as there are rows in the input dataset (input #1, above). | The action works as follows: it takes a dataset from another table (2), passes it to the called module or project, and runs it as many times as there are rows in its input dataset (1). |
| |
The iterated module/project should use the [[transformations:input|Input]] action to receive the external table.\\ | The iterated project should use [[transformations:input|Input]] transformation in order to receive the table. |
| |
\\ | This action allows significantly increasing performance in cases when iterated project had to operate with the same dataset in each iteration. |
=====Use cases===== | |
This action is helpful when multiple calculations with different parameters have to be performed on the same dataset (e.g. financial stress testing).\\ | |
| |
\\ | === Examples === |
=====Action settings===== | |
^Setting^Description^ | |
|Module/Project to run<sup>*</sup>|Select whether to call a module (within the current project), or an external project (.morph file), then select the\\ module, or browse to the project file.| | |
|Column name|Enter the name that will be assigned to all columns as they are passed to the called module.| | |
|Mode|Choose whether to just iterate the called module (or project) and //not// return any results, or iterate and return\\ columns. Options: //Iterate, ignore results// or //Iterate, append result columns// (and select the Result table from\\ the called module or project; returned columns will be appended side-by-side).| | |
|Assign parameters|Select the parameter(s) in the called module (or project) to pass values in through, and enter the associated value(s)<sup>*</sup> (can be a column, text/number, or parameter).| | |
|Exclude selected columns|Check to exclude selected columns from being iterated. Select the columns to be skipped and not be sent to the called module.| | |
<sup>*</sup> Setting can be specified using a [[:parameters|parameter]].\\ | |
| |
\\ | |
=====Remarks===== | |
This action provides significantly increased performance in cases when the iterated project needs to operate with the same dataset in each iteration.\\ | |
| |
| |
\\ | |
=====Examples===== | |
**Mode: Iterate** — do not return anything from the iterated module, i.e. just run it one or several times. (top image, below)\\ | |
{{ https://easymorph.com/images/learn/iterate-mode3.png }} | |
**Mode: Iterate and append results** — run the module one or several times, return a table (the result dataset) from each iteration, and append all result datasets into one, which becomes the output of the "Iterate table" action. (bottom image, above)\\ | |
| |
\\ | |
=====More examples===== | |
* [[https://community.easymorph.com/t/create-a-new-table-with-columns-based-on-row-values/1625/3|Community: Create a new table with columns based on row values]] | * [[https://community.easymorph.com/t/create-a-new-table-with-columns-based-on-row-values/1625/3|Community: Create a new table with columns based on row values]] |
* [[https://community.easymorph.com/t/crosstable-multiple-column-groups/1249|Community: Crosstable multiple column groups]] | * [[https://community.easymorph.com/t/crosstable-multiple-column-groups/1249|Community: Crosstable multiple column groups]] |
| |
\\ | === See also === |
=====See also===== | * [[transformations:iterate|Iterate]] |
* [[transformations:input|Input]] | * [[transformations:input|Input]] |
* [[transformations:iterate|Iterate]] | |
* [[transformations:iteratecolumns|Iterate column]] | |
* Read [[http://easymorph.com/learn/iterations.html|Iterations and loops in EasyMorph]] for more details regarding this action. | |
| |
| |