> ## 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.

# Type Conversion

> Nextedy POWERSHEET automatically converts between Siemens Polarion ALM field types and its internal data type 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>;
};

## Polarion to Powersheet Type Mapping

The metadata system automatically maps Polarion custom field types to internal data types when processing data model configurations.

| Polarion Type  | Internal Data Type | Notes                                            |
| -------------- | ------------------ | ------------------------------------------------ |
| `String`       | `String`           | Plain text values                                |
| `Text`         | `String`           | Multi-line text content                          |
| `Integer`      | `Int32`            | Whole number values                              |
| `Float`        | `Double`           | Floating-point decimal values                    |
| `Currency`     | `Double`           | Monetary values, stored as decimal               |
| `Boolean`      | `Boolean`          | True/false values                                |
| `Date`         | `DateTime`         | Full date and time with timezone                 |
| `DateOnly`     | `DateTime`         | Date without time component                      |
| `TimeOnly`     | `DateTime`         | Time without date component                      |
| `DurationTime` | `String`           | Duration values as formatted string              |
| `Enum`         | Enum               | Constrained option set with ID and display label |
| `List`         | Collection         | Sets `scalar` to `false` for multi-value fields  |

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/-WiVljKlDztH36bB/powersheet/diagrams/reference/field-types/type-conversion/diagram-1.svg?fit=max&auto=format&n=-WiVljKlDztH36bB&q=85&s=19a818b02aee0bb69acf1582048ebd50" alt="diagram" style={{ width: "560px", maxWidth: "100%" }} width="560" height="340" data-path="powersheet/diagrams/reference/field-types/type-conversion/diagram-1.svg" />
</Frame>

## Conversion Rules

### Primitive Type Conversion

Properties defined in the data model without an explicit `type` are automatically typed from Polarion metadata:

1. The metadata system reads the Polarion field type from custom field configuration
2. The type is mapped to the corresponding internal data type (see table above)
3. The mapped type determines column display behavior, editing controls, and query operators

### Enum Type Conversion

Enum properties receive additional metadata beyond the base type:

| Property               | Description                                                             |
| ---------------------- | ----------------------------------------------------------------------- |
| Enumeration ID         | Polarion enum definition identifier                                     |
| Full qualified enum ID | Dot-separated scoped identifier                                         |
| Query keys             | Context keys for loading options (proto, project, polarionType, enumId) |
| Default value          | Inferred from Polarion or explicit data model configuration             |

<Note title="Multi-value enums are not supported">
  A single-value enum field maps as described above. A multi-value (multi-select) enum, meaning a Polarion enum custom field that allows more than one value, is not currently supported as a Powersheet enum column.
</Note>

### List Type Conversion

When a Polarion field type is a list (collection), the property is marked with `scalar: false`. This affects:

| Aspect           | Scalar (`true`)        | Collection (`false`)   |
| ---------------- | ---------------------- | ---------------------- |
| Data binding     | Single value display   | Multi-value display    |
| Query expansion  | Direct property access | Requires expand clause |
| Column rendering | Standard cell          | Multi-item cell        |

## Property Type Information

Each column in Powersheet carries combined type information that determines its rendering and editing behavior:

| Type Category     | Description                                                   |
| ----------------- | ------------------------------------------------------------- |
| Column type       | Overall column behavior type (text, number, date, enum, etc.) |
| Column value type | Specific value format within the column type                  |
| Property type     | Combined intersection of column type and value type           |

## Built-In Property Types

All work item entity types include these automatically typed built-in properties:

| Property    | Type     | Read-Only         |
| ----------- | -------- | ----------------- |
| `objectId`  | `String` | Yes (primary key) |
| `id`        | `String` | Yes               |
| `title`     | `String` | No                |
| `projectId` | `String` | Yes (foreign key) |

### Document Entity Read-Only Fields

Document entity types have additional create-only fields that cannot be modified after the document is created:

| Property         | Access      |
| ---------------- | ----------- |
| `moduleFolder`   | Create-only |
| `moduleName`     | Create-only |
| `title`          | Create-only |
| `type`           | Create-only |
| `allowedWITypes` | Create-only |

<Info title="Verify in application">
  Some Document entity implementations expose `outlineNumber` as a read-only property when explicitly declared in the data model. It is not part of the default built-in Document property set — verify in your project's metadata before relying on it.
</Info>

## Security and Type Interaction

Server-rendered properties (computed fields) interact with the type system:

| Configuration          | Effect on Type                                            |
| ---------------------- | --------------------------------------------------------- |
| `serverRender` enabled | Property is always non-editable regardless of `updatable` |
| `readable: false`      | Property excluded from metadata; not available to client  |
| Entity-level read-only | Intersected with property-level `updatable`               |

## Default Value Resolution by Type

| Type                            | Default Resolution                                                  |
| ------------------------------- | ------------------------------------------------------------------- |
| Primitive (String, Int32, etc.) | `null` unless explicit default in data model                        |
| Enum                            | Explicit data model default > Polarion enumeration default > `null` |
| Boolean                         | `null` unless configured                                            |
| DateTime                        | `null` unless configured                                            |

## Complete YAML Example

```yaml theme={null}
domainModelTypes:
  UserNeed:
    polarionType: userNeed
    properties:
      title: ~
      description: ~
      priority:
        customFieldName: priority
      storyPoints:
        customFieldName: c_storyPoints
      isApproved:
        customFieldName: c_isApproved
      targetDate:
        customFieldName: c_targetDate
      estimatedEffort:
        customFieldName: c_estimatedEffort
      verificationMethod:
        customFieldName: c_verificationMethod
        enumValues:
          - analysis
          - inspection
          - test
  SystemRequirement:
    polarionType: systemRequirement
    properties:
      title: ~
      severity:
        customFieldName: severity

relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: many-to-many
    storage: linkedWorkItems
    linkRole: relates_to
    direct:
      name: systemRequirements
    back:
      name: userNeeds
```

<Tip title="Automatic Type Detection">
  In most configurations, you do not need to specify the `type` property explicitly. Powersheet infers types from Polarion metadata. Only specify `type` when you need to override automatic detection or when the property is not backed by a Polarion field.
</Tip>

## Related Pages

* [Polarion Type Mapping](/powersheet/reference/data-model/polarion-mapping) -- Entity type to Polarion mapping

<LastReviewed date="2026-07-02" />
