---
title: "Forms et paramètres"
url: https://developers.dagio.ai/fr/forms/
---

# Forms et paramètres

   
                            
                                                                      
             
              
         
   

## Une Form répond à une opération

Une Form recueille les informations nécessaires pour exécuter une Action. Elle sert à créer un client, modifier des paramètres ou préparer un lancement. Elle ne remplace pas la fiche, qui reste une Surface lisible et éditable.

Le Model relie la Form à l’opération et aux Fields concernés. La définition du Field possède son type et ses contraintes; la Form choisit son contrôle, son libellé et son ordre. La vérification côté service reste l’autorité même lorsque l’interface a déjà validé la saisie.

| Choix de présentation | Valeur attendue                                              | Usage                                  |
| --------------------- | ------------------------------------------------------------ | -------------------------------------- |
| Field                 | Référence à un Field déclaré                                 | Réutiliser la donnée canonique         |
| Contrôle              | Texte, texte long, choix, nombre, date, booléen ou référence | Respecter le type et les options       |
| Valeur initiale       | Défaut déclaré ou contexte autorisé                          | Éviter les saisies inutiles            |
| Requis à la création  | Information nécessaire à l’opération                         | Créer une fiche valide                 |
| Description           | Aide courte et métier                                        | Expliquer ce que l’usager doit fournir |

## Création et édition

Dans **Nouveau client**, demandez Entreprise et État; préremplissez État avec Prospect. Après création, ouvrez la fiche plutôt qu’une seconde Form exhaustive. Les notes, coordonnées et liens s’enrichissent dans la Surface.

Si l’app demande où ajouter un élément, choisissez une référence dans la liste proposée avant de
remplir la Form, par exemple le livre qui recevra un chapitre. Le premier résultat n’est pas choisi
automatiquement. Avant confirmation, si cette référence change ou devient indisponible, actualisez
votre choix avant de continuer. Si la réponse à une confirmation est perdue, sa reprise conserve
le choix de la demande d’origine.

Depuis une fiche ouverte, une Action comme **Ajouter un chapitre** peut reprendre directement ce
livre comme parent. Vérifiez la cible présentée avant confirmation : créer l’enfant ne transforme
pas la fiche du parent et ne choisit pas un autre livre. Cette Action reste indisponible en lecture
seule ou si la référence n’est plus autorisée.

Pour un Field lié, conservez la référence enregistrée ou recherchez et choisissez une autre fiche
dans la liste proposée. Le retrait n’apparaît que lorsqu’il est autorisé pour ce Field. La recherche
et le choix ne modifient pas encore la relation : ils sont vérifiés et enregistrés avec la
confirmation du formulaire. Si sa réponse est perdue, reprenez cette même confirmation plutôt que
choisir à nouveau une cible.

Dans **Paramètres**, regroupez les réglages qui ne méritent pas d’occuper le contenu principal. Un même Field garde sa valeur quand il est utilisé par une Form et une section de Surface.

Si la création demande un contenu riche, celui-ci utilise le même éditeur de document, à la place
de la fiche précédente, avec les autres valeurs de la Form. Il n’existe pas une seconde copie du
corps dans les paramètres. Après confirmation, Surface ouvre la fiche réellement créée.

## Préserver une saisie

Quand une Action demande des preuves, la revue présente les critères, les résultats et les sources
à vérifier avant confirmation. Ouvrir une source ne confirme pas l’Action; vos valeurs restent dans
le formulaire. Les points bloquants restent distincts des informations encore incomplètes.

La mention « Revue humaine enregistrée » décrit une revue déjà conservée; elle ne déclenche
aucune nouvelle exécution.

Quand le Model relie une Form au contenu d’une Surface, le contenu riche reste dans
l’éditeur de la Surface. Les Fields et les réglages utilisent les mêmes contrôles déclarés;
**Paramètres** ne contient pas une seconde copie du corps. Le corps et les valeurs concernés sont
confirmés dans la même opération, sans demander une seconde sauvegarde du document. Le formatage,
les liens et les attributs du document ne passent pas par une conversion en texte Markdown. Les objets conservent leur identité et leurs protections; un titre Hx ne constitue pas un binding métier.

Avant de confirmer une modification documentaire native, examinez son contenu réel avant/après
dans la même vue documentaire en lecture seule. Si cette vue ne peut pas admettre le document ou
ses images exacts, la confirmation reste indisponible et votre saisie originale est conservée.
Les images PNG/JPEG embarquées sont vérifiées à partir de leurs vrais octets; une référence
d’image vivante ou non épinglée n’est pas remplacée par une image courante devinée.

Une Action documentaire proposée dans une carte de clavardage conserve exactement cette
proposition pour la revue; elle ne la remplace pas par un autre brouillon d'édition ouvert.
La confirmation retient les mêmes documents et la même clé d'opération. La reprise d'une réponse
incertaine vérifie cette opération originale, sans présenter un ancien document comme un aperçu
courant ni écraser un travail plus récent non soumis.

Quand le Model déclare explicitement un contexte AI pour une Form de lancement, sa proposition
préparée et relue peut inclure les valeurs saisies et le contenu riche relié au corps exact du
document déclaré. Ce contenu reste proposé : il n’est ni un document enregistré ni
un Flow lancé. Toute modification de cette proposition retire son contexte AI jusqu’à la
préparation et à la revue d’une nouvelle proposition valide. Si le contexte obligatoire complet
dépasse ses limites, Surface refuse la demande plutôt que de tronquer le document ou d’omettre
des sources obligatoires.

Une Form possède un brouillon jusqu’à confirmation. Fermer, revenir ou recevoir une mise à jour distante doit respecter ce brouillon. Un refus de droits, une erreur de validation ou une réponse incertaine indique clairement ce qui reste à corriger ou à vérifier. Une nouvelle tentative ne doit pas créer deux clients lorsque la première opération a déjà été acceptée.

Si le document change pendant la revue, Surface conserve la saisie et demande de vérifier la
version concernée; il ne fusionne pas silencieusement les modifications. Une réponse perdue reprend
la même confirmation et ses mêmes valeurs. Après confirmation de l’enregistrement, un échec
d’ouverture de la fiche se résout en rouvrant celle-ci, sans répéter l’Action.

Annuler explicitement une nouvelle création abandonne sa saisie non confirmée. Changer de vue ne
vaut pas annulation. Avant de recharger l’application, terminez ou annulez la création en cours;
Surface ne présente pas sa retenue dans la session comme une sauvegarde du nouveau document.

Exemple : la création d’Atelier Nord échoue parce qu’Entreprise est vide. L’erreur se rattache à ce Field; le courriel déjà saisi reste présent.

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

## Exemples appliqués : Une création courte, une fiche complète

La création demande Entreprise et État. Les notes facultatives s’enrichissent ensuite dans la Surface.

### Configuration

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

```json
{
  "contract": "WorkspaceForm@2",
  "key": "new-client",
  "label": "Nouveau client",
  "actionKey": "create-client",
  "targetDefinitionPath": "workspace/clients/surface/client",
  "mode": "create",
  "fields": [
    {
      "contract": "WorkspaceFormControl@2",
      "repeatable": false,
      "key": "company",
      "label": "Entreprise",
      "input": "text",
      "binding": {
        "kind": "field",
        "fieldKey": "company"
      },
      "required": true,
      "ruleKeys": [],
      "options": []
    },
    {
      "contract": "WorkspaceFormControl@2",
      "repeatable": false,
      "key": "status",
      "label": "État",
      "input": "choice",
      "binding": {
        "kind": "field",
        "fieldKey": "status"
      },
      "required": true,
      "ruleKeys": [],
      "options": [
        "prospect",
        "active"
      ]
    }
  ],
  "ruleKeys": []
}
```

### 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": "notes",
  "label": "Notes",
  "input": "multiline",
  "binding": {
    "kind": "field",
    "fieldKey": "notes"
  },
  "required": false,
  "ruleKeys": [],
  "options": []
}
```

### 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. Entreprise *
2. État *
3. Notes
4. Créer le client

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