Skip to main content
diagram

Column Definition Properties

Every column in the columns array accepts the following properties:
PropertyTypeDefaultDescription
idstringAuto-generated from header or bindingUnique identifier for the column. Referenced by formulas, cell decorators, views, and sortBy.
bindingstringSame as idThe Polarion work item field name this column reads from and writes to.
headerstringNoneDisplay text shown in the column header row.
typestringAuto-detected from Polarion fieldData type identifier that controls editor, display, sorting, and data conversion. See Supported Type Identifiers.
widthnumberSee applicationColumn width in pixels.
minWidthnumberSee applicationMinimum width in pixels the column can be resized to.
levelnumber1Hierarchical level at which this column appears. 1 = top level (failure mode), 2 = second level (cause/effect), etc. Not set for task columns.
readOnlybooleanfalseControls whether cells are editable. Automatically set to true for formula columns, server-rendered columns, reference columns, and system fields (author, resolution, created, updated, type).
filterablebooleantrueControls whether users can filter the grid by values in this column.
canCreatebooleantrueFor itemLink and multiItemLink columns only. Controls whether users can create new linked items directly from the cell.
formulastringNoneReferences a named formula from the formulas section. When set, the column becomes read-only automatically. See Calculated Columns.
serverRenderstringNoneServer-side Velocity rendering script. When set, column becomes text type and read-only automatically. See Server Render Columns.
headerGroupstringNoneName of the header group this column belongs to. Columns with the same headerGroup value are displayed under a shared group header.
headerGroupCssstringNoneCSS class name(s) applied to the header group row for this column’s group.
collapseTostringNoneThe column id to collapse this column into when the header group is collapsed.
cellRendererstringNoneName of a custom cell renderer function for this column. See Custom Renderer Templates.
cellCssstringNoneCSS class name(s) applied to every cell in this column.
formatstringNoneDisplay format string for the column data (e.g., date format, number format).
multiLinebooleantrueEnables multi-line text display and editing within cells.
wordWrapbooleantrueControls whether text wraps within cells.
isContentHtmlbooleanSee applicationWhen true, cell content is rendered as HTML rather than plain text.
The readOnly property is automatically set to true regardless of your configuration when any of these conditions apply: the column has a formula, the column has a serverRender script, the column references a cross-project item, the bound field is a protected system field (id, status, type, project, outlineNumber), or the user lacks write permission to the field.

Supported Type Identifiers

The type property accepts the following identifiers. Types that use the colon syntax (e.g., enum:id) carry additional configuration after the type prefix.
TypeDescriptionEditorOData TypeDetails
textPlain text / rich text (stripped)Text inputEdm.StringRich text converted to plain text. Default for unrecognized types.
stringAlias for textText inputEdm.StringSame behavior as text.
intInteger numberNumeric inputEdm.Int6464-bit signed integer.
floatFloating-point numberNumeric inputEdm.DoubleDouble precision.
booleanTrue/false valueCheckboxEdm.BooleanAccepts string "true" / "false".
dateDate onlyDate pickerEdm.DateFormat: yyyy-MM-dd.
datetimeDate and timeDateTime pickerEdm.DateTimeOffsetFull timestamp with timezone.
timeTime onlyTime pickerEdm.DateTimeOffsetFormat: hh:mm:ss.
currencyDecimal currencyNumeric inputEdm.DecimalBigDecimal precision.
ratingRating scale valueDropdownEdm.Int32Colon syntax: rating:scaleId.
durationTime spanText inputEdm.StringPolarion DurationTime format.
enumSingle enum selectionDropdownEdm.StringColon syntax: enum:enumId.
multiEnumMulti-enum selectionMulti-selectEdm.StringColon syntax: multiEnum:enumId.
workflowWorkflow statusStatus displayEdm.StringDisplays workflow state.
itemLinkSingle linked itemLink pickerEdm.StringUpstream traceability.
multiItemLinkMultiple linked itemsMulti-link pickerEdm.StringMultiple upstream links.
taskLinkDownstream task linkLink pickerEdm.StringDownstream mitigation tasks.
refReference / user fieldReference pickerEdm.StringColon syntax: ref:refId.
When you omit the type property, Risksheet infers the type from the bound Polarion field. For example, a field defined as an integer in Polarion automatically becomes an int column, and a native enum field becomes an enum column. Explicitly setting type overrides this inference.

Colon Syntax for Parameterized Types

Several column types support a colon-separated syntax: baseType:parameter. The parameter portion references a named definition in the enums, ratings, or refs sections of risksheet.json.
Syntax PatternBase TypeParameterConfiguration Section
enum:severityenumseverityenums.severity
rating:occurrenceratingoccurrenceratings.occurrence
multiEnum:affectedSystemsmultiEnumaffectedSystemsenums.affectedSystems
ref:requirementrefrequirementrefs.requirement
multiEnum:@NoIDWorkItems[type]multiEnum@NoIDWorkItems[type]WorkItem enum from XML
The type parser extracts the prefix before the first colon to determine the base data type, then passes the remainder as configuration context.

Column Sorting Behavior

Risksheet applies specialized sorting logic based on column type and binding. Sorting is performed client-side for immediate feedback without server round-trips.
Column Type / BindingSorting Behavior
id bindingCustom alphanumeric sort (e.g., PROJECT-2 before PROJECT-10)
outlineNumber bindingHierarchical sort (e.g., 1.2 before 1.10)
itemLink, taskLinkSorted by linked item’s display property
multiItemLinkSorted by concatenated labels of all linked items
Nested columns (linked item properties)Sorted by the linked item’s property value
Default (all other types)Standard ascending/descending sort
Configuring initial sort order uses the sortBy property:
{
  "sortBy": ["~rpn", "sev"]
}
This sorts by RPN descending (tilde prefix ~ indicates descending), then by severity ascending.
When comparing to a baseline revision, sorting operates on the baseline snapshot values rather than current values, except for systemItemId and systemItemRevision which always reference the current item.

Known Limitations

LimitationDetails
First ID column cannot be renamedThe first Item Id column in the grid cannot have its header renamed. This is a known platform limitation.
Single-user assignment onlyUser reference (ref) columns support single-user assignment. Multi-user assignment requires the Polarion native form.
Unsaved item sort prefixNewly created items not yet saved display with an asterisk (*) prefix in their ID, which affects sort order.

Column Configuration Examples

Basic Text Column

{
  "id": "failureMode",
  "binding": "title",
  "header": "Failure Mode",
  "type": "text",
  "width": 250,
  "level": 1
}

Rating Column with Scale

{
  "id": "sev",
  "binding": "sev",
  "header": "Severity (S)",
  "type": "rating:severity",
  "width": 80,
  "level": 2
}

Calculated RPN Column

{
  "id": "rpn",
  "binding": "rpn",
  "header": "RPN",
  "type": "int",
  "width": 70,
  "formula": "commonRpn",
  "level": 2
}
The formula commonRpn is defined in the formulas section:
{
  "formulas": {
    "commonRpn": "function(info){ var value = info.item['occ']*info.item['det']*info.item['sev']; return value?value:null;}"
  }
}

Grouped Columns with Header

[
  {
    "id": "sev",
    "binding": "sev",
    "header": "Severity (S)",
    "type": "rating:severity",
    "headerGroup": "Initial Risk Assessment",
    "width": 80,
    "level": 2
  },
  {
    "id": "occ",
    "binding": "occ",
    "header": "Occurrence (O)",
    "type": "rating:occurrence",
    "headerGroup": "Initial Risk Assessment",
    "width": 80,
    "level": 2
  },
  {
    "id": "det",
    "binding": "det",
    "header": "Detection (D)",
    "type": "rating:detection",
    "headerGroup": "Initial Risk Assessment",
    "width": 80,
    "level": 2
  },
  {
    "id": "rpn",
    "binding": "rpn",
    "header": "RPN",
    "type": "int",
    "headerGroup": "Initial Risk Assessment",
    "width": 70,
    "formula": "commonRpn",
    "level": 2
  }
]

Upstream Traceability Column

{
  "id": "requirement",
  "binding": "requirement",
  "header": "Linked Requirement",
  "type": "itemLink",
  "width": 200,
  "canCreate": false,
  "level": 1
}

Server-Rendered Column

{
  "id": "testStatus",
  "binding": "testStatus",
  "header": "Test Status",
  "serverRender": "testStatusRenderer",
  "width": 150,
  "level": 2
}
When serverRender is set, the column type is automatically forced to text and readOnly to true.

Complete Example

A full columns array for an automotive FMEA risksheet with initial assessment, mitigation actions, and revised assessment:
{
  "columns": [
    {
      "id": "failureMode",
      "binding": "title",
      "header": "Failure Mode",
      "type": "text",
      "width": 220,
      "level": 1
    },
    {
      "id": "effect",
      "binding": "effect",
      "header": "Effect of Failure",
      "type": "text",
      "width": 200,
      "level": 2
    },
    {
      "id": "cause",
      "binding": "cause",
      "header": "Potential Cause",
      "type": "text",
      "width": 200,
      "level": 2
    },
    {
      "id": "sev",
      "binding": "sev",
      "header": "S",
      "type": "rating:severity",
      "headerGroup": "Initial",
      "width": 60,
      "level": 2
    },
    {
      "id": "occ",
      "binding": "occ",
      "header": "O",
      "type": "rating:occurrence",
      "headerGroup": "Initial",
      "width": 60,
      "level": 2
    },
    {
      "id": "det",
      "binding": "det",
      "header": "D",
      "type": "rating:detection",
      "headerGroup": "Initial",
      "width": 60,
      "level": 2
    },
    {
      "id": "rpn",
      "binding": "rpn",
      "header": "RPN",
      "type": "int",
      "headerGroup": "Initial",
      "formula": "commonRpn",
      "width": 65,
      "level": 2
    },
    {
      "id": "mitigationAction",
      "binding": "mitigationAction",
      "header": "Recommended Action",
      "type": "text",
      "width": 200,
      "level": 2
    },
    {
      "id": "dueDate",
      "binding": "dueDate",
      "header": "Due Date",
      "type": "date",
      "width": 110,
      "level": 2
    },
    {
      "id": "sevNew",
      "binding": "sevNew",
      "header": "S",
      "type": "rating:severity",
      "headerGroup": "Revised",
      "width": 60,
      "level": 2
    },
    {
      "id": "occNew",
      "binding": "occNew",
      "header": "O",
      "type": "rating:occurrence",
      "headerGroup": "Revised",
      "width": 60,
      "level": 2
    },
    {
      "id": "detNew",
      "binding": "detNew",
      "header": "D",
      "type": "rating:detection",
      "headerGroup": "Revised",
      "width": 60,
      "level": 2
    },
    {
      "id": "rpnNew",
      "binding": "rpnNew",
      "header": "RPN",
      "type": "int",
      "headerGroup": "Revised",
      "formula": "commonRpnNew",
      "width": 65,
      "level": 2
    }
  ],
  "formulas": {
    "commonRpn": "function(info){ var value = info.item['occ']*info.item['det']*info.item['sev']; return value?value:null;}",
    "commonRpnNew": "function(info){ var value = info.item['occNew']*info.item['detNew']*info.item['sevNew']; return value?value:null;}"
  }
}
KB ArticlesSupport TicketsSource Code
  • risksheet.json
  • PolarionAppConfigManager.java
  • SheetConstants.ts
  • ColumnTypeManager.java
  • AppConfig.ts