Skip to main content
diagram

Polarion-to-Risksheet Field Type Matrix

Polarion Field TypeRisksheet Column TypeEditorDisplayNotes
StringtextText inputPlain textDefault mapping for string fields
Text (Rich Text)textText inputPlain text (stripped)Rich text formatting removed; links processed
IntegerintNumeric inputWhole numberAlso usable as rating for risk scales
FloatfloatNumeric inputDecimal numberDouble precision
BooleanbooleanCheckboxChecked/uncheckedAccepts string "true" / "false"
DatedateDate pickeryyyy-MM-ddDate-only value
DatedatetimeDateTime pickerFull timestampDate with time component
DatetimeTime pickerhh:mm:ssTime-only value
Enum (single)enum:idDropdownEnum option IDStatus field shows name instead of ID
List<IEnumOption>multiEnum:idMulti-selectMultiple enum IDsBlank options auto-filtered
CurrencycurrencyNumeric inputDecimal valueBigDecimal precision preserved
DurationTimedurationText inputDuration stringParsed via Polarion DurationTime format
User (assignee)refUser pickerUser IDSingle-user assignment only

Text and String Fields

Risksheet handles both plain String fields and rich Text fields from Polarion. Both map to the text column type.
BehaviorString FieldText (Rich Text) Field
DisplayAs-isStripped to plain text
Link processingNoneLinks auto-processed for rendering
EditingDirect text inputDirect text input (plain text only)
Multi-lineEnabled (multiLine: true)Enabled (multiLine: true)
Word wrapEnabled (wordWrap: true)Enabled (wordWrap: true)
{
  "id": "description",
  "binding": "description",
  "header": "Description",
  "type": "text",
  "width": 300
}
When editing a rich text field through Risksheet, formatting is not preserved. The field is saved as plain text. To preserve rich text formatting, edit the field through the standard Polarion work item form.

Numeric Fields

Risksheet supports four numeric column types with different precision and semantics:
Column TypePolarion StoragePrecisionOData TypeTypical Use
intInteger64-bit signedEdm.Int64Priority, count, sequence
ratingInteger32-bit signedEdm.Int32Risk scales (S/O/D)
floatFloatDouble precisionEdm.DoubleRisk scores, percentages
currencyCurrencyBigDecimalEdm.DecimalCost, financial values
The int and rating types are interchangeable at the storage level. rating is semantically intended for risk assessment parameters and maps to a 32-bit integer in OData, while int maps to 64-bit.
{
  "columns": [
    {
      "id": "sev",
      "binding": "sev",
      "header": "Severity",
      "type": "rating:severity",
      "width": 80
    },
    {
      "id": "priority",
      "binding": "priority",
      "header": "Priority",
      "type": "int",
      "width": 80
    },
    {
      "id": "riskScore",
      "binding": "riskScore",
      "header": "Score",
      "type": "float",
      "width": 100
    },
    {
      "id": "cost",
      "binding": "mitigationCost",
      "header": "Cost ($)",
      "type": "currency",
      "width": 100
    }
  ]
}

Type Conversion Between Numeric Types

Risksheet can convert between numeric types and string representations:
Source ValueTarget TypeResult
String "42"intInteger 42
String "3.14"floatFloat 3.14
Integer 5ratingRating value 5
Float 99.95currencyBigDecimal 99.95
Integer 3enumEnum option with ID "3"

Boolean Fields

Boolean columns render as checkboxes in the grid. The conversion system handles both native Boolean objects and string representations.
Input ValueStored AsDisplay
trueBoolean trueChecked checkbox
falseBoolean falseUnchecked checkbox
"true" (string)Boolean trueChecked checkbox
"false" (string)Boolean falseUnchecked checkbox
nullNo valueUnchecked checkbox
{
  "id": "mitigated",
  "binding": "mitigated",
  "header": "Mitigated",
  "type": "boolean",
  "width": 80
}

Date and Time Fields

Risksheet supports three temporal column types, all backed by Polarion’s Date field type. The column type setting determines which component is displayed.
Column TypeDisplaysFormatBacking Polarion Type
dateDate onlyyyyy-MM-ddDate, Calendar, ISO string
datetimeDate and timeFull timestampDate, Calendar, ISO string
timeTime onlyhh:mm:ssDate, Calendar, ISO string
The conversion system automatically handles:
  • Polarion Date objects
  • Java Date and Calendar objects
  • ISO 8601 format strings (yyyy-MM-dd for dates, hh:mm:ss for times)
{
  "columns": [
    {
      "id": "dueDate",
      "binding": "dueDate",
      "header": "Due Date",
      "type": "date",
      "width": 120
    },
    {
      "id": "lastModified",
      "binding": "updated",
      "header": "Last Modified",
      "type": "datetime",
      "width": 160,
      "readOnly": true
    }
  ]
}
Date and time display formats are affected by the global.culture setting. For example, en uses MM/DD/YYYY display, while de uses DD.MM.YYYY. See Culture and Localization Codes.

Enumeration Fields

Risksheet supports both single-select and multi-select enumerations.

Single Enum

BehaviorDetails
DisplayEnum option ID (exception: status field shows name)
EditorDropdown selector
Backing fieldsNative Polarion enum, String, Integer
Configurationenum:enumerationId references enums section in risksheet.json
{
  "id": "riskCategory",
  "binding": "riskCategory",
  "header": "Risk Category",
  "type": "enum:riskCategory",
  "width": 140
}

Multi-Select Enum

BehaviorDetails
DisplayMultiple selected values
EditorMulti-select checkbox dropdown
Backing fieldsPolarion List<IEnumOption>, comma-separated String
Blank handlingBlank options automatically filtered out
ConfigurationmultiEnum:enumerationId references enums section
{
  "id": "affectedSystems",
  "binding": "affectedSystems",
  "header": "Affected Systems",
  "type": "multiEnum:affectedSystems",
  "width": 200
}
WorkItem enum fields (enumerations of work item types) require specific type syntax matching the XML custom field definition. For example: "type": "multiEnum:@NoIDWorkItems[workpackage]". These have limited support compared to standard enum fields.
See Enum Columns and Multi-Enum Columns for detailed configuration.

Duration Fields

Duration columns handle Polarion DurationTime fields and can also store durations in Integer or Float fields.
PropertyDetails
DisplayDuration string (e.g., "1d 4h", "2h 30m")
ParsingUses Polarion’s DurationTime.fromString()
Backing fieldsDurationTime, Integer, Float
OData typeEdm.String (string-encoded)
{
  "id": "effortEstimate",
  "binding": "effortEstimate",
  "header": "Effort Estimate",
  "type": "duration",
  "width": 120
}

User Reference Fields

User reference columns handle Polarion user assignment (assignee) fields with special behavior:
ModeBehavior
Read-onlyDisplays user ID as string
EditableClears all existing assignees, adds specified user
AssignmentSingle-user assignment only
{
  "id": "assignee",
  "binding": "assignee",
  "header": "Assignee",
  "type": "ref:user",
  "width": 120
}
Editable user columns support single-user assignment only. Setting a new user clears all existing assignees. For multi-user assignment, use the standard Polarion work item form.

Read-Only System Fields

The following Polarion fields are always read-only in Risksheet. Save attempts are silently ignored:
FieldDescriptionRead-Only Reason
idWork item IDIdentity field, immutable
statusWorkflow statusControlled by workflow transitions
typeWork item typeImmutable after creation
projectProject assignmentImmutable
outlineNumberDocument outline numberManaged by Polarion
authorItem creatorSet at creation time
resolutionResolution valueManaged by workflow
createdCreation timestampSet at creation time
updatedLast modificationAuto-updated by Polarion

Type Override

You can override the auto-detected type by explicitly setting the type property on a column. This allows displaying a Polarion field differently from its native storage type.
Polarion FieldNative TypeOverrideResult
Stringtexttype: "date"Parses string as date
Integerinttype: "enum:scale"Displays as enum dropdown
Stringtexttype: "boolean"Parses "true" / "false"
Floatfloattype: "int"Truncates to integer
{
  "id": "customDate",
  "binding": "customStringField",
  "header": "Target Date",
  "type": "date"
}
Type override behavior depends on the actual field values being parseable in the target format. A string field overridden to date will fail to parse non-date values gracefully.

Autocomplete and Suggestions

Certain field types support autocomplete suggestions as you type. The suggestion system provides real-time matching from the Polarion database.
FeatureDescription
Fuzzy searchMatches values with minor typos or spelling variations
Wildcard searchUse * for partial matching (e.g., *test*)
Keyword filteringAll keywords in the query must match
Autocomplete behavior is controlled by project-level configuration properties. The suggestion API endpoint supports fuzzy search, wildcard search, and keyword-based filtering. See Suggestion and Autocomplete API for details.

Complete Example

A risksheet.json demonstrating all major supported field types:
{
  "columns": [
    {
      "id": "failureMode",
      "binding": "title",
      "header": "Failure Mode",
      "type": "text",
      "width": 220,
      "level": 1
    },
    {
      "id": "riskCategory",
      "binding": "riskCategory",
      "header": "Category",
      "type": "enum:riskCategory",
      "width": 130,
      "level": 2
    },
    {
      "id": "sev",
      "binding": "sev",
      "header": "Severity",
      "type": "rating:severity",
      "width": 80,
      "level": 2
    },
    {
      "id": "occ",
      "binding": "occ",
      "header": "Occurrence",
      "type": "rating:occurrence",
      "width": 80,
      "level": 2
    },
    {
      "id": "rpn",
      "binding": "rpn",
      "header": "RPN",
      "type": "int",
      "formula": "commonRpn",
      "width": 70,
      "level": 2
    },
    {
      "id": "riskScore",
      "binding": "riskScore",
      "header": "Risk Score",
      "type": "float",
      "width": 100,
      "level": 2
    },
    {
      "id": "mitigated",
      "binding": "mitigated",
      "header": "Mitigated",
      "type": "boolean",
      "width": 80,
      "level": 2
    },
    {
      "id": "dueDate",
      "binding": "dueDate",
      "header": "Due Date",
      "type": "date",
      "width": 120,
      "level": 2
    },
    {
      "id": "mitigationCost",
      "binding": "mitigationCost",
      "header": "Cost ($)",
      "type": "currency",
      "width": 100,
      "level": 2
    },
    {
      "id": "effort",
      "binding": "effortEstimate",
      "header": "Effort",
      "type": "duration",
      "width": 100,
      "level": 2
    },
    {
      "id": "affectedSystems",
      "binding": "affectedSystems",
      "header": "Affected Systems",
      "type": "multiEnum:affectedSystems",
      "width": 180,
      "level": 2
    }
  ],
  "formulas": {
    "commonRpn": "function(info){ var value = info.item['occ']*info.item['sev']; return value?value:null;}"
  },
  "ratings": {
    "severity": [
      { "id": "1", "name": "Negligible" },
      { "id": "2", "name": "Minor" },
      { "id": "3", "name": "Moderate" },
      { "id": "4", "name": "Significant" },
      { "id": "5", "name": "Catastrophic" }
    ],
    "occurrence": [
      { "id": "1", "name": "Remote" },
      { "id": "2", "name": "Low" },
      { "id": "3", "name": "Moderate" },
      { "id": "4", "name": "High" },
      { "id": "5", "name": "Very High" }
    ]
  },
  "enums": {
    "riskCategory": [
      { "id": "safety", "name": "Safety Risk" },
      { "id": "security", "name": "Security Risk" },
      { "id": "performance", "name": "Performance Risk" }
    ],
    "affectedSystems": [
      { "id": "braking", "name": "Braking System" },
      { "id": "steering", "name": "Steering System" },
      { "id": "powertrain", "name": "Powertrain" }
    ]
  }
}
KB ArticlesSource Code
  • risksheet.json
  • ColumnTypeManager.java
  • PolarionAppConfigManager.java
  • GetSetUtil.java
  • AppConfigParser.ts