Define Levels in Configuration
Add alevels array to your risksheet.json. Each entry specifies a controlColumn that identifies work items at that hierarchy tier:
| Property | Type | Default | Description |
|---|---|---|---|
controlColumn | string | required | Column id that drives grouping and merging at this level |
showInMenu | boolean | true | Whether this level appears in the context menu for creating new items |
Assign Columns to Levels
Each column in yourcolumns array should specify which level it belongs to. Columns at the same level merge vertically when their parent control column values match:
level property defaults to 1 when not specified. Task columns do not have a level assigned.
Understand Merge Behavior
Risksheet automatically merges cells based on the levels hierarchy:| Level 1 (System) | Level 2 (Failure Mode) | RPN |
|---|---|---|
| Braking System | Fluid leak | 120 |
| (merged cell) | Loss of braking | 180 |
| (merged cell) | Pad contamination | 240 |
| Unintended brake | Sensor short circuit | 360 |
| (merged cell) | ABS software fault | 280 |
- Level 2 cells merge within the same level 1 group when their control column values match
- Empty cells in control columns act as merge boundaries — they stop merge propagation to prevent unrelated groups from joining
- Downstream and task columns follow separate merge rules based on work item ID grouping
Display Multi-Level Linked Items
To display items linked across multiple levels (such as Level 0 to Level 1 to Level 2), you have two approaches:Approach A: Transitive Linking with upstreamChains
The upstreamChains property automatically builds transitive link chains across levels:
fromType-linkRole-toType. This creates automatic transitive links so items linked through intermediate levels appear in the correct hierarchy.
Approach B: Server-Side Rendering for Read-Only Display
For read-only display of indirectly linked items, useserverRender with a Velocity script:
serverRender are automatically read-only and render on the server side.
Configure Sort Order for Hierarchies
Define the default sort order to align with your hierarchy usingsortBy:
Complete FMEA Hierarchy Example
A three-level FMEA configuration with System Element, Failure Mode, and Cause:Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| Rows are duplicated | controlColumn ID does not match column id | Verify exact string match between levels[].controlColumn and columns[].id |
| Cells do not merge | Empty values in control column | Ensure parent-level control columns always have values |
| Two levels point to same column | Configuration error | Each level must use a unique controlColumn value |
| New items get wrong values | Duplicate controlColumn across levels | Correct the levels configuration so each level has its own control column |
Verification
After configuring your levels hierarchy, you should now see:- Level 1 cells merging vertically when consecutive rows share the same system element
- Level 2 cells merging within their parent level 1 group
- The context menu showing “New Item” options for levels where
showInMenuistrue - Rows sorted according to the
sortByorder, preserving the hierarchy structure
See Also
- Add a Basic Column — column definition fundamentals
- Configure Column Sorting — sort order configuration
- Configure Upstream Traceability Columns — upstream link columns
- Configure Downstream Traceability Columns — downstream link columns
- Display Sub-Columns — nested column display within multi-item links
Sources
Sources
KB Articles
- Display Sub-columns for multiItemLink columns
- Configure upstream column to show multiple linked work items
- What Work Items are visible on the Risksheet and understanding levels
risksheet.jsonPolarionAppConfigManager.javaAppConfig.tsCustomMergeManager.tsTextEditor.ts