Skip to main content
This reference covers every supported data type, its storage format, display behavior, and OData mapping for API access.
risksheet.json column Polarion Field OData API
type: “text”---->String / Text—>Edm.String
type: “int”---->Integer—>Edm.Int64
type: “float”---->Float—>Edm.Double
type: “boolean”---->Boolean—>Edm.Boolean
type: “date”---->Date / DateOnly—>Edm.Date
type: “datetime”---->Date—>Edm.DateTimeOff.
type: “time”---->Date / TimeOnly—>Edm.DateTimeOff.
type: “currency”---->Currency / BigDec—>Edm.Decimal
type: “rating”---->Integer—>Edm.Int32
type: “duration”---->DurationTime—>Edm.String
type: “enum:id”---->Enum Option—>Edm.String
type: “multiEnum”---->List<EnumOption>—>Edm.String

Data Type Summary

Type IdentifierOData EDM TypeStorage PrecisionEditableNotes
textEdm.StringUnlimited stringYesRich text converted to plain text for display
intEdm.Int6464-bit integerYesInterchangeable with rating
floatEdm.DoubleDouble precisionYesStandard floating-point
booleanEdm.BooleanTrue/FalseYesRenders as checkbox
dateEdm.DateDate onlyYesFormat: yyyy-MM-dd
datetimeEdm.DateTimeOffsetDate and timeYesFull timestamp with timezone
timeEdm.DateTimeOffsetTime onlyYesFormat: hh:mm:ss
currencyEdm.DecimalBigDecimalYesFull decimal precision for financial data
ratingEdm.Int3232-bit integerYesInterchangeable with int; used for risk scales
durationEdm.StringString-encodedYesPolarion DurationTime format
enumEdm.StringEnum option IDYesSingle selection from enumeration
multiEnumEdm.StringColon-separated IDsYesMultiple selection from enumeration
When you omit the type property on a column, Risksheet infers the type from the Polarion field’s native type. Explicitly setting type allows you to override the display behavior — for example, displaying a string field as a date column or an integer field as an enum.

Text Type

The text type displays string and rich text content. Rich text fields from Polarion are automatically converted to plain text for grid display. Links embedded in content are processed for proper rendering.
PropertyValue
Type identifiertext
OData typeEdm.String
Default forPolarion String and Text fields
Fallback typeAny unrecognized column type defaults to text
Rich text handlingStripped to plain text; links auto-processed
Multi-lineEnabled by default (multiLine: true)
Word wrapEnabled by default (wordWrap: true)
{
  "id": "description",
  "binding": "description",
  "header": "Description",
  "type": "text",
  "width": 300
}
Any column type not explicitly recognized by Risksheet defaults to text (Edm.String). This provides graceful degradation for custom or future column types and means that mistyping a type identifier will not cause errors — the column will simply render as a plain text field.

Integer Type

The int type stores whole numbers as 64-bit integers. It is functionally interchangeable with the rating type at the storage level, though rating is semantically intended for risk assessment scales and maps to a 32-bit integer in OData.
PropertyValue
Type identifierint
OData typeEdm.Int64
Precision64-bit signed integer
Interchangeable withrating
String parsingConverts string representations to integers automatically
Backing fieldsPolarion Integer, String (auto-parsed), Float (truncated)
{
  "id": "priority",
  "binding": "priority",
  "header": "Priority",
  "type": "int",
  "width": 80
}
Use int for general-purpose numeric fields like priority, count, or sequence number. Use rating when the column represents a risk assessment parameter that references a named rating scale in the ratings configuration section.

Float Type

The float type stores decimal numbers using double-precision floating-point representation. It handles conversion between numeric types and parses string representations automatically.
PropertyValue
Type identifierfloat
OData typeEdm.Double
PrecisionIEEE 754 double precision
String parsingConverts string representations to floating-point
Backing fieldsPolarion Float, Integer, String (auto-parsed)
{
  "id": "riskScore",
  "binding": "riskScore",
  "header": "Risk Score",
  "type": "float",
  "width": 100
}

Boolean Type

The boolean type handles true/false values with automatic conversion between string representations ("true" / "false") and native Boolean objects. In the grid, boolean columns render as checkboxes.
PropertyValue
Type identifierboolean
OData typeEdm.Boolean
DisplayCheckbox
String conversion"true" and "false" strings accepted
Null handlingNull values display as unchecked
{
  "id": "mitigated",
  "binding": "mitigated",
  "header": "Mitigated",
  "type": "boolean",
  "width": 80
}

Date Type

The date type stores date-only values without a time component. Values are formatted in ISO 8601 format (yyyy-MM-dd). The system automatically converts between Polarion Date types, Java Date/Calendar objects, and ISO string representations.
PropertyValue
Type identifierdate
OData typeEdm.Date
Formatyyyy-MM-dd
Time componentNone (date only)
ConversionHandles Polarion Date, Java Date/Calendar, and ISO strings
Culture sensitivityDisplay format affected by global.culture setting
{
  "id": "dueDate",
  "binding": "dueDate",
  "header": "Due Date",
  "type": "date",
  "width": 120
}

DateTime Type

The datetime type stores a full timestamp including both date and time components with timezone offset. This is the type to use when you need to capture both the date and the time of day.
PropertyValue
Type identifierdatetime
OData typeEdm.DateTimeOffset
FormatFull date-time with timezone offset
ConversionHandles Polarion Date, Java Date/Calendar, and ISO strings
Culture sensitivityDisplay format affected by global.culture setting
{
  "id": "lastModified",
  "binding": "updated",
  "header": "Last Modified",
  "type": "datetime",
  "width": 160,
  "readOnly": true
}

Time Type

The time type stores time-only values without a date component. Values display in hh:mm:ss format. Note that despite storing only a time component, this type maps to Edm.DateTimeOffset in OData.
PropertyValue
Type identifiertime
OData typeEdm.DateTimeOffset
Formathh:mm:ss
Date componentNone (time only)
ConversionHandles Polarion Date, Java Date/Calendar, and ISO strings
{
  "id": "analysisTime",
  "binding": "analysisTime",
  "header": "Analysis Time",
  "type": "time",
  "width": 100
}
All three temporal types (date, datetime, time) map to OData date-related types. The time type maps to Edm.DateTimeOffset despite storing only a time component. External integrations consuming the OData feed should account for this mapping and parse the value accordingly.

Currency Type

The currency type uses BigDecimal precision for financial data, wrapping values in Polarion’s Currency type for accurate decimal calculations without floating-point rounding errors.
PropertyValue
Type identifiercurrency
OData typeEdm.Decimal
PrecisionBigDecimal (arbitrary precision)
Polarion storageCurrency type wrapper
ConversionHandles numeric values and string representations
Use caseCost tracking, financial risk quantification
{
  "id": "mitigationCost",
  "binding": "mitigationCost",
  "header": "Mitigation Cost ($)",
  "type": "currency",
  "width": 120
}
Use currency when exact decimal precision matters (financial data, cost tracking). Use float for general-purpose decimal values where minor floating-point rounding is acceptable (risk scores, percentages).

Rating Type

The rating type is semantically designed for risk assessment scales such as severity, occurrence, and detection ratings. It is functionally similar to int but maps to a 32-bit integer in OData and is commonly used with the colon syntax to reference a named rating scale.
PropertyValue
Type identifierrating or rating:scaleId
OData typeEdm.Int32
Precision32-bit signed integer
Interchangeable withint
Typical useRisk parameter scales (1-10, 1-5) per ISO 26262, ISO 14971
Colon syntaxReferences a named scale in the ratings section
{
  "id": "sev",
  "binding": "sev",
  "header": "Severity (S)",
  "type": "rating:severity",
  "width": 80
}
When a rating column references a named scale, Risksheet loads the scale definitions from the ratings section of your risksheet.json:
{
  "ratings": {
    "severity": [
      { "id": "1", "name": "Negligible", "description": "No injury" },
      { "id": "2", "name": "Minor", "description": "Light injury" },
      { "id": "3", "name": "Moderate", "description": "Moderate injury" },
      { "id": "4", "name": "Significant", "description": "Severe injury" },
      { "id": "5", "name": "Catastrophic", "description": "Life-threatening" }
    ]
  }
}
See Enum Columns for detailed enumeration and rating configuration patterns.

Duration Type

The duration type handles time span values. Duration values can be backed by Polarion’s DurationTime type, or stored as numeric values (integers or floats) representing duration units. Despite representing time-based data, duration values are stored and transmitted as strings in OData.
PropertyValue
Type identifierduration
OData typeEdm.String
StorageString-encoded Polarion DurationTime
Backing fieldsDurationTime, Integer, or Float fields
ParsingUses Polarion’s DurationTime format
Example values"1d 4h", "2h 30m"
{
  "id": "effortEstimate",
  "binding": "effortEstimate",
  "header": "Effort Estimate",
  "type": "duration",
  "width": 120
}
Duration is stored as Edm.String in OData despite being time-based. External integrations should parse the duration string format rather than expecting a native time type. If you need numeric duration values for calculations, consider using int or float types with a convention for the duration unit (e.g., hours).

Enum Type

The enum type displays single-selection enumeration fields. The system uses enum option IDs for most fields, with the exception of the status field which displays the human-readable enum name. Enum columns support Polarion native enum fields, string fields, and integer fields as backing storage.
PropertyValue
Type identifierenum or enum:enumerationId
OData typeEdm.String
SelectionSingle value
DisplayEnum option ID (name for status field only)
Colon syntaxenum:enumerationId references a named enum set
Backing fieldsNative enum, string, or integer Polarion fields
{
  "id": "riskCategory",
  "binding": "riskCategory",
  "header": "Risk Category",
  "type": "enum:riskCategory",
  "width": 140
}
The enum set is defined in the enums section of risksheet.json:
{
  "enums": {
    "riskCategory": [
      { "id": "safety", "name": "Safety Risk" },
      { "id": "security", "name": "Security Risk" },
      { "id": "performance", "name": "Performance Risk" },
      { "id": "compliance", "name": "Compliance Risk" }
    ]
  }
}
For complete enum configuration including dependent enums and icon display, see Enum Columns.

Multi-Enum Type

The multiEnum type allows selecting multiple enumeration values from a dropdown. It works with native Polarion multi-enum List fields as well as string fields containing comma-separated enum IDs. Blank options are automatically filtered out.
PropertyValue
Type identifiermultiEnum or multiEnum:enumerationId
OData typeEdm.String
SelectionMultiple values
Colon syntaxmultiEnum:enumerationId references a named enum set
Backing fieldsPolarion List of enum options or comma-separated strings
Blank handlingBlank options automatically filtered out
{
  "id": "affectedSystems",
  "binding": "affectedSystems",
  "header": "Affected Systems",
  "type": "multiEnum:affectedSystems",
  "width": 200
}
WorkItem enum fields require specific type syntax matching the XML custom field definition. For example, type: "multiEnum:@NoIDWorkItems[workpackage]" references a WorkItem enum with a specific configuration. Upstream and downstream WorkItem enum fields have limited support compared to row item properties.
For multi-select enum configuration details, see Multi-Enum Columns.

Type Prefix Extraction and Colon Syntax

Risksheet column types support a colon-separated syntax where the portion before the first colon identifies the base type, and the portion after carries additional configuration parameters. This is how columns reference their enumeration, rating, or reference definitions.
PatternBase TypeParameterPurpose
enum:severityenumseverityReferences the severity enum definition
rating:occurrenceratingoccurrenceReferences the occurrence rating scale
multiEnum:affectedSystemsmultiEnumaffectedSystemsReferences the affectedSystems enum set
ref:requirementrefrequirementReferences a linked item type
multiEnum:@NoIDWorkItems[type]multiEnum@NoIDWorkItems[type]References a WorkItem enum field
The type parser extracts the prefix before the first colon to determine the base data type, then passes the remainder as configuration context. This means enum:severity and enum:riskCategory are both enum base type columns but reference different enumeration definitions.
{
  "columns": [
    {
      "id": "sev",
      "binding": "sev",
      "header": "Severity (S)",
      "type": "rating:severity"
    },
    {
      "id": "occ",
      "binding": "occ",
      "header": "Occurrence (O)",
      "type": "rating:occurrence"
    },
    {
      "id": "det",
      "binding": "det",
      "header": "Detection (D)",
      "type": "rating:detection"
    }
  ],
  "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" }
    ],
    "detection": [
      { "id": "1", "name": "Almost Certain" },
      { "id": "2", "name": "High" },
      { "id": "3", "name": "Moderate" },
      { "id": "4", "name": "Low" },
      { "id": "5", "name": "Undetectable" }
    ]
  }
}

User Reference Type

User reference columns have special handling for Polarion user assignment fields. Read-only user columns display the user ID as a string. Editable user columns manage the work item’s assignees collection, supporting single-user assignment.
PropertyValue
Type identifierref (with user field context)
Read-only displayUser ID as string
Editable behaviorClears all assignees, adds specified user
Assignment limitSingle-user assignment only
Editable user reference columns clear all existing assignees and add the specified user. Only single-user assignment is supported through the Risksheet grid interface. If you need multi-user assignment, manage assignees through the Polarion native work item form.

Read-Only System Fields

Certain Polarion system fields are always read-only regardless of column configuration. Risksheet silently ignores save attempts to these protected fields.
System FieldRead-Only Reason
idWork item identity — cannot be changed
statusControlled by workflow transitions
typeWork item type — immutable after creation
projectProject assignment — immutable
outlineNumberDocument structure — managed by Polarion
authorAuto-set by configuration manager
resolutionAuto-set by configuration manager
createdTimestamp — auto-set at creation
updatedTimestamp — auto-set on modification
Columns also become automatically read-only when:
  • The formula property is set (calculated columns)
  • The serverRender property is set (server-rendered columns)
  • The column references a cross-project item (reference columns)
  • User permissions deny modification of the bound field
See System Fields for the complete list of system-level bindings.

OData Type Mapping Reference

The complete mapping between Risksheet column type identifiers and OData EDM primitive types for API access:
Risksheet TypeOData EDM TypeNotes
textEdm.StringDefault for unrecognized types
stringEdm.StringAlias for text
multiEnumEdm.StringColon-separated IDs in string
ratingEdm.Int3232-bit integer for risk scales
intEdm.Int6464-bit integer for general numbers
floatEdm.DoubleDouble precision floating-point
booleanEdm.BooleanTrue/false
currencyEdm.DecimalBigDecimal for financial precision
dateEdm.DateDate only, no time component
datetimeEdm.DateTimeOffsetFull timestamp with timezone
timeEdm.DateTimeOffsetTime only, but mapped as DateTimeOffset
durationEdm.StringString-encoded despite being time-based
See OData API Endpoints for information on consuming Risksheet data through the OData protocol.

Complete Example

A complete risksheet.json column configuration demonstrating multiple data types in a realistic FMEA scenario:
{
  "columns": [
    {
      "id": "failureMode",
      "binding": "title",
      "header": "Failure Mode",
      "type": "text",
      "width": 250,
      "level": 1
    },
    {
      "id": "riskCategory",
      "binding": "riskCategory",
      "header": "Category",
      "type": "enum:riskCategory",
      "width": 130,
      "level": 2
    },
    {
      "id": "sev",
      "binding": "sev",
      "header": "Severity (S)",
      "type": "rating:severity",
      "width": 80,
      "level": 2
    },
    {
      "id": "occ",
      "binding": "occ",
      "header": "Occurrence (O)",
      "type": "rating:occurrence",
      "width": 80,
      "level": 2
    },
    {
      "id": "det",
      "binding": "det",
      "header": "Detection (D)",
      "type": "rating:detection",
      "width": 80,
      "level": 2
    },
    {
      "id": "rpn",
      "binding": "rpn",
      "header": "RPN",
      "type": "int",
      "width": 70,
      "formula": "commonRpn",
      "readOnly": true,
      "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": "affectedSystems",
      "binding": "affectedSystems",
      "header": "Affected Systems",
      "type": "multiEnum:affectedSystems",
      "width": 180,
      "level": 2
    },
    {
      "id": "effortEstimate",
      "binding": "effortEstimate",
      "header": "Effort",
      "type": "duration",
      "width": 100,
      "level": 2
    }
  ],
  "formulas": {
    "commonRpn": "function(info){ var value = info.item['occ']*info.item['det']*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" }
    ],
    "detection": [
      { "id": "1", "name": "Almost Certain" },
      { "id": "2", "name": "High" },
      { "id": "3", "name": "Moderate" },
      { "id": "4", "name": "Low" },
      { "id": "5", "name": "Undetectable" }
    ]
  },
  "enums": {
    "riskCategory": [
      { "id": "safety", "name": "Safety Risk" },
      { "id": "security", "name": "Security Risk" },
      { "id": "performance", "name": "Performance Risk" },
      { "id": "compliance", "name": "Compliance Risk" }
    ],
    "affectedSystems": [
      { "id": "braking", "name": "Braking System" },
      { "id": "steering", "name": "Steering System" },
      { "id": "powertrain", "name": "Powertrain" },
      { "id": "electrical", "name": "Electrical System" }
    ]
  },
  "cellDecorators": {
    "rpn": "function(info){ var val = info.value; $(info.cell).toggleClass('boldCol', true); $(info.cell).toggleClass('rpn1', val>0 && val<=150); $(info.cell).toggleClass('rpn2', val>150 && val<=350); $(info.cell).toggleClass('rpn3', val>350);}"
  },
  "styles": {
    ".rpn1": { "background-color": "#eaf5e9 !important", "color": "#1d5f20 !important" },
    ".rpn2": { "background-color": "#fff3d2 !important", "color": "#735602 !important" },
    ".rpn3": { "background-color": "#f8eae7 !important", "color": "#ab1c00 !important" },
    ".boldCol": { "font-weight": "600" }
  }
}
KB ArticlesSupport TicketsSource Code
  • PolarionAppConfigManager.java
  • risksheet.json
  • ColumnTypeManager.java
  • AppConfigHelper.ts
  • GetSetUtil.java