Step 1: Locate the PowerSheet YAML Configuration
PowerSheet configurations are stored in .polarion/nextedy/sheet-configurations/ within your project’s SVN repository.
# Navigate to PowerSheet configurations
cd .polarion/nextedy/sheet-configurations/
# List available PowerSheets
ls -1 *.yaml
Each YAML file corresponds to a PowerSheet document. For example:
Whole RTM Sheet.yaml — full traceability matrix
System Verification Sheet.yaml — system requirement verification
Characteristics.yaml — component characteristics sheet
Step 2: Understand Column Group Structure
PowerSheets organize columns into column groups that represent different entity types in your RTM model. Each group corresponds to a section in the visual display:
Use consistent color themes to help users visually distinguish entity types: blue for requirements, green for design artifacts, yellow for verification, red for risks.
Step 3: Edit Column Definitions
Open the target YAML file and modify the columns array within each columnGroup:
columnGroups:
- label: "System Requirements"
color: "#0d47a1" # Dark blue
collapseTo: "title"
columns:
- id: "id"
caption: "ID"
width: 80
format: "bold"
- id: "title"
caption: "Requirement Title"
width: 300
format: "bold"
sort: "asc"
hasFocus: true
- id: "status"
caption: "Status"
width: 100
dataType: "enum"
enumId: "requirement-status"
- id: "asilInherited"
caption: "ASIL"
width: 80
dataType: "enum"
enumId: "hara-asil"
cellDecoratorId: "asil-traffic-light"
Key Column Properties
| Property | Purpose | Example |
|---|
id | Work item field ID | "title", "customField.asilInherited" |
caption | Column header text | "Requirement Title" |
width | Column width in pixels | 300 |
format | Text styling | "bold" |
sort | Initial sort direction | "asc", "desc" |
hasFocus | Keyboard navigation entry point | true |
dataType | Field data type | "enum", "text", "date" |
enumId | Enumeration ID for dropdowns | "hara-asil" |
cellDecoratorId | Visual formatter (traffic lights, icons) | "asil-traffic-light" |
For columns that display linked work items (e.g., “Design Requirements that refine this System Requirement”), use dotted path syntax:
columnGroups:
- label: "Design Requirements"
color: "#2e7d32" # Dark green
collapseTo: "refinedBy.designRequirement.title"
columns:
- id: "refinedBy.designRequirement.id"
caption: "Design Req ID"
width: 100
format: "bold"
- id: "refinedBy.designRequirement.title"
caption: "Design Requirement"
width: 300
hasFocus: true
- id: "refinedBy.designRequirement.scccClassification"
caption: "SC/CC"
width: 80
dataType: "enum"
enumId: "sc-cc-classification"
The syntax follows the RTM model expansion path defined in rtmModelQuery.expand:
rtmModelQuery:
from: "SystemRequirement"
expand:
- name: "refinedBy"
expand:
- name: "designRequirement"
Column IDs must match the exact relationship names defined in your RTM domain model (.polarion/nextedy/models/*.yaml). Mismatched paths will cause columns to display empty or throw errors.
The collapseTo property defines which column remains visible when users collapse a column group:
columnGroups:
- label: "Verification Test Cases"
color: "#f57c00"
collapseTo: "verifiedBy.testCase.title" # Show only test case title when collapsed
columns:
- id: "verifiedBy.testCase.id"
caption: "Test ID"
width: 100
- id: "verifiedBy.testCase.title"
caption: "Test Case"
width: 300
hasFocus: true
- id: "verifiedBy.testCase.testResult"
caption: "Result"
width: 100
When collapsed, only the title column displays, reducing visual clutter while preserving key relationship information.
PowerSheet supports custom JavaScript renderers for specialized column display logic:
columns:
- id: "customField.traceabilityStatus"
caption: "Trace Status"
width: 120
renderer: "traceabilityStatusRenderer"
The renderer references a JavaScript module in .polarion/pages/spaces/<Space>/modules/:
// traceabilityStatusRenderer.js
function traceabilityStatusRenderer(value, item) {
if (item.linkedWorkItems && item.linkedWorkItems.length > 0) {
return '<span style="color:green;">✓ Linked</span>';
} else {
return '<span style="color:red;">⚠ Missing Links</span>';
}
}
Store commonly used renderers in the Solution Template space and reference them from multiple PowerSheets to maintain consistency.
Step 7: Reload the PowerSheet
After saving changes to the YAML file:
- Commit your changes via SVN
- Navigate to the PowerSheet document in Polarion
- Refresh the page (🔄 or
Ctrl+R)
The PowerSheet engine reads the YAML configuration at page load time—no server restart required.
Verification
You should now see:
- Modified column headers, widths, and ordering in the PowerSheet grid
- Updated color-coded column groups reflecting your new structure
- Properly expanded relationship columns displaying linked work item data
- Collapsed column groups showing only the
collapseTo column when minimized
Common Pitfalls
PowerSheet YAML parsing is strict. Use exactly 2 spaces per indentation level. Tabs or inconsistent spacing will cause the entire configuration to fail silently, displaying an empty grid.
Custom fields must be prefixed with customField. in column IDs (e.g., customField.asilInherited). Standard fields like id, title, status do not use this prefix. Mixing conventions causes columns to render blank.
If you modify the RTM domain model (.polarion/nextedy/models/*.yaml) by renaming relationships, you must update all PowerSheet column IDs that reference those paths. Use global search to find affected YAML files.
See Also