Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
transformations:call [2021/06/04 16:18] – craigt | transformations:call [2021/06/09 14:47] – dmitry |
---|
{{ transformations:CallAction.png}} | {{ transformations:CallAction.png}} |
====== CALL ====== | ====== CALL ANOTHER MODULE/PROJECT ====== |
Category: Workflow / Internal \\ | Category: Workflow / Internal \\ |
| |
<sup>*</sup> Setting can be specified using a [[:parameters|parameter]].\\ | <sup>*</sup> Setting can be specified using a [[:parameters|parameter]].\\ |
| |
| |
| \\ |
| =====Error recovery===== |
| When the //Call// action works in the //Capture errors and continue// mode it can be used for error recovery. In this mode, if an error occurs in the called module (or project), workflow execution won't stop. Instead, the "Call" action will capture the error and return a dataset with two columns "Error description" and "Error source", and workflow execution will continue. By checking if the resultant dataset (with error descriptions) is empty or not, it's possible to identify if the called module failed or not, and execute recovery actions if a failure occurred. |
| |
\\ | \\ |
The //Call// action's resultant dataset will either be the dataset returned from the called process (if "Return table" was selected), or the dataset passed to it in the current workflow (if "Do not return result table" was selected).\\ | The //Call// action's resultant dataset will either be the dataset returned from the called process (if "Return table" was selected), or the dataset passed to it in the current workflow (if "Do not return result table" was selected).\\ |
| |
The called process will need to start with an [[transformations:input|Input]] action if it will be receiving the dataset of the calling workflow to work with.\\ | The //Call// action, and the //Call// action paired with the //Input// action, are powerful ways to make your workflows more flexible. Below are some situations for using Call and Input, along with parameters and returned tables:\\ |
- Set up an Input action in a new module (or project file). | * Module A calls Module B (without passing a dataset or parameters). Module B, using its own independent data source, runs its actions and finishes. Module B could //also// Call a third module (creating a chain). |
- In the //calling// process, add and configure the Call action to point to the new target module or project file. | |
- Back in the //called// process, select "Populate automatically" to connect to the data from the Call action (in called //modules// only). For called //project files//, you'll either need to "Paste data" (copied from the data source) or "Import dataset" (from a previous-saved .dset file), to populate the //Input// with sample data.\\ | * Module A calls Module B, passing along its dataset (to Module B's Input action). Module B transforms this copy of the dataset and outputs it. Again, Module B could also pass the dataset on to //another// module to further transform it. |
| |
| * Module A calls Module B, passing along its dataset and parameters (to Module B's Input action). Module B can use the passed parameters to manipulate the passed dataset (as settings in actions or values in calculations). Module B could also return the modified dataset back to the //calling// module, as well as pass it along to a third module, along with the parameter(s) (creating a chain). |
| |
\\ | \\ |
=====Examples===== | =====Examples===== |
**Call a module in the same project (select module):** | Calling a module (or project) without passing along a dataset. Parameters are optional. A dataset may or may not be returned from the called module (or project). |
{{ transformations:call_module_pic.png?720 }} | {{ transformations:call_action_img1.png?640 }} |
\\ \\ \\ | \\ \\ \\ |
**Call a module in another project (browse to project file):** | Calling a module (or project) with passing along a dataset via the [[transformations:input|Input]] action. Parameters are optional. A dataset may or may not be returned from the called module (or project). |
{{ transformations:call_project_pic.png?720 }} | {{ transformations:call_action_img2.png?640 }} |
| |
| |