Prerequisites
Steps
1. Locate the Risksheet Configuration File
Navigate to your project’s risksheet configuration:
<project>/.polarion/nextedy/sheet-configurations/<documentId>/risksheet.json
For HARA documents, the file is typically in RiskTemplates/HazidHaraTemplate/attachments/risksheet.json.
Use your IDE’s JSON schema validator to catch syntax errors before committing. Risksheet JSON must be valid or the document will fail to load.
2. Understand the Column Structure
Risksheet columns are defined in the columns array and organized into columnGroups:
{
"columns": [
{
"id": "hazardId",
"header": "Hazard ID",
"type": "field",
"fieldId": "hazardId",
"width": 120,
"group": "identification"
}
],
"columnGroups": [
{
"id": "identification",
"label": "Hazard Identification",
"color": "#3498db"
}
]
}
Key Properties:
| Property | Purpose | Example |
|---|
id | Unique column identifier | "hazardId" |
header | Display name in table header | "Hazard ID" |
type | Column binding type | "field", "link", "formula", "task" |
fieldId | Work item field ID (for type: "field") | "hazardId" |
width | Column width in pixels | 120 |
group | Column group ID for visual organization | "identification" |
3. Add a New Column
To add a custom field column, append to the columns array:
{
"id": "hazardSource",
"header": "Hazard Source",
"type": "field",
"fieldId": "hazardSource",
"width": 200,
"group": "identification",
"level": 1
}
The level property controls which hierarchical level displays this column:
level: 1 — Top-level rows (e.g., System Element in HARA, Characteristic in PFMEA)
level: 2 — Second-level rows (e.g., Hazard in HARA, Failure Mode in PFMEA)
level: 3 — Third-level rows (e.g., Cause in FMEA)
If you add a column for a field that doesn’t exist in .polarion/tracker/fields/custom-fields.xml, the risksheet will display the column but show empty cells. Create the custom field first using Polarion’s Admin UI or SVN configuration.
Risksheet views control which columns are visible in different workflow stages. Edit the views array:
{
"views": [
{
"name": "Initial Assessment",
"hiddenColumns": ["postmitigationAP", "riskControls"],
"collapsedGroups": ["mitigation"]
},
{
"name": "Post-Mitigation Review",
"hiddenColumns": ["hazardSource"],
"collapsedGroups": []
}
]
}
This creates progressive disclosure: early views show only pre-mitigation columns, later views show control effectiveness.
5. Add Cell Decorators for Visual Emphasis
Cell decorators apply conditional formatting. Common patterns:
ASIL Color-Coding:
{
"id": "asil",
"header": "ASIL",
"type": "field",
"fieldId": "asil",
"width": 80,
"cellDecorator": "asilDecorator"
}
Reference the decorator in the cellDecorators section:
{
"cellDecorators": [
{
"id": "asilDecorator",
"type": "badge",
"colorMap": {
"qm": "#95a5a6",
"a": "#f39c12",
"b": "#e67e22",
"c": "#e74c3c",
"d": "#c0392b"
},
"labelMap": {
"qm": "QM",
"a": "A",
"b": "B",
"c": "C",
"d": "D"
}
}
]
}
Action Priority Badge:
{
"id": "apDecorator",
"type": "badge",
"colorMap": {
"h": "#c0392b",
"m": "#e67e22",
"l": "#27ae60"
},
"labelMap": {
"h": "High",
"m": "Medium",
"l": "Low"
},
"fontSize": "16px",
"fontWeight": "bold"
}
Add headerTooltip to explain non-obvious columns:
{
"id": "controlType",
"header": "Control Type",
"type": "field",
"fieldId": "riskControlType",
"width": 150,
"group": "mitigation",
"headerTooltip": "ISO 26262 control hierarchy: Inherent Safety > Protective Measure > Information for Safety"
}
7. Commit Configuration Changes
cd <project-directory>
svn status # Verify risksheet.json is modified
svn commit .polarion/nextedy/sheet-configurations/ -m "Add hazardSource column to HARA risksheet"
Polarion aggressively caches risksheet JSON. After committing, users must hard-refresh the browser (Ctrl+Shift+R / Cmd+Shift+R) or clear cache to see changes. Inform your team when deploying configuration updates.
8. Test in Progressive Workflow Views
Open the risksheet document and cycle through all named views to verify:
- Columns appear in the correct hierarchical level
- Cell decorators render with expected colors
- Hidden columns are removed in appropriate views
- Column groups display correct labels and collapse/expand behavior
Common Pitfalls
A single missing comma or mismatched brace will break the entire risksheet. Use a JSON validator before committing. Polarion shows a generic “Failed to load risksheet” error without details.
Each column.id must be unique within the risksheet. Duplicate IDs cause silent failures where only the first column definition is honored.
If you bind a type: "field" column to a link-type field (e.g., linkedWorkItems), the column will display internal work item IDs instead of formatted content. Use type: "link" with a linkRole for work item references.
Tips from Support Tickets
For text-heavy fields like hazardDescription, use width: 300 or higher to prevent excessive text wrapping. Users can manually resize columns, but default widths should accommodate typical content.
Column order in the JSON array controls display order. Move critical decision columns (ASIL, Action Priority) earlier in the array for left-to-right workflow alignment.
Use views to hide complexity from junior users. Create a “Manager Summary” view showing only hazardId, asil, safetyGoal, and riskControls, hiding detailed assessment columns.
ASCII Workflow: Column Configuration Lifecycle
RISKSHEET COLUMN CONFIGURATION WORKFLOW
- IDENTIFY NEED
├─ Gap in existing columns (field not visible)
├─ Workflow confusion (too many columns in view)
└─ Visual priority (key fields not emphasized)
↓
- DESIGN CHANGES
├─ Determine hierarchical level (1/2/3)
├─ Choose column group for organization
├─ Select cell decorator for visual encoding
└─ Define view-specific visibility rules
↓
- EDIT risksheet.json
├─ Add column definition to columns[] array
├─ Register in columnGroups[] if new group
├─ Configure cellDecorators[] if custom styling
└─ Update views[] for progressive disclosure
↓
- VALIDATE JSON
├─ Check syntax (no trailing commas, matching braces)
├─ Verify field IDs exist in custom-fields.xml
└─ Confirm column IDs are unique
↓
- COMMIT TO SVN
├─ svn commit with descriptive message
└─ Notify team to hard-refresh browsers
↓
- TEST IN POLARION
├─ Open risksheet document (hard-refresh first!)
├─ Cycle through all views
├─ Verify rendering at each hierarchical level
└─ Check cell decorator color mapping
↓
- ITERATE
└─ Collect user feedback → return to step 2
Verification
You should now see:
- New column appears in the risksheet table at the configured hierarchical level
- Cell decorators render with color-coded badges or custom formatting
- Column groups visually organize related columns with collapsible headers
- View switching hides/shows columns according to workflow stage
- Header tooltips provide context when hovering over column headers
See Also