Column Type Identifier
Core Properties
Property Type Default Description typestring — Must be set to itemLink to create a single-item linking column headerstring Required Display name shown in column header idstring Auto-generated Unique identifier for the column; auto-generated from header or binding if not specified bindingsstring — Polarion field path (e.g., harm, requirement) for auto-detection of column type and nested sub-columns 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 (upstream sub-columns default to true)
Type Properties Configuration
The typeProperties object controls link behavior and filtering:
Property Type Default Description linkRolestring Required Polarion link role name defining the relationship type (e.g., assesses, harm, effect) linkTypesstring Required Comma-separated list of allowed work item types for linking (e.g., requirement,systemrequirement) createInCurrentDocumentboolean false Whether users can create new linked items directly in the current document queryFactorystring — Custom JavaScript function name for filtering available linked items in the editor itemTemplatestring — Velocity template for custom item rendering (see Customize Link Rendering )
Basic Configuration Example
{
"header" : "Requirement" ,
"type" : "itemLink" ,
"width" : 150 ,
"id" : "requirement" ,
"bindings" : "requirement" ,
"level" : 1 ,
"filterable" : true ,
"typeProperties" : {
"linkRole" : "assesses" ,
"linkTypes" : "requirement"
}
}
Nested Sub-Columns
ItemLink columns support nested sub-columns using dot notation. Sub-columns display fields from the linked item:
{
"header" : "Requirement Status" ,
"type" : "workflow" ,
"bindings" : "requirement.status" ,
"level" : 2 ,
"readOnly" : true
}
Property Type Default Description levelnumber parent+1 Sub-columns automatically appear at parent level + 1 bindingsstring Required Must start with parent column’s binding (e.g., requirement.severity) readOnlyboolean true Upstream sub-columns default to read-only; set to false to enable editing
Editor Behavior
When users click an itemLink cell, the system displays an autocomplete editor:
Autocomplete suggestions query matching work items by ID or name
Selecting a suggestion auto-populates all nested sub-columns
“Create new item” option appears if createInCurrentDocument: true
New items are created within the current document attachment
Editing Upstream Sub-Columns
By default, sub-columns showing linked item properties are read-only. Enable editing by setting readOnly: false:
{
"header" : "Requirement Severity" ,
"bindings" : "requirement.severity" ,
"type" : "enum:severity_rating" ,
"level" : 2 ,
"readOnly" : false
}
Editing upstream sub-columns modifies the linked work item directly. Changes affect all references to that linked item, not just the current RISKSHEET row. Users should verify permissions before enabling edits.
Change the default behavior globally via Polarion configuration:
nextedy.risksheet.upstreamSubColumnsReadonly=false
Custom Item Rendering
Use itemTemplate to display additional information alongside the item link. The template uses Velocity syntax and receives the $item variable:
{
"header" : "Effect" ,
"type" : "itemLink" ,
"typeProperties" : {
"linkRole" : "effect" ,
"linkTypes" : "risk" ,
"itemTemplate" : "<span>$item.fields().description().render().htmlFor().forFrame()</span> <span style='white-space: nowrap;'>[S:$item.fields().get( \" severityRating \" ).render().withIcon(false).htmlFor().forFrame()]</span>"
}
}
Filtering Linked Items
Use a queryFactory to restrict which work items appear in the autocomplete editor:
{
"header" : "Active Requirement" ,
"type" : "itemLink" ,
"typeProperties" : {
"linkRole" : "assesses" ,
"linkTypes" : "requirement" ,
"queryFactory" : "filterActiveRequirements"
}
}
Define the filter function in JavaScript:
window . filterActiveRequirements = function ( item , colDef , config ) {
// Return OData $filter expression
return "fields/status ne 'closed'" ;
};
Restrictions and Limitations
Limitation Details Single link per cell Use multiItemLink for multiple items per cell No sub-columns with multiItemLink multiItemLink columns cannot have nested sub-columns; use serverRender insteadTemporary ID prefix New items get IDs starting with * until saved Cross-project links Supported using IdProject format (projectId/itemId)
Data Type Conversion
ItemLink columns are stored and transmitted as object references:
Context Format Example Grid display Formatted link REQ-001 (clickable) OData response IdProject object {"id": "REQ-001", "project": "MYPROJECT"}Configuration String binding requirement or requirement.severityTemporary state String with prefix *REQ-001 (unsaved item)
Permission Handling
Scenario Behavior User lacks edit permission Column becomes read-only Linked item is deleted Cell displays error state; link becomes invalid User cannot create items ”Create new item” option hidden from editor Cross-project link denied Link appears as read-only reference
Undo/Redo Support
ItemLink edits are fully supported by the undo/redo system:
Undo/redo individual link changes (Ctrl+Z / Ctrl+Y)
Dependent sub-column values automatically restore on undo
New unsaved items (IDs with *) cannot be restored if deleted before save
See Also
KB Articles Support Tickets Source Code
SheetConstants.ts
RiskSheetContextMenu.ts
PolarionAppConfigManager.java
ExportToExcel.ts
risksheet.json