Skip to main content
Voir en Markdown

Champs calculés et d'action

Quatre types de champs dans lesquels personne ne saisit de valeur. Trois sont dérivés — le moteur les calcule à partir d'autres données — et un est un contrôle qui déclenche quelque chose au clic. Tous partagent les propriétés de base des champs.

Type Stocke / fait
formula Une valeur calculée à partir d'une expression de formule.
count Un comptage d'enregistrements liés.
autonumber Un entier auto-incrémenté attribué par la base de données.
button Un bouton interactif déclenchant une URL ou une automatisation.

Pour les types porteurs de valeur — json, array, color, code, geolocation, barcode — voir Champs structurés et média.

formula

Calcule une valeur à partir d'une expression référençant d'autres champs.

Propriété Description
formula Obligatoire, non vide. Expression à calculer. Accepte références de champs et fonctions.
resultType Type de données attendu du résultat (par ex. string, number, boolean, date).
format Format d'affichage du résultat (par ex. currency, percentage, decimal, date).
currency Code ISO 4217 dans lequel le montant s'affiche (EUR, GBP, …). USD par défaut.
precision Nombre de décimales, 010. 2 par défaut.
symbolPosition before (défaut) ou after le montant.
negativeFormat minus (défaut) ou parentheses.
thousandsSeparator comma (défaut), period, space ou none.
app.yaml
- { id: 1, name: total_price, type: formula, formula: 'price * quantity', resultType: number }

Un montant calculé par une formule

Une formule portant sur des champs monétaires reste de la monnaie, mais elle n'hérite pas de la devise des champs qu'elle référence : une expression peut en toucher plusieurs, ou aucun, et il n'y aurait donc rien à hériter sans deviner. Déclarez le code :

app.yaml
- id: 12
  name: unit_price
  type: currency
  currency: EUR
  precision: 2
- id: 27
  name: stock_value
  type: formula
  formula: unit_price * stock_on_hand
  resultType: number
  format: currency
  currency: EUR

Sans currency, le montant s'affiche avec la valeur par défaut USD — c'est ainsi que stock_value affichait $224,430.90 dans la colonne voisine du €28.63 dont il était calculé.

Ces cinq propriétés d'affichage sont exactement celles qu'accepte un champ currency, avec un comportement identique.

count

Compte les enregistrements liés par un champ de relation de la même table. Un rollup simplifié.

Propriété Description
relationshipField Obligatoire, non vide. Nom du champ de relation de cette table dont il faut compter les liens.
filters Expression de filtre optionnelle — ne compter que les enregistrements liés qui correspondent.
app.yaml
- {
    id: 2,
    name: completed_task_count,
    type: count,
    relationshipField: tasks,
    filters: { field: status, operator: equals, value: completed },
  }

autonumber

Un entier auto-incrémenté attribué par la base de données — le type de champ derrière les références de factures et de commandes. La colonne est une séquence : la valeur est allouée par la base à l'insertion et n'est jamais fournie par le client.

app.yaml
- { id: 3, name: invoice_number, type: autonumber }

Cela produit 1, 2, 3, et ainsi de suite. autonumber n'accepte aucune option : pas de préfixe, pas de décalage de départ, pas de remplissage par zéros. Pour une référence lisible comme INV-01000, ajoutez un champ formula qui compose le nombre avec le préfixe et le remplissage souhaités — la présentation reste ainsi en un seul endroit et la séquence sous-jacente n'est pas touchée.

button

Un bouton interactif rendu sur les enregistrements.

Propriété Description
label Obligatoire, non vide. Texte du bouton.
action Obligatoire. Soit url, soit automation — rien d'autre n'est accepté.
url URL à ouvrir. Obligatoire lorsque action vaut url.
automation Nom de l'automatisation à exécuter. Obligatoire lorsque action vaut automation.
visibleWhen N'affiche le bouton que sur les enregistrements correspondants. Omis : partout.
app.yaml
- {
    id: 4,
    name: approve,
    type: button,
    label: Approve,
    action: automation,
    automation: approve_request,
  }

action est un vocabulaire fermé à deux valeurs. action: url exige url ; action: automation exige automation. Toute autre valeur — chaîne vide comprise — est refusée au démarrage : action est la clé de dispatch sur laquelle s'appuient à la fois le rendu et le point d'entrée d'invocation, et une valeur qu'aucun des deux ne reconnaît afficherait un bouton sans effet.

L'automation qu'il nomme doit avoir un déclencheur manual pour être invocable ainsi.

N'afficher un bouton que sur certains enregistrements

visibleWhen nomme un champ de l'enregistrement et lui applique le vocabulaire de conditions partagé (eq, neq, in, notIn, contains, gt, lt, gte, lte). Plusieurs opérateurs se cumulent : tous doivent être vrais. C'est la grammaire qu'utilise déjà une action de data-table, pour que « n'afficher ce contrôle que sur certains enregistrements » s'écrive partout de la même façon.

app.yaml
- {
    id: 5,
    name: ship,
    type: button,
    label: Ship,
    action: automation,
    automation: ship_order,
    visibleWhen: { field: status, eq: pending },
  }

json

Déplacé vers Champs structurés et média.

array

Déplacé vers Champs structurés et média.

color

Déplacé vers Champs structurés et média.

code

Déplacé vers Champs structurés et média.

geolocation

Déplacé vers Champs structurés et média.

barcode

Déplacé vers Champs structurés et média.

Pages connexes

Dernière mise à jour 11 août 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.

Construit avec Sovrium