Créez des champs numériques pour stocker des valeurs numériques avec des contraintes min/max optionnelles et un formatage de préfixe


Les champs personnalisés de nombre vous permettent de stocker des valeurs numériques pour des enregistrements. Ils prennent en charge des contraintes de validation, une précision décimale, et peuvent être utilisés pour des quantités, des scores, des mesures ou toute donnée numérique qui ne nécessite pas de formatage spécial.

Exemple de base

Créez un champ numérique simple :

mutation CreateNumberField {
  createCustomField(input: {
    name: "Priority Score"
    type: NUMBER
    projectId: "proj_123"
  }) {
    id
    name
    type
  }
}

Exemple avancé

Créez un champ numérique avec des contraintes et un préfixe :

mutation CreateConstrainedNumberField {
  createCustomField(input: {
    name: "Team Size"
    type: NUMBER
    projectId: "proj_123"
    min: 1
    max: 100
    prefix: "#"
    description: "Number of team members assigned to this project"
  }) {
    id
    name
    type
    min
    max
    prefix
    description
  }
}

Paramètres d'entrée

CreateCustomFieldInput

Paramètre Type Requis Description
name String! ✅ Oui Nom d'affichage du champ numérique
type CustomFieldType! ✅ Oui Doit être NUMBER
projectId String! ✅ Oui ID du projet dans lequel créer le champ
min Float Non Contrainte de valeur minimale (guidage UI uniquement)
max Float Non Contrainte de valeur maximale (guidage UI uniquement)
prefix String Non Préfixe d'affichage (ex : "#", "~", "$")
description String Non Texte d'aide affiché aux utilisateurs

Définir des valeurs numériques

Les champs numériques stockent des valeurs décimales avec une validation optionnelle :

Valeur numérique simple

mutation SetNumberValue {
  setTodoCustomField(input: {
    todoId: "todo_123"
    customFieldId: "field_456"
    number: 42.5
  })
}

Valeur entière

mutation SetIntegerValue {
  setTodoCustomField(input: {
    todoId: "todo_123"
    customFieldId: "field_456"
    number: 100
  })
}

Paramètres de SetTodoCustomFieldInput

Paramètre Type Requis Description
todoId String! ✅ Oui ID de l'enregistrement à mettre à jour
customFieldId String! ✅ Oui ID du champ personnalisé de nombre
number Float Non Valeur numérique à stocker

Contraintes de valeur

Contraintes Min/Max (Guidage UI)

Important : Les contraintes min/max sont stockées mais NE SONT PAS appliquées côté serveur. Elles servent de guidage UI pour les applications frontend.

mutation CreateConstrainedField {
  createCustomField(input: {
    name: "Rating"
    type: NUMBER
    projectId: "proj_123"
    min: 1
    max: 10
    description: "Rating from 1 to 10"
  }) {
    id
    name
    min
    max
  }
}

Validation côté client requise : Les applications frontend doivent implémenter une logique de validation pour appliquer les contraintes min/max.

Types de valeurs pris en charge

Type Exemple Description
Integer 42 Nombres entiers
Decimal 42.5 Nombres avec des décimales
Negative -10 Valeurs négatives (si aucune contrainte min)
Zero 0 Valeur zéro

Remarque : Les contraintes min/max NE SONT PAS validées côté serveur. Les valeurs en dehors de la plage spécifiée seront acceptées et stockées.

Création d'enregistrements avec des valeurs numériques

Lors de la création d'un nouvel enregistrement avec des valeurs numériques :

mutation CreateRecordWithNumber {
  createTodo(input: {
    title: "Performance Review"
    todoListId: "list_123"
    customFields: [{
      customFieldId: "score_field_id"
      number: 85.5
    }]
  }) {
    id
    title
    customFields {
      id
      customField {
        name
        type
        min
        max
        prefix
      }
      number
      value
    }
  }
}

Formats d'entrée pris en charge

Lors de la création d'enregistrements, utilisez le paramètre number (pas value) dans le tableau des champs personnalisés :

customFields: [{
  customFieldId: "field_id"
  number: 42.5  # Use number parameter, not value
}]

Champs de réponse

Réponse TodoCustomField

Champ Type Description
id String! Identifiant unique pour la valeur du champ
customField CustomField! La définition du champ personnalisé
number Float La valeur numérique
todo Todo! L'enregistrement auquel cette valeur appartient
createdAt DateTime! Quand la valeur a été créée
updatedAt DateTime! Quand la valeur a été modifiée pour la dernière fois

Réponse CustomField

Champ Type Description
id String! Identifiant unique pour la définition du champ
name String! Nom d'affichage du champ
type CustomFieldType! Toujours NUMBER
min Float Valeur minimale autorisée
max Float Valeur maximale autorisée
prefix String Préfixe d'affichage
description String Texte d'aide

Remarque : Si la valeur numérique n'est pas définie, le champ number sera null.

Filtrage et requêtes

Les champs numériques prennent en charge un filtrage numérique complet :

query FilterByNumberRange {
  todos(filter: {
    customFields: [{
      customFieldId: "score_field_id"
      operator: GTE
      number: 80
    }]
  }) {
    id
    title
    customFields {
      number
    }
  }
}

Opérateurs pris en charge

Opérateur Description Exemple
EQ Égal à number = 42
NE Différent de number ≠ 42
GT Supérieur à number > 42
GTE Supérieur ou égal number ≥ 42
LT Inférieur à number < 42
LTE Inférieur ou égal number ≤ 42
IN Dans le tableau number in [1, 2, 3]
NIN Pas dans le tableau number not in [1, 2, 3]
IS Est nul/n'est pas nul number is null

Filtrage par plage

query FilterByRange {
  todos(filter: {
    customFields: [{
      customFieldId: "priority_field_id"
      operator: GTE
      number: 5
    }]
  }) {
    id
    title
  }
}

Formatage d'affichage

Avec préfixe

Si un préfixe est défini, il sera affiché :

Valeur Préfixe Affichage
42 "#" #42
100 "~" ~100
3.14 "π" π3.14

Précision décimale

Les nombres conservent leur précision décimale :

Entrée Stocké Affiché
42 42.0 42
42.5 42.5 42.5
42.123 42.123 42.123

Permissions requises

Action Permission requise
Create number field Company role: OWNER or ADMIN
Update number field Company role: OWNER or ADMIN
Set number value Any company role (OWNER, ADMIN, MEMBER, CLIENT) or custom project role with edit permission
View number value Standard record view permissions
Use in filtering Standard record view permissions

Réponses d'erreur

Format de nombre invalide

{
  "errors": [{
    "message": "Invalid number format",
    "extensions": {
      "code": "CUSTOM_FIELD_VALUE_PARSE_ERROR"
    }
  }]
}

Champ non trouvé

{
  "errors": [{
    "message": "Custom field was not found.",
    "extensions": {
      "code": "CUSTOM_FIELD_NOT_FOUND"
    }
  }]
}

Remarque : Les erreurs de validation min/max ne se produisent PAS côté serveur. La validation des contraintes doit être mise en œuvre dans votre application frontend.

Pas un nombre

{
  "errors": [{
    "message": "Value is not a valid number",
    "extensions": {
      "code": "CUSTOM_FIELD_VALUE_PARSE_ERROR"
    }
  }]
}

Meilleures pratiques

Conception des contraintes

  • Définissez des valeurs min/max réalistes pour le guidage UI
  • Implémentez une validation côté client pour appliquer les contraintes
  • Utilisez des contraintes pour fournir des retours d'information aux utilisateurs dans les formulaires
  • Considérez si les valeurs négatives sont valides pour votre cas d'utilisation

Précision des valeurs

  • Utilisez une précision décimale appropriée pour vos besoins
  • Considérez l'arrondi à des fins d'affichage
  • Soyez cohérent avec la précision à travers les champs connexes

Amélioration de l'affichage

  • Utilisez des préfixes significatifs pour le contexte
  • Considérez les unités dans les noms de champs (ex : "Poids (kg)")
  • Fournissez des descriptions claires pour les règles de validation

Cas d'utilisation courants

  1. Systèmes de notation

    • Évaluations de performance
    • Scores de qualité
    • Niveaux de priorité
    • Évaluations de satisfaction client
  2. Mesures

    • Quantités et montants
    • Dimensions et tailles
    • Durées (au format numérique)
    • Capacités et limites
  3. Métriques commerciales

    • Chiffres d'affaires
    • Taux de conversion
    • Allocations budgétaires
    • Chiffres cibles
  4. Données techniques

    • Numéros de version
    • Valeurs de configuration
    • Métriques de performance
    • Paramètres de seuil

Fonctionnalités d'intégration

Avec des graphiques et des tableaux de bord

  • Utilisez des champs NUMÉRIQUES dans les calculs de graphiques
  • Créez des visualisations numériques
  • Suivez les tendances au fil du temps

Avec des automatisations

  • Déclenchez des actions basées sur des seuils numériques
  • Mettez à jour des champs connexes en fonction des changements numériques
  • Envoyez des notifications pour des valeurs spécifiques

Avec des recherches

  • Agrégez des nombres à partir d'enregistrements connexes
  • Calculez des totaux et des moyennes
  • Trouvez des valeurs min/max à travers les relations

Avec des graphiques

  • Créez des visualisations numériques
  • Suivez les tendances au fil du temps
  • Comparez des valeurs à travers des enregistrements

Limitations

  • Pas de validation côté serveur des contraintes min/max
  • Validation côté client requise pour l'application des contraintes
  • Pas de formatage monétaire intégré (utilisez le type MONNAIE à la place)
  • Pas de symbole de pourcentage automatique (utilisez le type POURCENT à la place)
  • Pas de capacités de conversion d'unités
  • Précision décimale limitée par le type Decimal de la base de données
  • Pas d'évaluation de formules mathématiques dans le champ lui-même

Ressources connexes

Assistant IA

Les réponses sont générées par l'IA et peuvent contenir des erreurs.

Comment puis-je vous aider ?

Posez-moi toutes vos questions sur Blue ou cette documentation.

Entrez pour envoyer • Maj+Entrée pour une nouvelle ligne • ⌘I pour ouvrir