{{ transformations:hierarchypathaction.png}}
======HIERARCHY PATH======
Category: Transform / Advanced \\
\\
=====Description=====
This action generates a pipe-delimited hierarchy path for every value in a column that references a parent value in the same table.\\
\\
=====Use cases=====
Use this action to build parent-child relationships.
\\
=====Action settings=====
^Setting^Description^
|Primary key|Select the column containing the unique key values to build the hierarchy from.|
|Parent key|Select the column containing the parent keys.|
|Build path with|Choose whether the output hierarchy path will contain //labels// (and select the column containing those labels)\\ or the //keys//. Options: //Labels// or //Keys//.|
|Reverse the paths|Checking this will reverse the output order of the keys or labels in the hierarchy path. |
\\
=====Remarks=====
All keys in the selected //Primary key// column must be unique.
The parent-child relationship between the primary keys and parent keys cannot create a recursive relationship (e.g. Key01's parent is Key10, and Key10's parent is Key01). This will result in an error.
The [[transformations:splitdelimitedtext|Split delimited text into columns]] action can be used to parse the path keys into columns.
\\
=====Examples=====
**Example:** Generate hierarchy paths based on the Input table, below.\\
**Input table:**
^Primary ^Parent ^Name ^
| Key01 |Key10 |Bob |
| Key02 |Key10 |Sue |
| Key03 |Key10 |Erica |
| Key04 |Key10 |Yelena |
| Key05 |Key11 |Chris |
| Key06 |Key11 |John |
| Key10 |Key20 |Tia |
| Key11 |Key20 |Mariko |
| Key20 | |Bruce |
\\
**Action parameters:**
> Primary key: "Primary"
> Parent key: "Parent"
> Build path with: "Keys"
> Reverse the paths: Unchecked
\\
**Result:**
^Primary ^Parent ^Name ^Path ^
| Key01 |Key10 |Bob |Key20|Key10|Key01|
| Key02 |Key10 |Sue |Key20|Key10|Key02|
| Key03 |Key10 |Erica |Key20|Key10|Key03|
| Key04 |Key10 |Yelena |Key20|Key10|Key04|
| Key05 |Key11 |Chris |Key20|Key11|Key05|
| Key06 |Key11 |John |Key20|Key11|Key06|
| Key10 |Key20 |Tia |Key20|Key10|
| Key11 |Key20 |Mariko |Key20|Key11|
| Key20 | |Bruce |Key20|
\\
> Reverse the paths: Checked
^Primary ^Parent ^Name ^Path ^
| Key01 |Key10 |Bob |Key01|Key10|Key20|
| Key02 |Key10 |Sue |Key02|Key10|Key20|
| Key03 |Key10 |Erica |Key03|Key10|Key20|
| Key04 |Key10 |Yelena |Key04|Key10|Key20|
| Key05 |Key11 |Chris |Key05|Key11|Key20|
| Key06 |Key11 |John |Key06|Key11|Key20|
| Key10 |Key20 |Tia |Key10|Key20|
| Key11 |Key20 |Mariko |Key11|Key20|
| Key20 | |Bruce |Key20|
\\
> Build path with: "Labels" (using "Name" column)
> Reverse the paths: Unchecked
^Primary ^Parent ^Name ^Path ^
| Key01 |Key10 |Bob |Bruce|Tia|Bob|
| Key02 |Key10 |Sue |Bruce|Tia|Sue|
| Key03 |Key10 |Erica |Bruce|Tia|Erica|
| Key04 |Key10 |Yelena |Bruce|Tia|Yelena|
| Key05 |Key11 |Chris |Bruce|Mariko|Chris|
| Key06 |Key11 |John |Bruce|Mariko|John|
| Key10 |Key20 |Tia |Bruce|Tia|
| Key11 |Key20 |Mariko |Bruce|Mariko|
| Key20 | |Bruce |Bruce|
\\
=====See also=====
* [[transformations:splitdelimitedtext|Split delimited text into columns]]
* [[transformations:rollup|Roll up]]