I have a jobflow which executes a graph which sets certain dictionary items. From reading the documentation, it seems like I should be able to bring those dictionary items back to the parent by just writing code in the output mapping of the ExecuteGraph like:
dictionary.as_of = $in.2.as_of;
I have found what I feel is a workaround but it seems cumbersome. I also have both dictionary elements set to true for input/output.
What could I be missing (CloverETL 4.8).
The documentation reads as follows:
In order to pass a dictionary between two steps in a jobflow, it is necessary to:
Declare the desired dictionary entries in the child’s dictionary
Tag the entry as input (entry value is set by a parent) or output (parent to retrieve value from a child)
Define mapping for each entry in parent’s ExecuteGraph/ExecuteJobflow/ExecuteProfilerJob component’s Input Mapping or Output Mapping properties.
For a child to pass an entry to the parent, a value can be set during child execution using the Success, Fail, or SetJobOutput component, but it is also possible via CTL code.
Parameters declared in the child graph (local or from parametric file) can be set in the Input Mapping of ExecuteGraph/ExecuteJobflow in the parent graph. It is NOT possible for the child to change the parameter value during its runtime or the parent to retrieve parameter value from a child.
Both parameters and any input/output dictionary entries declared in the child graph are automatically displayed in the Input Mapping or Output Mapping of ExecuteGraph/ExecuteJobflow accordingly.