Ta bort anpassade fält från projekt med korrekt städning och kaskadeffekter
Ta bort ett anpassat fält
Tar permanent bort ett anpassat fält från ett projekt tillsammans med all associerad data, värden och konfigurationer. Denna åtgärd kan inte ångras och kommer att påverka alla poster som använder detta fält.
Grundläggande exempel
mutation DeleteCustomField {
deleteCustomField(id: "field_abc123")
}
Avancerat exempel
mutation DeleteCustomFieldWithResponse {
deleteCustomField(id: "field_abc123")
}
Indata parametrar
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
id |
String! | ✅ Ja | Den unika identifieraren för det anpassade fältet som ska tas bort |
Svarsfält
Fält | Typ | Beskrivning |
---|---|---|
deleteCustomField |
Boolean! | Återger alltid true när borttagning lyckas |
Obligatoriska behörigheter
Endast projektägare och administratörer kan ta bort anpassade fält.
Roll | Kan ta bort anpassade fält |
---|---|
OWNER |
✅ Ja |
ADMIN |
✅ Ja |
MEMBER |
❌ Nej |
CLIENT |
❌ Nej |
Kaskadeffekter
När ett anpassat fält tas bort, sker följande städåtgärder automatiskt:
Datastädning
- Värden för anpassade fält - Alla värden för detta fält tas bort från alla poster
- Fältalternativ - Alla rullgardinsalternativ och konfigurationer tas bort
- Aktivitetshistorik - Alla aktivitetsregister relaterade till detta fält tas bort
- Uppslagskonfigurationer - Eventuella referenser till uppslagsfält städas
Särskild hantering för knappfält
Om det borttagna fältet är av typ BUTTON
, sker ytterligare städning:
- Automatiseringar - Alla automatiseringar som utlöses av denna knapp tas bort
- Automatiseringshistorik - Relaterad automatiseringsaktivitet tas bort
Realtidsuppdateringar
- Diagram - Projektdiagram markeras för uppdatering för att återspegla ändringarna
- Formler - Alla formelfält i projektet beräknas om
- Tidsuppföljning - Beräkningar av tidslängd uppdateras
- Prenumerationer - Realtidsnotifikationer skickas till anslutna klienter
- Webhooks - Integrationswebhooks utlöses med borttagningshändelser
Felmeddelanden
Anpassat fält hittades inte
{
"errors": [{
"message": "Custom field was not found.",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Otillräckliga behörigheter
{
"errors": [{
"message": "You don't have permission to perform this action",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Viktiga anteckningar
Permanent borttagning
- Ingen ångra - Borttagna anpassade fält kan inte återställas
- Dataförlust - Alla fältvärden över alla poster tas permanent bort
- Omedelbar effekt - Ändringar träder i kraft omedelbart för alla projektanvändare
Prestandaöverväganden
- Stora projekt - Borttagning kan ta längre tid i projekt med många poster
- Omberäkning av formler - Projekt med komplexa formler kan uppleva korta bearbetningsfördröjningar
- Diagramuppdateringar - Instrumentbrädesdiagram kommer att uppdateras för att återspegla ändringarna
Bästa praxis
- Säkerhetskopiera data - Exportera viktiga fältvärden innan borttagning
- Kommunicera ändringar - Informera teammedlemmar innan fält tas bort
- Kontrollera beroenden - Verifiera att inga automatiseringar eller formler är beroende av fältet
- Granska rapporter - Uppdatera eventuella rapporter som refererar till det borttagna fältet
Relaterade åtgärder
- Använd Lista anpassade fält för att hitta fält-ID:n
- Överväg Skapa anpassat fält för att återskapa liknande fält
- Granska Värden för anpassade fält för att förstå datainverkan
Vanliga användningsfall
Ta bort oanvända fält
# 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")
}
Rensa upp testfält
# 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")
}
Omstrukturera projektfält
# 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-händelser
När ett anpassat fält tas bort, utlöses följande webhook-händelse:
{
"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
}