---
title: "Fields et valeurs"
url: https://developers.dagio.ai/fr/fields/
---

# Fields et valeurs

   
                          
                                                                                           
              
              
         
   

## Définir une donnée une seule fois

Un Field appartient à une définition de Surface. Il possède une clé stable, un type de valeur et des contraintes. Les vues et Forms réutilisent cette définition; afficher un Field dans deux endroits ne crée pas deux valeurs.

Le type de stockage et le contrôle d’interface répondent à deux questions différentes. Un choix parmi plusieurs états peut être stocké comme texte et présenté dans une liste déroulante. Une note reste du texte, mais son affichage en Surface devient une section éditable.

| Champ de définition | Options / valeurs attendues                | Description                                  |
| ------------------- | ------------------------------------------ | -------------------------------------------- |
| key                 | Clé stable, par exemple company ou status  | Identifie le Field dans les références       |
| type                | boolean, date, datetime, number, text      | Type canonique de la valeur                  |
| required            | true ou false                              | Exige une valeur selon le contrat de l’objet |
| repeatable          | true ou false                              | Admet une liste de valeurs du même type      |
| default             | Valeur du type déclaré; liste si répétable | Valeur initiale admise                       |
| options             | Liste de chaînes pour les choix déclarés   | Limite les valeurs proposées et admises      |

## Choisir Surface ou Paramètres

Le placement appartient à la présentation de la fiche. Une section Fields sélectionne des chemins comme `fields/company` ou `fields/notes`. La configuration des paramètres sélectionne les Fields du formulaire **Paramètres**. Utilisez la Surface pour les informations que l’on lit et enrichit régulièrement; réservez Paramètres aux réglages.

Le caractère obligatoire à la création est indépendant de ce placement. Si Entreprise est nécessaire pour créer un client, la Form **Nouveau client** doit le demander même s’il apparaît ensuite dans la Surface. L’interface ne doit pas rendre une création impossible en cachant une valeur requise.

Un Field de texte long et le corps riche d’une Surface ne sont pas la même donnée. Le premier
conserve sa valeur de Field; le second utilise son binding de contenu dans la Form et
le même éditeur documentaire. Choisir un contrôle `multiline` ne transforme pas à lui seul un Field
en document. Les Fields placés dans la Surface ou dans **Paramètres** et le corps déclaré partagent
la même confirmation d’édition, sans sauvegardes concurrentes.

## Reprendre vos modifications après une mise à jour

Si une fiche a changé pendant votre saisie, **Relire la fiche** conserve votre brouillon et
consulte sa version actuelle. Pour les Fields stockés non répétables, Surface peut préparer une
nouvelle revue de vos seules modifications explicites, y compris `0`, `false` ou une valeur
effacée. Les valeurs simplement chargées ne sont pas considérées comme modifiées. Vérifiez le
résultat avant de l’enregistrer : la relecture ne sauvegarde rien. Si un même Field a changé
entre-temps, même s’il est revenu à sa première valeur, la reprise est refusée et votre brouillon
reste intact. Ce parcours ne fusionne pas le titre, le contenu riche ou les relations. Après une
confirmation non reçue, réessayez la même demande au lieu de préparer une nouvelle modification.

## Exemple : l’état d’un client

```json
{
  "key": "status",
  "type": "text",
  "required": true,
  "repeatable": false,
  "default": "prospect",
  "options": ["prospect", "active", "inactive"]
}
```

La valeur stockée reste stable; le Model associe des libellés lisibles comme Prospect, Actif et Inactif. La fiche peut afficher un combobox, le tableau un indicateur et la Query un filtre sur cette même valeur.

## Valeurs répétables et texte long

Pour plusieurs valeurs, utilisez la répétition plutôt que des Fields numérotés. Une collection de traits, de compétences ou de coordonnées se développe sans ajouter trait1, trait2 et trait3 au Model. Le texte long d’une section utilise son titre comme repère et une zone éditable en dessous; la Surface conserve les règles de contenu, d’identité et de protection des objets.

L’examen d’une valeur liée consulte les sources autorisées sans modifier les fiches ni activer une
relation. Il distingue une valeur absente, un texte vide, `0` et `false`; un inventaire indisponible
ne devient pas un résultat vide. Les choix de vue conservent les libellés déclarés pour la
collection, la fiche ou l’accueil. Une déclaration sans libellé reste indisponible au lieu de
recevoir un titre inventé.

Pour activer une valeur liée, utilisez l’accès Owner aux deux Workspaces et à leurs Spaces concernés
pour examiner chaque fiche source et choisir explicitement une cible autorisée, ou l’absence de
rattachement lorsque le champ source le permet. Les valeurs existantes ne permettent
pas de deviner la cible. Examinez l’impact complet avant et après, puis confirmez; une confirmation
interrompue reprend la même demande. Modifier les libellés, l’état, les limites ou les vues d’aperçu
de la relation conserve ses liens et captures de référence. Réattribuer ces liens demande un examen
explicite distinct : ce n’est pas un effet d’un changement de réglages.

Lorsqu’un Field propose une relation configurée, choisissez les références offertes et respectez les limites affichées. Cette sélection porte sur les liens : elle ne remplace ni la saisie du Field ni le brouillon du Form.

<!-- surface-examples:start -->

## Exemples appliqués : Texte requis et choix métier

Entreprise utilise une saisie texte obligatoire; État réutilise une liste de valeurs déclarées.

### Configuration

Fragment à placer dans `forms[].fields[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "company",
  "label": "Entreprise",
  "input": "text",
  "binding": {
    "kind": "field",
    "fieldKey": "company"
  },
  "required": true,
  "ruleKeys": [],
  "options": []
}
```

### Variante et raccordement

Fragment à placer dans `forms[].fields[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "status",
  "label": "État",
  "input": "choice",
  "binding": {
    "kind": "field",
    "fieldKey": "status"
  },
  "required": true,
  "ruleKeys": [],
  "options": [
    "prospect",
    "active"
  ]
}
```

### Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

1. Identité du client
2. Notes et suivi
3. Paramètres
4. Soumissions liées

<!-- surface-examples:end -->
