The Traceability Challenge
Polarion stores traceability as individual links between work items. While each link is correct in isolation, understanding the full chain — from a user need through system requirements to design requirements to hazards to risk controls — requires mentally assembling dozens of separate work item views. This is like reading a book one sentence at a time from different chapters: technically possible, but practically unusable for analysis. Powersheet solves this by rendering the entire traceability chain as a single hierarchical sheet, where parent-child nesting shows the relationships and every level is editable in place.How Hierarchy Maps to the Domain Model
The hierarchy displayed in a Powersheet sheet is defined by two configuration layers working together:- Domain model — defines entity types (e.g.,
UserNeed,SystemRequirement,DesignRequirement) and therelationshipsbetween them, including cardinality, storage mechanism, and navigation property names - Sheet configuration — defines which columns to show, how to sort and group rows, and which
sourceswithexpandclauses to use for loading related entities
Row Levels and Expansion Paths
When a sheet loads data, it starts with a root entity type (defined bysources[].query.from) and follows expansion paths to load related entities. Each expansion creates a new row level in the hierarchy:
- Level 0 (upstream) — the root entity (e.g.,
UserNeed). Always present, with no back reference. - Level 1 (downstream) — first-level related entities (e.g.,
SystemRequirement), loaded by expanding a navigation property. - Level 2+ — deeper related entities (e.g.,
DesignRequirement), loaded by nested expansions.
expand structure mirrors the hierarchy you want to see in the sheet. Each name must reference a navigation property defined in the domain model relationships section.
Cardinality and Row Nesting
Thecardinality of each relationship determines how many child rows appear beneath a parent:
| Cardinality | Behavior in Sheet |
|---|---|
one-to-many | Parent row expands to show multiple child rows |
many-to-one | Multiple parent rows share a single child reference |
many-to-many | Parent row expands to multiple children; children may appear under multiple parents |
one-to-one | Parent row has exactly one child row |
one-to-many or many-to-many, as requirements typically refine into multiple downstream items and can be traced to multiple upstream sources.
Column Binding Paths Across Levels
Columns in the sheet configuration use dot-separated binding paths that traverse navigation properties to reach properties on related entities. The binding path determines which row level the column belongs to:Relationships and Polarion Link Roles
Every relationship in the domain model maps to a Polarion link role via thelinkRole property. The link role must exist in your Polarion project configuration. The storage property (typically linkedWorkItems) specifies that the relationship is persisted using Polarion’s native work item linking mechanism.
Constraints and Scoping
Entity types can defineconstraints that scope which items appear at each level of the hierarchy. Constraints support three operations:
load— filters which entities are loaded and displayedcreate— restricts where new entities can be created (by document folder, name, or type)pick— filters which entities appear in relationship pickers
SystemRequirement items can only be picked from documents of a specific type.
The interaction between constraints defined at the entity type level and constraints defined on navigation properties should be verified against your specific domain model, as constraint resolution follows a layered evaluation approach.
Related Pages
- Navigation Properties — how traversal between entity types works
- Entity Types and Relationships — defining the domain model structure
- Link Cardinality — understanding relationship multiplicity
- Process Constraints — enforcing rules through domain model constraints
- Model-Driven Design — why the domain model drives the sheet behavior
Sources
Sources
Source Code
prod-powersheet-src/com.nextedy.powersheet.client/cypress/fixtures/models/constraints_pick_only.yamlprod-powersheet-src/com.nextedy.powersheet.client/cypress/fixtures/configurations/whole_rtm.template.yamlrtm_model.yamlpowersheet.yamltodosBig_model.yaml