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

# Contract Phase Attribute Value

> Field reference for the Veles Contract Phase Attribute Value object in the Salesforce managed package.

A Veles Contract Phase Attribute Value captures one dynamic, user-defined value for
a [Contract Phase](https://docs.getveles.com/sfdc-managed-package/objects/contract-phase.md). Application-owned values
remain first-class fields on their owning objects and never appear here.

The **variable** namespace contains user-defined fields that can influence
calculations, rules, and formulas. The **uom** namespace contains normalized
Unit of Measure inputs. A value's data type identifies which typed value field
is meaningful; the other value fields must be ignored.

Attribute values are master-detail children of their contract phase and are read-only
mirrors of Veles data.

> [!NOTE]
>
> Veles writes the **uom** namespace: one record per Unit of Measure value the
> contract phase holds.
>
> The **variable** namespace holds one record per quote phase formula field
> the phase has a result for, keyed by the field's key and labelled with its
> name. The result fills Number Value, Currency Value or Percentage Value by the
> field's return type, a percentage as the percent Veles shows (12.5 for 12.5%).
> A formula that could not be worked out for the phase writes no record, and the
> record is deleted when the field is deleted in Veles.
>
> A phase takes the values in both namespaces from the order that created it,
> and each amendment replaces them with the amending order's. A phase an amendment removes keeps
> the values it had. The object ships in package version 0.4.0.

A phase's values are listed on its Veles Contract Phase page, under **Attribute
Values** on the Related tab: each value's key, label and Display Value, ordered
by key.

> [!NOTE]
>
> Upgrading the package does not change a Veles Contract Phase layout that is
> already installed. If your Veles Contract Phase page has no Attribute Values
> list, add it: in Setup, open **Object Manager > Veles Contract Phase > Page
> Layouts > Veles Contract Phase Layout**, drag **Attribute Values** from
> **Related Lists** onto the page, open its properties (the wrench), add
> **Label**, **Display Value** and **Namespace** as columns, sort by **Attribute
> Key**, and save.

## Fields at a glance

| Field | API Name | Type |
| - | - | - |
| Attribute Key | `Name` | Text (standard name field) |
| Veles External ID | `Veles__External_Id__c` | Text(255), unique, external ID |
| Contract Phase | `Veles__Contract_Phase__c` | Master-Detail(Veles Contract Phase) |
| Label | `Veles__Label__c` | Text(255) |
| Namespace | `Veles__Namespace__c` | Picklist |
| Data Type | `Veles__Data_Type__c` | Picklist |
| Display Value | `Veles__Display_Value__c` | Formula (Text) |
| Text Value | `Veles__Text_Value__c` | Text(255) |
| Number Value | `Veles__Number_Value__c` | Number(18, 6) |
| Currency Value | `Veles__Currency_Value__c` | Currency(18, 6) |
| Percentage Value | `Veles__Percentage_Value__c` | Percent(18, 6) |
| Boolean Value | `Veles__Boolean_Value__c` | Checkbox |
| Synced At | `Veles__Synced_At__c` | DateTime |

## Field details

**Name** `Text`

**Attribute Key** — The stable key that identifies the user-defined attribute
within its namespace.

**Veles\_\_External\_Id\_\_c** `Text(255), unique, external ID`

**Veles External ID** — The stable Veles identifier for this attribute value.
All sync writes upsert on this field; never edit.

**Veles\_\_Contract\_Phase\_\_c** `Master-Detail(Veles Contract Phase)`

**Contract Phase** — The contract phase this value belongs to. Attribute values are deleted
with their parent.

**Veles\_\_Label\_\_c** `Text(255)`

**Label** — The user-facing label for this attribute at sync time.

**Veles\_\_Namespace\_\_c** `Picklist`

**Namespace** — The attribute's user-defined domain. Initial values are
`variable` and `uom`. The picklist is unrestricted so future namespaces do
not break synchronization.

**Veles\_\_Data\_Type\_\_c** `Picklist`

**Data Type** — Identifies the one typed value field that is meaningful.
Initial values are `text`, `number`, `currency`, `percentage`, and
`boolean`.

**Veles\_\_Display\_Value\_\_c** `Formula (Text)`

**Display Value** — The value as text, read from whichever typed field Data
Type names: a currency value prefixed with the contract's currency code, a
percentage with a percent sign, a boolean as Yes or No, and Text Value for
any other type. For related lists and list views; report and filter on the
typed value fields.

**Veles\_\_Text\_Value\_\_c** `Text(255)`

**Text Value** — The resolved value when Data Type is `text`. Select and
reference values are also represented as resolved text.

**Veles\_\_Number\_Value\_\_c** `Number(18, 6)`

**Number Value** — The normalized value when Data Type is `number`. Any
presentation scaling has already been applied.

**Veles\_\_Currency\_Value\_\_c** `Currency(18, 6)`

**Currency Value** — The resolved value when Data Type is `currency`.

**Veles\_\_Percentage\_Value\_\_c** `Percent(18, 6)`

**Percentage Value** — The resolved value when Data Type is `percentage`.

**Veles\_\_Boolean\_Value\_\_c** `Checkbox`

**Boolean Value** — The resolved value when Data Type is `boolean`. Ignore
this field for all other data types.

**Veles\_\_Synced\_At\_\_c** `DateTime`

**Synced At** — When the Veles sync last wrote this record.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.