Load a table once and use it at several different points in the workflow

My current implementation:

Marshalling:

  1. Load the table
  2. “Column Aggregate” all relevant columns into one (split by “,” like CSV)
  3. “GroupBy” all rows into one (split by “|”), which finalizes the marshalling operations
  4. Now that I have all information in one cell, I write this into a variable.
    -> Step 1-3 can be wrapped into a shared component. Step 4 generates a variable which by definition stays contained in the component, therefore can’t be used outside. This is an interesting behaviour, since you can actually pass the variable inside out over an output port (Flowvariable), but it doesn’t arrive at the connecting node.

Unmarshalling:

  1. Read the variable into a table row
  2. “Cell Splitter” splits the only existing cell by “|” to get the rows
  3. “Unpivoting” gets all generated columns into rows
  4. “Cell Splitter” splits cells by “,” to get all previously marshalled columns
    -> Step 2-4 can be wrapped into a shared component. Step 1 reads a variable which can’t be used inside.

And of course you need to be sure that no “,” or “|” characters are in your dataset, otherwise you need to add escaping/unescaping to the marshalling/unmarshalling.

1 Like