Skip to main content
diagram

Column Definition Properties

Core Properties

PropertyTypeDefaultDescription
bindingstringRequiredPolarion field ID used to store the task link reference. This field stores the task work item identifier.
typestringAuto-detectedMust be taskLink for task link columns. Auto-detected from the Polarion field type if not specified.
headerstringRequiredDisplay text shown in the column header.
idstringAuto-generatedUnique identifier for the column. Auto-generated from header or binding if not specified.
widthnumberSee applicationColumn width in pixels.
isTaskLinkbooleanfalseMarks the column as a task link column. Set to true to enable task-specific behavior. This flag is equivalent to setting type to taskLink.
levelnumberNot set for task columnsHierarchical level at which this column appears. Task-level columns typically do not have a level assigned.
readOnlybooleanfalseControls whether the column is editable. Automatically set to true for formula columns and when permissions deny modification.
filterablebooleantrueControls whether users can filter the grid by values in this column.
canCreatebooleantrueControls whether users can create new task items directly from the cell. When true, the autocomplete dropdown includes an option to create a new task.
Every task link column has an associated link field identified by appending _link to the binding name. This _link suffix field stores the hyperlink URL to the linked work item:
FieldPurposeExample
taskIdStores the task work item identifierMIT-015
taskId_linkStores the hyperlink reference to the taskPolarion work item URL
When a new task is created, Risksheet automatically sets both the taskColumn value and the taskColumn_link field to maintain synchronized references.

Task Data Type Configuration

Task link columns depend on the dataTypes.task configuration in risksheet.json. This section defines the work item type, link role, and behavior for all task-related operations.
PropertyTypeDefaultDescription
dataTypes.task.typestringNonePolarion work item type for tasks (e.g., action, mitigationTask). Evaluated through expression evaluation for dynamic values.
dataTypes.task.rolestringNoneLink role used when creating relationships between risk items and tasks. Evaluated through expression evaluation.
dataTypes.task.namestring"Task"Display name for the task type shown in context menus and UI labels.
dataTypes.task.showInMenubooleantrueControls whether task creation options appear in the context menu and toolbar.
dataTypes.task.zoomColumnstringNoneColumn binding that receives focus after a new task is created. Determines which nested column the cursor moves to for immediate editing.
dataTypes.task.customQuerystringNoneAdditional Polarion query to filter which tasks are retrieved. Applied when nextedy.risksheet.applyQueryOnTasks is true.
{
  "dataTypes": {
    "task": {
      "type": "mitigationAction",
      "role": "mitigates",
      "name": "Mitigation Action",
      "showInMenu": true,
      "zoomColumn": "taskTitle"
    }
  }
}

Single vs. Multi-Project Configuration

PropertyTypeDescription
projectstringSingle project ID for task items. Use when all tasks belong to one project.
projectsarrayArray of project IDs for multi-project task configurations.
Having a Task project column visible in the Risksheet configuration can cause duplication errors when copy-pasting existing tasks between rows (Ctrl+C / Ctrl+V). The workaround is to remove the Task project column from the configuration. For single-project task configurations, use project (singular) instead of projects (plural) in the dataTypes section.

Task Column Identification

The grid identifies which column holds the task identifier through the taskColumn property in grid settings:
PropertyTypeDefaultDescription
taskColumnstringNoneBinding name of the column that stores the task identifier. Required for task creation, removal, and autocomplete operations.
This property is essential for all task management operations. Without it, add task, remove task, and task autocomplete functions will not work.

Task Creation Behavior

When you create a new task (via context menu or toolbar), Risksheet follows one of two paths depending on whether the risk item already has tasks:

First Task on a Risk Item

  1. A unique task ID is generated automatically using the ID generator.
  2. The task ID is stored in the taskColumn field.
  3. The corresponding _link field is populated with the work item reference.
  4. The cursor focuses on the zoomColumn (if configured) for immediate editing.
  5. The operation is recorded for undo support.

Additional Tasks on a Risk Item

  1. The current row record is cloned.
  2. Task-level fields are cleaned (task ID, link fields, readonly flags, and all columns marked as task attributes).
  3. Multi-enum columns are initialized to empty arrays to prevent undefined values.
  4. A unique task ID is generated for the new task.
  5. The new row is inserted immediately after all existing sibling tasks (rows sharing the same systemItemId).
  6. The operation is recorded for undo support.
diagram

Task Removal Behavior

Task removal operates with context-aware logic based on whether the risk item has single or multiple tasks:

Single Task Removal

When the risk item has only one task, removing it clears all task-related fields from the work item record rather than deleting the entire row. The risk item row is preserved. Fields cleared include:
  • Task column value and its _link field
  • All columns marked as task attributes (isTaskAttrib)
  • Task-level link references

Multi-Task Removal

When the risk item has multiple tasks (detected by checking if adjacent rows share the same systemItemId), removing a task deletes the entire row from the grid. The row ID is marked with a ;* suffix before deletion for processing during save.

Permission Checks

Task removal validates permissions before executing:
Permission CheckConditionEffect
Grid readonlyreadonly is trueTask removal blocked
Downstream readonlydownstreamReadonly is true AND systemReadOnly flag is setTask removal blocked
Task readonlysystemTaskReadOnly flag is set on the rowTask removal blocked
All task removal operations are fully undoable. Task link columns provide autocomplete functionality for linking existing tasks:
FeatureBehavior
Uniqueness validationPrevents duplicate task assignments to the same risk item. Displays error: “This item is already linked to selected row.”
New task modeWhen the task ID is empty or starts with * (unsaved), the nested title column provides task autocomplete for finding existing tasks.
Existing task modeWhen a task ID is assigned, nested columns switch to regular text editing mode.
Query factory supportCustom queryFactory functions can filter autocomplete suggestions. Register factories via window.risksheet.queryFactories.

Nested Task Columns

Task link columns typically have nested sub-columns that display properties of the linked task. Nested columns are identified as task attributes:
PropertyTypeDescription
isTaskAttribbooleanMarks a column as a task attribute. Task attribute columns display data from the linked task work item rather than the parent risk item.
Task attribute columns are automatically cleared when creating new tasks and are subject to task-level readonly permissions (systemTaskReadOnly and systemTaskReadOnlyFields).

Readonly Protection

Task link columns respect multiple layers of readonly protection:
PropertyTypeDefaultDescription
systemReadOnlybooleanFrom Polarion permissionsMarks entire items as non-editable based on permissions or item state.
systemReadOnlyFieldsarrayFrom Polarion permissionsLists specific field names that are non-editable for an item.
systemTaskReadOnlybooleanFrom Polarion permissionsMarks linked task items as non-editable. Prevents task editing and removal regardless of other settings.
systemTaskReadOnlyFieldsarrayFrom Polarion permissionsLists specific fields that are non-editable in linked task items.
downstreamReadonlybooleanfalseGlobal setting that makes all downstream linked items read-only to prevent edits to items from other documents.

Context Menu Actions

Right-clicking a task link cell provides task-specific menu options:
Menu ActionAvailabilityDescription
Open Task ItemWhen cell contains a valid task linkOpens the task work item in Polarion’s item editor. Menu label uses dataTypes.task.name if configured.
Add TaskGrid is not readonly; downstreamReadonly allows creationCreates a new task for the current risk item.
Remove TaskGrid is not readonly; task-level permissions allow removalRemoves the task (clears fields or deletes row depending on task count).

Export Behavior

Excel Export

Task link columns export as plain text, with HTML link markup stripped to produce clean text values. Multi-task rows are exported as separate rows in the Excel output.

PDF Export

Task link columns render in PDF using the renderDataCell function, which resolves the link label property for display. Use exportSubTable or exportDownstreamTable to export task data as separate tables in the PDF output.

Complete Example

{
  "columns": [
    {
      "binding": "mitigationTaskId",
      "header": "Mitigation",
      "type": "taskLink",
      "width": 120,
      "canCreate": true
    },
    {
      "binding": "mitigationTitle",
      "header": "Task Title",
      "isTaskAttrib": true,
      "width": 250
    },
    {
      "binding": "mitigationStatus",
      "header": "Status",
      "isTaskAttrib": true,
      "type": "workflow",
      "width": 100
    },
    {
      "binding": "mitigationAssignee",
      "header": "Assignee",
      "isTaskAttrib": true,
      "width": 120
    }
  ],
  "dataTypes": {
    "task": {
      "type": "mitigationAction",
      "role": "mitigates",
      "name": "Mitigation Action",
      "showInMenu": true,
      "zoomColumn": "mitigationTitle"
    }
  }
}
This configuration creates a task link column for mitigation actions with three nested columns showing the task title, workflow status, and assignee. New tasks are created as mitigationAction work items linked via the mitigates role.
KB ArticlesSupport TicketsSource Code
  • SheetConstants.ts
  • RemoveTaskCommand.ts
  • RiskSheetContextMenu.ts
  • CellEditorFormatter.ts
  • RisksheetViewServlet.java