Удалите пользовательские поля из проектов с надлежащей очисткой и каскадными эффектами
Удалить пользовательское поле
Постоянно удаляет пользовательское поле из проекта вместе со всеми связанными данными, значениями и конфигурациями. Эта операция не может быть отменена и повлияет на все записи, использующие это поле.
Простой пример
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"
}
}]
}
Важные заметки
Постоянное удаление
- Нет отмены - Удаленные пользовательские поля не могут быть восстановлены
- Потеря данных - Все значения полей во всех записях навсегда удаляются
- Немедленный эффект - Изменения вступают в силу немедленно для всех пользователей проекта
Соображения по производительности
- Большие проекты - Удаление может занять больше времени в проектах с большим количеством записей
- Пересчет формул - Проекты со сложными формулами могут испытывать кратковременные задержки в обработке
- Обновления диаграмм - Диаграммы на панели инструментов будут обновлены, чтобы отразить изменения
Рекомендации
- Резервное копирование данных - Экспортируйте важные значения полей перед удалением
- Сообщите об изменениях - Уведомите членов команды перед удалением полей
- Проверьте зависимости - Убедитесь, что никакие автоматизации или формулы не зависят от поля
- Обновите отчеты - Обновите любые отчеты, которые ссылаются на удаленное поле
Связанные операции
- Используйте Список пользовательских полей, чтобы найти идентификаторы полей
- Рассмотрите возможность Создания пользовательского поля, чтобы воссоздать аналогичные поля
- Просмотрите Значения пользовательских полей, чтобы понять влияние на данные
Общие случаи использования
Удаление неиспользуемых полей
# 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
}