Skip to main content

Prerequisites

Before configuring your HARA workflow, ensure you have:
  • Administrative access to your Polarion project
  • Work item types created for Hazard, Harm, and Safety Goal (if not using defaults)
  • Link roles defined for HARA traceability relationships
  • Understanding of your organization’s HARA severity and probability classifications

Configure Work Item Types

Define the work item types used in your HARA analysis:
{
  "dataTypes": {
    "risk": {
      "type": "hazard,harm",
      "role": "relates_to"
    },
    "task": {
      "type": "safetyGoal,functionalSafetyRequirement",
      "role": "mitigates",
      "showInMenu": true
    }
  }
}
Key configuration notes:
  • risk.type: Comma-separated list of HARA work item types (Hazard, Harm)
  • task.type: Downstream safety measures (Safety Goals, Functional Safety Requirements)
  • risk.role: Link role connecting Hazards to Harms
  • task.role: Link role connecting risks to mitigation measures

Set Up HARA Parameters

Configure severity, exposure, and controllability columns according to ISO 26262:
{
  "columns": [
    {
      "id": "severity",
      "header": "S (Severity)",
      "binding": "severity",
      "type": "enum",
      "level": 1
    },
    {
      "id": "exposure",
      "header": "E (Exposure)",
      "binding": "exposure",
      "type": "enum",
      "level": 1
    },
    {
      "id": "controllability",
      "header": "C (Controllability)",
      "binding": "controllability",
      "type": "enum",
      "level": 1
    },
    {
      "id": "asil",
      "header": "ASIL",
      "type": "string",
      "formula": "asilCalculation",
      "readOnly": true,
      "level": 1
    }
  ]
}

Configure ASIL Calculation

Add a formula to automatically calculate ASIL (Automotive Safety Integrity Level):
{
  "formulas": {
    "asilCalculation": "function(info) { var s = info.item['severity']; var e = info.item['exposure']; var c = info.item['controllability']; if (!s || !e || !c) return null; var sVal = parseInt(s.replace('S', '')); var eVal = parseInt(e.replace('E', '')); var cVal = parseInt(c.replace('C', '')); if (sVal === 0) return 'QM'; var total = sVal + eVal + cVal; if (total <= 3) return 'QM'; if (total <= 5) return 'ASIL A'; if (total <= 7) return 'ASIL B'; if (total <= 9) return 'ASIL C'; return 'ASIL D'; }"
  }
}
ASIL calculation logic: diagram

Add Conditional Formatting

Apply color coding based on ASIL levels:
{
  "cellDecorators": {
    "asilColor": "function(info) { var val = info.value; $(info.cell).toggleClass('asil-qm', val === 'QM'); $(info.cell).toggleClass('asil-a', val === 'ASIL A'); $(info.cell).toggleClass('asil-b', val === 'ASIL B'); $(info.cell).toggleClass('asil-c', val === 'ASIL C'); $(info.cell).toggleClass('asil-d', val === 'ASIL D'); }"
  },
  "columns": [
    {
      "id": "asil",
      "cellDecorator": "asilColor"
    }
  ],
  "styles": {
    ".asil-qm": "background-color: #e8f5e9 !important; color: #2e7d32 !important;",
    ".asil-a": "background-color: #fff9c4 !important; color: #f57f17 !important;",
    ".asil-b": "background-color: #ffe0b2 !important; color: #e65100 !important;",
    ".asil-c": "background-color: #ffccbc !important; color: #bf360c !important;",
    ".asil-d": "background-color: #ffcdd2 !important; color: #b71c1c !important;"
  }
}

Configure Hazard-Harm Relationships

Enable multi-level hierarchy for Hazard → Harm relationships:
{
  "levels": [
    {
      "id": "hazard",
      "header": "Hazard",
      "controlColumn": "systemItemId",
      "dataType": "risk",
      "itemTypes": "hazard",
      "showInMenu": true
    },
    {
      "id": "harm",
      "header": "Harm",
      "controlColumn": "systemItemId",
      "dataType": "risk",
      "itemTypes": "harm",
      "showInMenu": true
    }
  ]
}
To support multiple work item types (Hazard and Harm) within the same RISKSHEET, enable link role compliance checking:Set nextedy.risksheet.checkLinkRoleCompliance=true in Administration > Configuration Properties.
Configure downstream safety goal columns:
{
  "columns": [
    {
      "id": "safetyGoals",
      "header": "Safety Goals",
      "type": "taskLink",
      "binding": "safetyGoal",
      "zoomColumn": "title",
      "level": 1,
      "canCreate": true
    }
  ]
}
If safety goals are managed in a separate project, configure cross-project loading:
{
  "dataTypes": {
    "task": {
      "project": "SAFETY_GOALS_PROJECT",
      "createInProject": "SAFETY_GOALS_PROJECT"
    }
  }
}

Verification Steps

After configuration:
  1. Open your HARA document in RISKSHEET
  2. Create a Hazard work item
  3. Add a linked Harm with S/E/C ratings
  4. Verify ASIL calculates automatically
  5. Check color coding matches ASIL level
  6. Link a Safety Goal and verify traceability
You should now see a fully functional HARA workflow with automated ASIL determination, color-coded risk levels, and complete traceability from hazards through safety goals.

See Also

KB ArticlesSupport TicketsSource Code
  • RisksheetProjectProperties.java
  • PolarionAppConfigManager.java
  • AppConfig.ts
  • risksheet.json
  • AddTaskCommand.ts