Skip to main content

Standard Sub-Columns with Dot Notation

For single-item link columns (itemLink or taskLink), access linked item properties using dot notation in the bindings property:
{
  "header": "Harm Severity",
  "bindings": "harm.harmSeverity",
  "type": "enum:harm_severity_5",
  "width": 110,
  "filterable": true,
  "level": 3,
  "id": "severity"
}
This pattern works for:
  • Upstream linksharm.severity (item linked to current row)
  • Downstream linkstask.status (task item linked from current row)
diagram
The prefix before the dot (harm., task.) must match the column ID of the corresponding link column. If your link column has id: "systemReq", use systemReq.severity for the sub-column binding.
By default, multiItemLink columns do not support dot notation sub-columns. However, you can use serverRender to display properties from multiple linked items in a separate column.

Upstream Multi-Item Sub-Columns

To show severity values from multiple linked System Requirements:
{
  "header": "Severity",
  "width": 120,
  "serverRender": "<ol style='margin-block-start: -16px;margin-block-end: -16px;padding-inline-start: 16px;'>#foreach($linkedWorkItem in $item.fields().linkedWorkItems()) #set($sysReq = $linkedWorkItem.fields().workItem().get()) #set($typeId = $sysReq.fields().type().get().id()) #if($typeId.equals(\"systemrequirement\")) <li> $sysReq.fields().severity().render().withIcon(true).htmlFor().forFrame() </li>  #end #end</ol>"
}

Downstream Multi-Item Sub-Columns

To show severity from all linked Issue work items:
{
  "header": "Issue Severity",
  "width": 120,
  "serverRender": "<ol style='margin-block-start: -16px;margin-block-end: -16px;padding-inline-start: 16px;'>#foreach($issueWi in $item.transaction().workItems().search().query(\"type:issue AND linkedWorkItems:${item.getReference().projectId()}/${item.getReference().id()}\").sort(\"id\")) <li> $issueWi.fields().severity().render().withIcon(true).htmlFor().forFrame() </li>   #end</ol>"
}

Sub-Column Configuration Workflow

StepDot Notation Sub-ColumnsServerRender Sub-Columns (Multi-Item)
1. Define link column{"id": "harm", "type": "itemLink"}{"id": "effects", "type": "multiItemLink"}
2. Add sub-column{"bindings": "harm.severity"}{"serverRender": "...velocity script..."}
3. Specify typeAuto-detected from bindingAlways "type": "text" (read-only)
4. Edit behaviorEditable (if permissions allow)Read-only
Sub-columns created with serverRender are always read-only. Users cannot edit values directly in these columns. To enable editing of upstream sub-columns using dot notation, see Enable Editing of Upstream Columns.

Understanding the ServerRender Template

The serverRender property contains a Velocity script that:
  1. Iterates through linked items using #foreach
  2. Filters by work item type using #if($typeId.equals("..."))
  3. Renders each field value as a list item <li>
  4. Formats output with inline CSS to control margins and padding
diagram

Key Velocity Methods for Sub-Columns

  • $item.fields().linkedWorkItems() — Get all upstream linked items
  • $linkedWorkItem.fields().workItem().get() — Get the actual work item object
  • $sysReq.fields().type().get().id() — Get work item type ID for filtering
  • $sysReq.fields().severity().render() — Render field value with Polarion formatting
  • .withIcon(true) — Include field type icon in rendering
  • .htmlFor().forFrame() — Format for RISKSHEET display
For downstream queries:
  • $item.transaction().workItems().search().query("...") — Query downstream items
  • type:issue AND linkedWorkItems:${item.getReference()} — Find items linking to current row
  • .sort("id") — Sort results by work item ID
When adding Velocity scripts to risksheet.json, escape double quotes with backslashes (\") and keep the entire script on a single line (or use \n for readability in some JSON editors).

Inline Display Alternative

If you prefer to show sub-column data inline with the link (rather than in a separate column), use custom link rendering instead:
"typeProperties": {
  "itemTemplate": "<span>$item.fields().title().render().htmlFor().forFrame()</span><span style=\"color:#666;font-size:0.9em;\">[S:$item.fields().severity().render().htmlFor().forFrame()]</span>"
}
See Customize Link Rendering for details.

Verification

After configuring sub-columns:
  1. Save your risksheet.json configuration
  2. Refresh the RISKSHEET widget
  3. For dot notation sub-columns: You should see a separate column displaying the linked item property with the same data type as the source field
  4. For serverRender sub-columns: You should see a read-only column displaying a formatted list of values from all linked items, sorted by ID

See Also

KB ArticlesSupport TicketsSource Code
  • CustomMergeManager.ts
  • ColumnsHelper.ts
  • risksheet.json
  • PolarionAppConfigManager.java
  • AppConfig.ts