Menghapus bidang kustom dari proyek dengan pembersihan yang tepat dan efek berantai
Hapus Bidang Kustom
Menghapus secara permanen bidang kustom dari proyek beserta semua data, nilai, dan konfigurasi yang terkait. Operasi ini tidak dapat dibatalkan dan akan mempengaruhi semua catatan yang menggunakan bidang ini.
Contoh Dasar
mutation DeleteCustomField {
deleteCustomField(id: "field_abc123")
}
Contoh Lanjutan
mutation DeleteCustomFieldWithResponse {
deleteCustomField(id: "field_abc123")
}
Parameter Input
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
id |
String! | ✅ Ya | Pengidentifikasi unik dari bidang kustom yang akan dihapus |
Bidang Respons
Bidang | Tipe | Deskripsi |
---|---|---|
deleteCustomField |
Boolean! | Selalu mengembalikan true ketika penghapusan berhasil |
Izin yang Diperlukan
Hanya pemilik proyek dan administrator yang dapat menghapus bidang kustom.
Peran | Dapat Menghapus Bidang Kustom |
---|---|
OWNER |
✅ Ya |
ADMIN |
✅ Ya |
MEMBER |
❌ Tidak |
CLIENT |
❌ Tidak |
Efek Berantai
Ketika bidang kustom dihapus, operasi pembersihan berikut terjadi secara otomatis:
Pembersihan Data
- Nilai bidang kustom - Semua nilai untuk bidang ini dihapus dari semua catatan
- Opsi bidang - Semua opsi dropdown dan konfigurasi dihapus
- Riwayat aktivitas - Semua catatan aktivitas yang terkait dengan bidang ini dihapus
- Konfigurasi pencarian - Referensi bidang pencarian dibersihkan
Penanganan Khusus untuk Bidang Tombol
Jika bidang yang dihapus adalah tipe BUTTON
, pembersihan tambahan terjadi:
- Automasi - Semua automasi yang dipicu oleh tombol ini dihapus
- Riwayat automasi - Aktivitas automasi terkait dihapus
Pembaruan Waktu Nyata
- Grafik - Grafik proyek ditandai untuk diperbarui agar mencerminkan perubahan
- Rumus - Semua bidang rumus dalam proyek dihitung ulang
- Pelacakan waktu - Perhitungan durasi waktu diperbarui
- Langganan - Notifikasi waktu nyata dikirim ke klien yang terhubung
- Webhook - Webhook integrasi dipicu dengan peristiwa penghapusan
Respons Kesalahan
Bidang Kustom Tidak Ditemukan
{
"errors": [{
"message": "Custom field was not found.",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Izin Tidak Cukup
{
"errors": [{
"message": "You don't have permission to perform this action",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Catatan Penting
Penghapusan Permanen
- Tidak ada pembatalan - Bidang kustom yang dihapus tidak dapat dipulihkan
- Kehilangan data - Semua nilai bidang di seluruh catatan dihapus secara permanen
- Efek langsung - Perubahan berlaku segera di seluruh pengguna proyek
Pertimbangan Kinerja
- Proyek besar - Penghapusan mungkin memakan waktu lebih lama di proyek dengan banyak catatan
- Perhitungan ulang rumus - Proyek dengan rumus kompleks mungkin mengalami penundaan pemrosesan singkat
- Pembaruan grafik - Grafik dasbor akan menyegarkan untuk mencerminkan perubahan
Praktik Terbaik
- Cadangkan data - Ekspor nilai bidang penting sebelum penghapusan
- Komunikasikan perubahan - Beri tahu anggota tim sebelum menghapus bidang
- Periksa ketergantungan - Verifikasi tidak ada automasi atau rumus yang bergantung pada bidang
- Tinjau laporan - Perbarui laporan yang merujuk pada bidang yang dihapus
Operasi Terkait
- Gunakan Daftar Bidang Kustom untuk menemukan ID bidang
- Pertimbangkan Buat Bidang Kustom untuk membuat ulang bidang serupa
- Tinjau Nilai Bidang Kustom untuk memahami dampak data
Kasus Penggunaan Umum
Menghapus Bidang yang Tidak Digunakan
# 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")
}
Membersihkan Bidang Uji
# 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")
}
Restrukturisasi Bidang Proyek
# 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
}
Peristiwa Webhook
Ketika bidang kustom dihapus, peristiwa webhook berikut dipicu:
{
"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
}