> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Field Types

> Nextedy RISKSHEET supports a comprehensive set of Polarion field types through its bidirectional type conversion system.

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/yWl5nA2D0IzEnZC1/risksheet/diagrams/reference/fields/supported-field-types/diagram-1.svg?fit=max&auto=format&n=yWl5nA2D0IzEnZC1&q=85&s=79c5cee490724a013a24dca1c88a152e" alt="diagram" style={{ maxWidth: "700px", width: "100%" }} width="700" height="200" data-path="risksheet/diagrams/reference/fields/supported-field-types/diagram-1.svg" />
</Frame>

## Polarion-to-Risksheet Field Type Matrix

| Polarion Field Type | Risksheet Column Type | Editor          | Display               | Notes                                         |
| ------------------- | --------------------- | --------------- | --------------------- | --------------------------------------------- |
| `String`            | `text`                | Text input      | Plain text            | Default mapping for string fields             |
| `Text` (Rich Text)  | `text`                | Text input      | Plain text (stripped) | Rich text formatting removed; links processed |
| `Integer`           | `int`                 | Numeric input   | Whole number          | Also usable as `rating` for risk scales       |
| `Float`             | `float`               | Numeric input   | Decimal number        | Double precision                              |
| `Boolean`           | `boolean`             | Checkbox        | Checked/unchecked     | Accepts string `"true"` / `"false"`           |
| `Date`              | `date`                | Date picker     | `yyyy-MM-dd`          | Date-only value                               |
| `Date`              | `datetime`            | DateTime picker | Full timestamp        | Date with time component                      |
| `Date`              | `time`                | Time picker     | `hh:mm:ss`            | Time-only value                               |
| `Enum` (single)     | `enum:<enumId>`       | Dropdown        | Enum option ID        | Status field shows name instead of ID         |
| `List<IEnumOption>` | `multiEnum:<enumId>`  | Multi-select    | Multiple enum IDs     | Blank options auto-filtered                   |
| `Currency`          | `currency`            | Numeric input   | Decimal value         | BigDecimal precision preserved                |
| `DurationTime`      | `duration`            | Text input      | Duration string       | Parsed via Polarion DurationTime format       |
| `User` (assignee)   | `ref:user`            | User picker     | User ID               | Single-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.

| Behavior        | String Field                              | Text (Rich Text) Field                    |
| --------------- | ----------------------------------------- | ----------------------------------------- |
| Display         | As-is                                     | Stripped to plain text                    |
| Link processing | None                                      | Links auto-processed for rendering        |
| Editing         | Direct text input                         | Direct text input (plain text only)       |
| Text wrapping   | Controlled via the `styles` section (CSS) | Controlled via the `styles` section (CSS) |

```yaml theme={null}
columns:
  - id: description
    bindings: description
    header: Description
    type: text
    width: 300
```

<Note title="Rich Text Limitation">
  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.
</Note>

## Numeric Fields

Risksheet supports four numeric column types with different precision and semantics:

| Column Type | Polarion Storage | Precision        | Typical Use                                   |
| ----------- | ---------------- | ---------------- | --------------------------------------------- |
| `int`       | Integer          | 64-bit signed    | Priority, count, sequence                     |
| `rating`    | Integer          | 32-bit signed    | Risk scales (severity, occurrence, detection) |
| `float`     | Float            | Double precision | Risk scores, percentages                      |
| `currency`  | Currency         | BigDecimal       | Cost, financial values                        |

The `int` and `rating` types are interchangeable at the storage level. `rating` is semantically intended for risk assessment parameters (severity, occurrence, detection) and is associated with a Polarion enumeration that defines its allowed values; `int` is a plain integer.

```yaml theme={null}
columns:
  - id: sev
    bindings: sev
    header: Severity
    type: rating:severity
    width: 80
  - id: priority
    bindings: priority
    header: Priority
    type: int
    width: 80
  - id: riskScore
    bindings: riskScore
    header: Score
    type: float
    width: 100
  - id: cost
    bindings: mitigationCost
    header: "Cost ($)"
    type: currency
    width: 100
```

### Type Conversion Between Numeric Types

Risksheet can convert between numeric types and string representations:

| Source Value    | Target Type | Result                    |
| --------------- | ----------- | ------------------------- |
| String `"42"`   | `int`       | Integer `42`              |
| String `"3.14"` | `float`     | Float `3.14`              |
| Integer `5`     | `rating`    | Rating value `5`          |
| Float `99.95`   | `currency`  | BigDecimal `99.95`        |
| Integer `3`     | `enum`      | Enum 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 Value        | Stored As       | Display            |
| ------------------ | --------------- | ------------------ |
| `true`             | Boolean `true`  | Checked checkbox   |
| `false`            | Boolean `false` | Unchecked checkbox |
| `"true"` (string)  | Boolean `true`  | Checked checkbox   |
| `"false"` (string) | Boolean `false` | Unchecked checkbox |
| `null`             | No value        | Unchecked checkbox |

```yaml theme={null}
columns:
  - id: mitigated
    bindings: 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 Type | Displays      | Format         | Backing Polarion Type      |
| ----------- | ------------- | -------------- | -------------------------- |
| `date`      | Date only     | `yyyy-MM-dd`   | Date, Calendar, ISO string |
| `datetime`  | Date and time | Full timestamp | Date, Calendar, ISO string |
| `time`      | Time only     | `hh:mm:ss`     | Date, 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)

```yaml theme={null}
columns:
  - id: dueDate
    bindings: dueDate
    header: Due Date
    type: date
    width: 120
  - id: lastModified
    bindings: updated
    header: Last Modified
    type: datetime
    width: 160
    readOnly: true
```

<Tip title="Culture-Sensitive Display">
  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](/risksheet/reference/culture-codes).
</Tip>

## Enumeration Fields

Risksheet supports both single-select and multi-select enumerations. Enumeration values are defined in Polarion under **Administration > Enumerations**, and the column references the enumeration by its ID through its `type` property. The server loads the enum values automatically — there is no top-level `enums` section in the sheet configuration.

### Single Enum

| Behavior       | Details                                                                                                               |
| -------------- | --------------------------------------------------------------------------------------------------------------------- |
| Display        | Enum option **ID** (exception: `status` field shows **name**)                                                         |
| Editor         | Dropdown selector                                                                                                     |
| Backing fields | Native Polarion enum, String, Integer                                                                                 |
| Configuration  | `type: enum:<enumId>` references a Polarion enumeration; `bindings: <fieldId>` ties the column to the work item field |

```yaml theme={null}
columns:
  - id: riskCategory
    bindings: riskCategory
    header: Risk Category
    type: enum:riskCategory
    width: 140
```

### Multi-Select Enum

| Behavior       | Details                                                      |
| -------------- | ------------------------------------------------------------ |
| Display        | Multiple selected values                                     |
| Editor         | Multi-select checkbox dropdown                               |
| Backing fields | Polarion `List<IEnumOption>`, comma-separated String         |
| Blank handling | Blank options automatically filtered out                     |
| Configuration  | `type: multiEnum:<enumId>` references a Polarion enumeration |

```yaml theme={null}
columns:
  - id: affectedSystems
    bindings: affectedSystems
    header: Affected Systems
    type: multiEnum:affectedSystems
    width: 200
```

<Note title="WorkItem Enum Fields">
  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.
</Note>

See [Enum Columns](/risksheet/reference/columns/enum-columns) and [Multi-Enum Columns](/risksheet/reference/columns/multi-enum-columns) for detailed configuration.

## Rating Fields

Rating columns are a specialized numeric column type intended for risk assessment scales (severity, occurrence, detection). Rating scales are defined as **Polarion enumerations** (Administration > Enumerations), and a custom field on the risk work item type binds to that enumeration. The Risksheet column then references both the enumeration and the field.

| Aspect        | Details                                                                                                                               |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Display       | Rating value (the enum option ID)                                                                                                     |
| Editor        | Dropdown populated from the referenced enumeration                                                                                    |
| Backing field | Polarion Integer custom field bound to the enumeration                                                                                |
| Configuration | `type: rating:<enumId>` selects the enumeration; `bindings: <fieldId>` selects the field. The server loads enum values automatically. |

```yaml theme={null}
columns:
  - id: sev
    bindings: sev
    header: Severity
    type: rating:severity
    width: 80
```

To define a new rating scale: create the enumeration under Polarion Administration > Enumerations, add a custom field on the risk work item type bound to that enumeration, then add a column with `type: rating:<enumId>` and `bindings: <fieldId>`.

## Duration Fields

Duration columns handle Polarion `DurationTime` fields and can also store durations in Integer or Float fields.

| Property       | Details                                       |
| -------------- | --------------------------------------------- |
| Display        | Duration string (e.g., `"1d 4h"`, `"2h 30m"`) |
| Parsing        | Uses Polarion's `DurationTime.fromString()`   |
| Backing fields | DurationTime, Integer, Float                  |

```yaml theme={null}
columns:
  - id: effortEstimate
    bindings: effortEstimate
    header: Effort Estimate
    type: duration
    width: 120
```

## User Reference Fields

User reference columns handle Polarion user assignment (assignee) fields with special behavior:

| Mode       | Behavior                                           |
| ---------- | -------------------------------------------------- |
| Read-only  | Displays user ID as string                         |
| Editable   | Clears all existing assignees, adds specified user |
| Assignment | Single-user assignment only                        |

```yaml theme={null}
columns:
  - id: assignee
    bindings: assignee
    header: Assignee
    type: ref:user
    width: 120
```

<Warning title="Single-User Limitation">
  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.
</Warning>

## Read-Only System Fields

The following Polarion fields are always read-only in Risksheet. Save attempts are silently ignored:

| Field           | Description             | Read-Only Reason                   |
| --------------- | ----------------------- | ---------------------------------- |
| `id`            | Work item ID            | Identity field, immutable          |
| `status`        | Workflow status         | Controlled by workflow transitions |
| `type`          | Work item type          | Immutable after creation           |
| `project`       | Project assignment      | Immutable                          |
| `outlineNumber` | Document outline number | Managed by Polarion                |
| `author`        | Item creator            | Set at creation time               |
| `resolution`    | Resolution value        | Managed by workflow                |
| `created`       | Creation timestamp      | Set at creation time               |
| `updated`       | Last modification       | Auto-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 Field | Native Type | Override           | Result                      |
| -------------- | ----------- | ------------------ | --------------------------- |
| String         | `text`      | `type: date`       | Parses string as date       |
| Integer        | `int`       | `type: enum:scale` | Displays as enum dropdown   |
| String         | `text`      | `type: boolean`    | Parses `"true"` / `"false"` |
| Float          | `float`     | `type: int`        | Truncates to integer        |

```yaml theme={null}
columns:
  - id: customDate
    bindings: customStringField
    header: Target Date
    type: date
```

<Info title="Verify in application">
  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.
</Info>

## Autocomplete and Suggestions

Certain field types support autocomplete suggestions as you type. The suggestion system provides real-time matching from the Polarion database.

| Feature           | Description                                            |
| ----------------- | ------------------------------------------------------ |
| Fuzzy search      | Matches values with minor typos or spelling variations |
| Wildcard search   | Use `*` for partial matching (e.g., `*test*`)          |
| Keyword filtering | All keywords in the query must match                   |

<Info title="Verify in application">
  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](/risksheet/reference/api/suggestion-api) for details.
</Info>

## Complete Example

A sheet configuration demonstrating all major supported field types:

```yaml theme={null}
columns:
  - id: failureMode
    bindings: title
    header: Failure Mode
    type: text
    width: 220
    level: 1
  - id: riskCategory
    bindings: riskCategory
    header: Category
    type: enum:riskCategory
    width: 130
    level: 2
  - id: sev
    bindings: sev
    header: Severity
    type: rating:severity
    width: 80
    level: 2
  - id: occ
    bindings: occ
    header: Occurrence
    type: rating:occurrence
    width: 80
    level: 2
  - id: rpn
    bindings: rpn
    header: RPN
    type: int
    formula: commonRpn
    width: 70
    level: 2
  - id: riskScore
    bindings: riskScore
    header: Risk Score
    type: float
    width: 100
    level: 2
  - id: mitigated
    bindings: mitigated
    header: Mitigated
    type: boolean
    width: 80
    level: 2
  - id: dueDate
    bindings: dueDate
    header: Due Date
    type: date
    width: 120
    level: 2
  - id: mitigationCost
    bindings: mitigationCost
    header: "Cost ($)"
    type: currency
    width: 100
    level: 2
  - id: effort
    bindings: effortEstimate
    header: Effort
    type: duration
    width: 100
    level: 2
  - id: affectedSystems
    bindings: 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;}"
```

The `severity`, `occurrence`, `riskCategory`, and `affectedSystems` identifiers in this example are Polarion enumerations defined under **Administration > Enumerations**. Their option values are loaded automatically by the server — they are not declared inside the sheet configuration.

## Related Pages

* [Field Mapping](/risksheet/reference/fields/field-mapping) — binding system and field resolution
* [System Fields](/risksheet/reference/fields/system-fields) — system-level bindings and constants
* [Data Types](/risksheet/reference/columns/data-types) — column data type behavior
* [Column Type Reference](/risksheet/reference/columns/column-types) — column definition properties
* [Enum Columns](/risksheet/reference/columns/enum-columns) — enum field configuration
* [Date and Time Columns](/risksheet/reference/columns/date-time-columns) — temporal field handling
* [User Reference Columns](/risksheet/reference/columns/user-reference-columns) — user field configuration
* [Culture and Localization Codes](/risksheet/reference/culture-codes) — locale settings affecting display

<LastReviewed date="2026-06-24" />
