# Shape Fields

> This task requires the **Shape Editor** (`x_inpi_yd.shape_editor`) or **YouDesign Admin** (`x_inpi_yd.admin`) role.

Shape Fields define **which ServiceNow record fields appear in the** [**Data Panel**](/models/work-in-the-app/editor/data-inspector.md) when an end user selects a shape on the canvas. This is where you control what data users see and edit without leaving the editor, and how the commit workflow validates required fields.

## Where Shape Fields Live

Each shape record (`x_inpi_yd_shape`) has a **Shape Fields** related list. Every row in that list is one field configured for display in the Data Panel.

## Creating a Shape Field

1. Open the Shape record in the YouDesign Models application menu.
2. Scroll to the **Shape Fields** related list.
3. Click **New**.

| Field            | Description                                                                                 |
| ---------------- | ------------------------------------------------------------------------------------------- |
| **Shape**        | The shape this field belongs to (pre-filled if you started from the Shape record).          |
| **Table**        | The ServiceNow table. In newer versions, auto-selected from the shape's Data Hub binding.   |
| **Field**        | The field on that table to expose in the Data Panel.                                        |
| **Current Form** | Show this field when the element is in **Current State** (already committed to ServiceNow). |
| **Future Form**  | Show this field when the element is in **Future State** (not yet committed).                |
| **Read-only**    | Display the field but don't allow editing.                                                  |
| **Mandatory**    | Field must be filled before the element can be committed.                                   |
| **Order**        | Display order in the Data Panel. Lower numbers appear higher on the form.                   |

> **In v26, table selection is auto-populated from the shape's Data Hub binding — you no longer need to pick it manually.** Older versions required you to select the table explicitly.

> **🖼 Screenshot needed:** \[Shape Field form with Shape, Field, Current Form, Future Form, Read-only, Mandatory, and Order fields visible] *Show: a Shape Field record with Shape=Business Application, Field=business\_criticality, Current Form=true, Future Form=true, Mandatory=true, Order=10.*

## Current Form vs. Future Form

You control the form independently for each state:

* **Current Form** — shown for **Current State** elements (committed records). Typically includes read-only system fields and key descriptive fields.
* **Future Form** — shown for **Future State** elements (not yet committed). Often a narrower subset of fields — only what the user needs to fill before committing.

A field can appear on both, one, or neither. A field that's on **neither** won't be shown but stays in your configuration, so you can toggle it back on without losing the configuration.

## Read-only and Mandatory

* **Read-only** — the field renders in the Data Panel but cannot be edited. Use for fields that should be visible for context but aren't editable from YouDesign Models.
* **Mandatory** — the field must have a value before the element can be **committed**. The commit workflow blocks a commit if any mandatory field on the future-state element is empty.

Mandatory fields on Current Form (but not Future Form) are enforced only when the element is committed. Use them when your organization requires specific data before promoting a draft.

## Typical Configurations

**Minimum configuration (Data Hub + display field)**

* `Name` — Current Form ✓, Future Form ✓, Mandatory ✓

**Richer configuration (common for Business Application)**

| Field                  | Current | Future | Read-only | Mandatory |
| ---------------------- | :-----: | :----: | :-------: | :-------: |
| `name`                 |    ✓    |    ✓   |           |     ✓     |
| `short_description`    |    ✓    |    ✓   |           |           |
| `business_unit`        |    ✓    |    ✓   |           |     ✓     |
| `architecture_type`    |    ✓    |    ✓   |           |     ✓     |
| `application_type`     |    ✓    |    ✓   |           |           |
| `business_criticality` |    ✓    |    ✓   |           |     ✓     |
| `install_type`         |    ✓    |    ✓   |           |           |
| `platform`             |    ✓    |    ✓   |     ✓     |           |
| `technology_stack`     |    ✓    |    ✓   |           |           |

Adjust based on your organization's data governance: fewer fields in the Future Form reduces the friction of creating future-state elements; more mandatory fields enforces higher-quality data before commits.

## Order

The Data Panel renders fields in ascending order by the **Order** value. Leave gaps (10, 20, 30…) so you can insert new fields between existing ones without renumbering everything.

## Limits & Gotchas

* **Fields reference the shape's bound table.** If the shape doesn't have a Data Hub table set, Shape Fields can't be configured against it.
* **Mandatory enforcement only fires on commit.** You can save a draft with empty mandatory fields; the check runs when the user clicks **Commit**.
* **Read-only doesn't hide the field** — it shows it but disables editing. To hide a field entirely, uncheck both Current Form and Future Form.
* **Shape Fields migrate via XML**, not Update Sets. See [Migrating Configuration](/models/get-the-app/migrating-configuration.md).
* **Deleting the underlying ServiceNow field** leaves an orphaned Shape Field record. Clean up the YouDesign Models side when you remove fields from the ServiceNow table.

## Related

* [Data Panel (end-user)](/models/work-in-the-app/editor/data-inspector.md)
* [Shape Administration](/models/admin/shapes.md)
* [Commit (end-user)](/models/work-in-the-app/editor/commit.md) — where mandatory fields are enforced
* [Metamodel Prerequisites](/models/admin/metamodel.md) — tables and fields must exist first
* [Migrating Configuration](/models/get-the-app/migrating-configuration.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ins-pi.com/models/admin/shape-fields.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
