Удалите пользовательские поля из проектов с надлежащей очисткой и каскадными эффектами


Удалить пользовательское поле

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

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

mutation DeleteCustomField {
  deleteCustomField(id: "field_abc123")
}

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

mutation DeleteCustomFieldWithResponse {
  deleteCustomField(id: "field_abc123")
}

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

Параметр Тип Обязательный Описание
id String! ✅ Да Уникальный идентификатор пользовательского поля для удаления

Поля ответа

Поле Тип Описание
deleteCustomField Boolean! Всегда возвращает true, когда удаление успешно

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

Только владельцы проектов и администраторы могут удалять пользовательские поля.

Роль Может удалять пользовательские поля
OWNER ✅ Да
ADMIN ✅ Да
MEMBER ❌ Нет
CLIENT ❌ Нет

Каскадные эффекты

Когда пользовательское поле удаляется, автоматически выполняются следующие операции очистки:

Очистка данных

  • Значения пользовательского поля - Все значения для этого поля удаляются из всех записей
  • Опции поля - Все варианты выпадающего списка и конфигурации удаляются
  • История активности - Все записи активности, связанные с этим полем, удаляются
  • Конфигурации поиска - Все ссылки на поля поиска очищаются

Специальная обработка для полей кнопок

Если удаляемое поле имеет тип BUTTON, происходит дополнительная очистка:

  • Автоматизация - Все автоматизации, вызванные этой кнопкой, удаляются
  • История автоматизации - Удаляется связанная активность автоматизации

Обновления в реальном времени

  • Диаграммы - Диаграммы проекта помечаются для обновления, чтобы отразить изменения
  • Формулы - Все поля формул в проекте пересчитываются
  • Отслеживание времени - Расчеты продолжительности времени обновляются
  • Подписки - Уведомления в реальном времени отправляются подключенным клиентам
  • Webhook'и - Интеграционные webhook'и срабатывают при событиях удаления

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

Пользовательское поле не найдено

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

Недостаточно разрешений

{
  "errors": [{
    "message": "You don't have permission to perform this action",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Важные заметки

Постоянное удаление

  • Нет отмены - Удаленные пользовательские поля не могут быть восстановлены
  • Потеря данных - Все значения полей во всех записях навсегда удаляются
  • Немедленный эффект - Изменения вступают в силу немедленно для всех пользователей проекта

Соображения по производительности

  • Большие проекты - Удаление может занять больше времени в проектах с большим количеством записей
  • Пересчет формул - Проекты со сложными формулами могут испытывать кратковременные задержки в обработке
  • Обновления диаграмм - Диаграммы на панели инструментов будут обновлены, чтобы отразить изменения

Рекомендации

  1. Резервное копирование данных - Экспортируйте важные значения полей перед удалением
  2. Сообщите об изменениях - Уведомите членов команды перед удалением полей
  3. Проверьте зависимости - Убедитесь, что никакие автоматизации или формулы не зависят от поля
  4. Обновите отчеты - Обновите любые отчеты, которые ссылаются на удаленное поле

Связанные операции

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

Удаление неиспользуемых полей

# First, list fields to identify unused ones
query ListCustomFields {
  customFields(projectId: "project_123") {
    id
    name
    type
    createdAt
    # Check usage in records
  }
}

# Then delete the unused field
mutation DeleteUnusedField {
  deleteCustomField(id: "field_to_remove")
}

Очистка тестовых полей

# Remove fields created during testing
mutation CleanupTestFields {
  field1: deleteCustomField(id: "test_field_1")
  field2: deleteCustomField(id: "test_field_2")
  field3: deleteCustomField(id: "test_field_3")
}

Реструктуризация полей проекта

# When reorganizing field structure
mutation RestructureFields {
  # Delete old fields
  deleteOldPriorityField: deleteCustomField(id: "old_priority_field")
  deleteOldStatusField: deleteCustomField(id: "old_status_field")
  
  # Note: Create new fields in separate mutations
}

События Webhook

Когда пользовательское поле удаляется, срабатывает следующее событие webhook:

{
  "event": "CUSTOM_FIELD_DELETED",
  "projectId": "project_123",
  "timestamp": "2024-01-15T10:30:00Z",
  "previousValue": {
    "id": "field_abc123",
    "name": "Priority Level",
    "type": "SELECT_SINGLE",
    "projectId": "project_123"
  },
  "currentValue": null
}

AI Ассистент

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

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

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

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