Skip to main content

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:
PropertyPurposeExample
idUnique column identifier"hazardId"
headerDisplay name in table header"Hazard ID"
typeColumn binding type"field", "link", "formula", "task"
fieldIdWork item field ID (for type: "field")"hazardId"
widthColumn width in pixels120
groupColumn 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.

4. Configure Column Visibility per View

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"
}

6. Configure Tooltips for Complex Fields

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:
  1. Columns appear in the correct hierarchical level
  2. Cell decorators render with expected colors
  3. Hidden columns are removed in appropriate views
  4. 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
  1. IDENTIFY NEED ├─ Gap in existing columns (field not visible) ├─ Workflow confusion (too many columns in view) └─ Visual priority (key fields not emphasized) ↓
  2. DESIGN CHANGES ├─ Determine hierarchical level (1/2/3) ├─ Choose column group for organization ├─ Select cell decorator for visual encoding └─ Define view-specific visibility rules ↓
  3. 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 ↓
  4. VALIDATE JSON ├─ Check syntax (no trailing commas, matching braces) ├─ Verify field IDs exist in custom-fields.xml └─ Confirm column IDs are unique ↓
  5. COMMIT TO SVN ├─ svn commit with descriptive message └─ Notify team to hard-refresh browsers ↓
  6. TEST IN POLARION ├─ Open risksheet document (hard-refresh first!) ├─ Cycle through all views ├─ Verify rendering at each hierarchical level └─ Check cell decorator color mapping ↓
  7. ITERATE └─ Collect user feedback → return to step 2

Verification

You should now see:
  1. New column appears in the risksheet table at the configured hierarchical level
  2. Cell decorators render with color-coded badges or custom formatting
  3. Column groups visually organize related columns with collapsible headers
  4. View switching hides/shows columns according to workflow stage
  5. Header tooltips provide context when hovering over column headers

See Also