Создайте числовые поля для хранения числовых значений с необязательными ограничениями по минимальному/максимальному значению и форматированием префикса


Пользовательские числовые поля позволяют вам хранить числовые значения для записей. Они поддерживают ограничения валидации, десятичную точность и могут использоваться для количеств, оценок, измерений или любых числовых данных, которые не требуют специального форматирования.

Простой пример

Создайте простое числовое поле:

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

Расширенный пример

Создайте числовое поле с ограничениями и префиксом:

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
  }
}

Входные параметры

CreateCustomFieldInput

Параметр Тип Обязательный Описание
name String! ✅ Да Отображаемое имя числового поля
type CustomFieldType! ✅ Да Должно быть NUMBER
projectId String! ✅ Да ID проекта, в котором нужно создать поле
min Float Нет Ограничение минимального значения (только для UI)
max Float Нет Ограничение максимального значения (только для UI)
prefix String Нет Префикс отображения (например, "#", "~", "$")
description String Нет Текст помощи, отображаемый пользователям

Установка числовых значений

Числовые поля хранят десятичные значения с необязательной валидацией:

Простое числовое значение

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

Целочисленное значение

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

Параметры SetTodoCustomFieldInput

Параметр Тип Обязательный Описание
todoId String! ✅ Да ID записи для обновления
customFieldId String! ✅ Да ID пользовательского числового поля
number Float Нет Числовое значение для хранения

Ограничения значений

Ограничения Min/Max (Руководство по UI)

Важно: Ограничения min/max хранятся, но НЕ применяются на стороне сервера. Они служат руководством для UI приложений.

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
  }
}

Требуется валидация на стороне клиента: Приложения на стороне клиента должны реализовать логику валидации для применения ограничений min/max.

Поддерживаемые типы значений

Тип Пример Описание
Integer 42 Целые числа
Decimal 42.5 Числа с десятичными знаками
Negative -10 Отрицательные значения (если нет ограничения min)
Zero 0 Нулевое значение

Примечание: Ограничения min/max НЕ проверяются на стороне сервера. Значения вне указанного диапазона будут приняты и сохранены.

Создание записей с числовыми значениями

При создании новой записи с числовыми значениями:

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
    }
  }
}

Поддерживаемые форматы ввода

При создании записей используйте параметр number (не value) в массиве пользовательских полей:

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

Поля ответа

Ответ TodoCustomField

Поле Тип Описание
id String! Уникальный идентификатор для значения поля
customField CustomField! Определение пользовательского поля
number Float Числовое значение
todo Todo! Запись, к которой принадлежит это значение
createdAt DateTime! Когда значение было создано
updatedAt DateTime! Когда значение было в последний раз изменено

Ответ CustomField

Поле Тип Описание
id String! Уникальный идентификатор для определения поля
name String! Отображаемое имя поля
type CustomFieldType! Всегда NUMBER
min Float Минимально допустимое значение
max Float Максимально допустимое значение
prefix String Префикс отображения
description String Текст помощи

Примечание: Если числовое значение не установлено, поле number будет null.

Фильтрация и запросы

Числовые поля поддерживают комплексную числовую фильтрацию:

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

Поддерживаемые операторы

Оператор Описание Пример
EQ Равно number = 42
NE Не равно number ≠ 42
GT Больше чем number > 42
GTE Больше или равно number ≥ 42
LT Меньше чем number < 42
LTE Меньше или равно number ≤ 42
IN В массиве number in [1, 2, 3]
NIN Не в массиве number not in [1, 2, 3]
IS Является null/не является null number is null

Фильтрация по диапазону

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

Форматирование отображения

С префиксом

Если установлен префикс, он будет отображаться:

Значение Префикс Отображение
42 "#" #42
100 "~" ~100
3.14 "π" π3.14

Десятичная точность

Числа сохраняют свою десятичную точность:

Ввод Хранится Отображается
42 42.0 42
42.5 42.5 42.5
42.123 42.123 42.123

Необходимые разрешения

Действие Необходимое разрешение
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

Ответы на ошибки

Неверный формат числа

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

Поле не найдено

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

Примечание: Ошибки валидации min/max не происходят на стороне сервера. Валидация ограничений должна быть реализована в вашем приложении на стороне клиента.

Не число

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

Рекомендации по лучшим практикам

Проектирование ограничений

  • Установите реалистичные значения min/max для руководства по UI
  • Реализуйте валидацию на стороне клиента для применения ограничений
  • Используйте ограничения для предоставления обратной связи пользователям в формах
  • Рассмотрите, являются ли отрицательные значения допустимыми для вашего случая использования

Точность значений

  • Используйте соответствующую десятичную точность для ваших нужд
  • Рассмотрите округление для целей отображения
  • Будьте последовательны с точностью по связанным полям

Улучшение отображения

  • Используйте значимые префиксы для контекста
  • Рассмотрите единицы измерения в названиях полей (например, "Вес (кг)")
  • Предоставьте четкие описания для правил валидации

Общие случаи использования

  1. Системы оценки

    • Оценки производительности
    • Оценки качества
    • Уровни приоритета
    • Оценки удовлетворенности клиентов
  2. Измерения

    • Количества и суммы
    • Размеры и габариты
    • Продолжительности (в числовом формате)
    • Вместимости и лимиты
  3. Бизнес-метрики

    • Показатели дохода
    • Уровни конверсии
    • Распределения бюджета
    • Целевые числа
  4. Технические данные

    • Номера версий
    • Значения конфигурации
    • Показатели производительности
    • Настройки порогов

Функции интеграции

С графиками и панелями мониторинга

  • Используйте числовые поля в расчетах графиков
  • Создавайте числовые визуализации
  • Отслеживайте тенденции с течением времени

С автоматизацией

  • Запускайте действия на основе порогов чисел
  • Обновляйте связанные поля на основе изменений чисел
  • Отправляйте уведомления для конкретных значений

С поисками

  • Агрегируйте числа из связанных записей
  • Рассчитывайте суммы и средние значения
  • Находите значения min/max по связям

С графиками

  • Создавайте числовые визуализации
  • Отслеживайте тенденции с течением времени
  • Сравнивайте значения по записям

Ограничения

  • Нет валидации на стороне сервера для ограничений min/max
  • Требуется валидация на стороне клиента для применения ограничений
  • Нет встроенного форматирования валюты (используйте тип CURRENCY вместо)
  • Нет автоматического символа процента (используйте тип PERCENT вместо)
  • Нет возможностей конвертации единиц
  • Десятичная точность ограничена типом Decimal базы данных
  • Нет оценки математических формул в самом поле

Связанные ресурсы

AI Ассистент

Ответы генерируются с использованием ИИ и могут содержать ошибки.

Как я могу вам помочь?

Спросите меня о чем угодно, связанном с Blue или этой документацией.

Введите для отправки • Shift+Enter для новой строки • ⌘I для открытия