Skip to main content

Prerequisites

Before configuring FMEA workflows, ensure you have:
  • Administrative access to your Polarion project
  • A Risksheet document or template to configure
  • Basic understanding of FMEA methodology (Severity, Occurrence, Detection ratings)

Step 1: Define FMEA Rating Scales

Open the configuration editor (Menu > Configuration > Edit Risksheet Configuration) and define your rating enumerations in the ratings section:
{
  "ratings": {
    "severity": {
      "1": "Minor",
      "2": "Moderate",
      "3": "Significant",
      "4": "Major",
      "5": "Catastrophic"
    },
    "occurrence": {
      "1": "Remote",
      "2": "Low",
      "3": "Moderate",
      "4": "High",
      "5": "Very High"
    },
    "detection": {
      "1": "Almost Certain",
      "2": "High",
      "3": "Moderate",
      "4": "Low",
      "5": "Very Low"
    }
  }
}
Rating values can be decimal numbers (e.g., 1.5, 2.7) for more granular risk assessment. The system supports both integer and floating-point scales.

Step 2: Add FMEA Columns

Define columns for failure mode analysis in the columns array:
{
  "columns": [
    {
      "id": "failureMode",
      "header": "Failure Mode",
      "binding": "title",
      "type": "string",
      "level": 1
    },
    {
      "id": "effects",
      "header": "Effects",
      "binding": "description",
      "type": "text",
      "level": 1
    },
    {
      "id": "sev",
      "header": "Severity",
      "binding": "severity",
      "type": "enum:severity",
      "level": 1
    },
    {
      "id": "occ",
      "header": "Occurrence",
      "binding": "occurrence",
      "type": "enum:occurrence",
      "level": 1
    },
    {
      "id": "det",
      "header": "Detection",
      "binding": "detection",
      "type": "enum:detection",
      "level": 1
    }
  ]
}

Step 3: Configure RPN Calculation

Add a calculated column for RPN (Risk Priority Number) using the formula property:
{
  "id": "rpn",
  "header": "RPN",
  "type": "int",
  "level": 1,
  "readOnly": true,
  "formula": "commonRpn"
}
Define the formula function in the formulas section:
{
  "formulas": {
    "commonRpn": "function(info){ var value = info.item['occ']*info.item['det']*info.item['sev']; return value?value:null;}"
  }
}
Formula columns are automatically read-only. Values are calculated client-side when severity, occurrence, or detection ratings change.

Step 4: Add Post-Mitigation Assessment

Configure columns for reassessing risk after countermeasures:
{
  "columns": [
    {
      "id": "sevNew",
      "header": "Severity (New)",
      "binding": "severityNew",
      "type": "enum:severity",
      "level": 1
    },
    {
      "id": "occNew",
      "header": "Occurrence (New)",
      "binding": "occurrenceNew",
      "type": "enum:occurrence",
      "level": 1
    },
    {
      "id": "detNew",
      "header": "Detection (New)",
      "binding": "detectionNew",
      "type": "enum:detection",
      "level": 1
    },
    {
      "id": "rpnNew",
      "header": "RPN (New)",
      "type": "int",
      "level": 1,
      "readOnly": true,
      "formula": "commonRpnNew"
    }
  ],
  "formulas": {
    "commonRpnNew": "function(info){ var value = info.item['occNew']*info.item['detNew']*info.item['sevNew']; return value?value:null;}"
  }
}

Step 5: Apply Risk-Based Conditional Styling

Use cellDecorators to apply color-coding based on RPN thresholds:
{
  "cellDecorators": {
    "rpn": "function(info){ var val = info.value; $(info.cell).toggleClass('rpn1', val>0 && val <= 150 ); $(info.cell).toggleClass('rpn2', val > 150 && val <= 350); $(info.cell).toggleClass('rpn3', val > 350);}"
  },
  "styles": {
    ".rpn1": "background-color: #eaf5e9 !important; color: #1d5f20 !important;",
    ".rpn2": "background-color: #fff3d2 !important; color: #735602 !important;",
    ".rpn3": "background-color: #f8eae7 !important; color: #ab1c00 !important;"
  }
}
Risk Threshold Matrix:
RPN RangeRisk LevelColor CodeCSS Class
1 — 150LowGreen (#eaf5e9).rpn1
151 — 350MediumYellow (#fff3d2).rpn2
> 350HighRed (#f8eae7).rpn3
Adjust RPN thresholds based on your organization’s risk tolerance. ISO 14971 and automotive FMEA standards may require different cutoff values.
Configure downstream task linking to track corrective actions:
{
  "dataTypes": {
    "task": {
      "type": "task",
      "role": "mitigates",
      "showInMenu": true
    }
  },
  "columns": [
    {
      "id": "mitigationTasks",
      "header": "Mitigation Tasks",
      "type": "taskLink",
      "level": 1,
      "dataType": "task"
    }
  ]
}

Verification

After saving your configuration:
  1. Open your Risksheet document
  2. You should see FMEA columns (Severity, Occurrence, Detection)
  3. Enter rating values and verify RPN auto-calculates
  4. Confirm cells are color-coded based on RPN thresholds
  5. Create mitigation tasks using the taskLink column

See Also

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