Column Type Identifier
Core Properties
Property Type Default Description typestring — Must be set to multiItemLink for multi-item linking headerstring Required Display name shown in column header idstring Auto-generated Unique identifier for the column; auto-generated from header if not specified bindingsstring — Polarion field path for auto-detection (omit for custom linking) widthnumber — Column width in pixels levelnumber 1 Hierarchical level where this column appears (1 = top level, 2 = second level) filterableboolean true Whether users can filter by this column’s values readOnlyboolean false Whether the column is editable headerHeightnumber — Custom height for column header (useful for multi-line headers)
Type Properties Configuration
The typeProperties object controls link behavior and filtering:
Property Type Default Description linkRolestring Required Polarion link role name (e.g., assesses, effect, requirement) linkTypesstring Required Comma-separated list of allowed work item types (e.g., requirement,softwarerequirement) createInCurrentDocumentboolean false Whether users can create new linked items directly queryFactorystring — Custom JavaScript function for filtering available items itemTemplatestring — Velocity template for rendering each linked item inline
Basic Configuration Example
{
"header" : "System Requirements" ,
"type" : "multiItemLink" ,
"width" : 200 ,
"id" : "sysreq" ,
"level" : 1 ,
"filterable" : true ,
"typeProperties" : {
"linkRole" : "assesses" ,
"linkTypes" : "systemrequirement,softwarerequirement"
}
}
Multiple Work Item Types
MultiItemLink columns support linking to different work item types in the same cell:
{
"header" : "Item/Function" ,
"type" : "multiItemLink" ,
"width" : 150 ,
"typeProperties" : {
"linkRole" : "assesses" ,
"linkTypes" : "systemrequirement,softwarerequirement,systemelement"
}
}
When you need to display different work item types in one column instead of creating separate columns, use comma-separated linkTypes. This consolidates multiple item types into a single column, reducing visual clutter.
Cell Display
MultiItemLink cells display all linked items as a vertical list:
Click the cell to open the editor for adding/removing items:
Editor Behavior
When users click a multiItemLink cell, the system opens an editor that supports adding and removing multiple items:
Feature Behavior Add items Type to search; select from autocomplete suggestions Remove items Click the [×] button next to each item Create items Click ”+ Create new item” if createInCurrentDocument: true Unsaved items New items appear with * prefix until saved Autocomplete Includes previously added items and new unsaved items
Custom Item Rendering with itemTemplate
Use itemTemplate to display additional information (like severity) within each linked item in the cell without requiring sub-columns:
{
"header" : "Effects" ,
"type" : "multiItemLink" ,
"width" : 250 ,
"typeProperties" : {
"linkRole" : "effect" ,
"linkTypes" : "risk" ,
"createInCurrentDocument" : true ,
"itemTemplate" : "<span style= \" display: table-cell; width: 100%; padding-right: 4px; \" >$item.fields().description().render().htmlFor().forFrame()</span><span style= \" display: table-cell; white-space: nowrap; \" >[S:$item.fields().get( \" severityRating \" ).render().withIcon(false).htmlFor().forFrame()]</span>"
}
}
This template renders both the item description and severity rating in a single cell:
Sub-Columns Restriction
MultiItemLink columns cannot have nested sub-columns using dot notation:
// ❌ This does NOT work with multiItemLink
{
"header" : "Effect Severity" ,
"bindings" : "effects.severity" , // Invalid: sub-columns not supported
"level" : 2
}
Workaround: serverRender for Sub-Column Display
Use Server Render Columns to display linked item properties in separate columns:
{
"header" : "Effect Severity" ,
"type" : "serverRender" ,
"width" : 120 ,
"serverRender" : "<ol style='margin-block-start: -16px; margin-block-end: -16px; padding-inline-start: 16px;'>#foreach($linkedItem in $item.fields().linkedWorkItems()) #set($effect = $linkedItem.fields().workItem().get()) <li>$effect.fields().severity().render().withIcon(true).htmlFor().forFrame()</li> #end</ol>"
}
See Display Sub-Columns for detailed examples.
Filtering Linked Items
Use a queryFactory to restrict which work items appear in the autocomplete editor:
{
"header" : "Active System Requirements" ,
"type" : "multiItemLink" ,
"typeProperties" : {
"linkRole" : "assesses" ,
"linkTypes" : "systemrequirement" ,
"queryFactory" : "filterActiveItems"
}
}
Define the filter function:
window . filterActiveItems = function ( item , colDef , config ) {
// Return OData $filter expression
return "fields/status ne 'closed'" ;
};
MultiItemLink columns store linked items as JSON arrays internally:
Context Format Example Grid display Vertical list REQ-001, REQ-002, ELEM-005 OData request JSON array [{"id": "REQ-001"}, {"id": "REQ-002"}]OData response Array of objects [{"id": "REQ-001", "project": "PROJ"}, ...]Temporary items Array with * prefix [{"id": "*REQ-001"}, {"id": "REQ-002"}]
Comparison: itemLink vs multiItemLink
Feature itemLink multiItemLink Items per cell 1 (single) Multiple Sub-columns Supported Not supported (use serverRender) Editor type Autocomplete dropdown Multi-select with add/remove Use case Parent-child 1:1 relationships Parent-child 1:N relationships Storage Object reference Array of objects Custom rendering itemTemplate supported itemTemplate supported
Undo/Redo Support
MultiItemLink edits are fully supported:
Add/remove individual items (each action is undoable)
Bulk paste operations (treated as single undo action)
Dependent column restoration on undo
Unsaved items (with * prefix) cannot be restored if deleted before save
Permission Handling
Scenario Behavior User lacks edit permission Column becomes read-only; no editor opens Linked item is deleted Item disappears from cell on next refresh User cannot create items ”Create new item” option hidden Cross-project links Supported using IdProject format
Filterable Behavior
When filterable: true, users can filter RISKSHEET rows by linked item:
See Also
KB Articles Support Tickets Source Code
SheetConstants.ts
PolarionAppConfigManager.java
GridUndoStack.ts
ExportToExcel.ts
RisksheetDataStorage.java