So beheben Sie INVALID_FIELD in Salesforce-Deployments
Eine SOQL-Abfrage, Formel oder Automatisierung verweist auf einen Feld-API-Namen, der auf diesem Objekt in der Ziel-Org nicht existiert.
Tritt auf bei: Apex-Kompilierung oder SOQL-Ausführung, meist innerhalb von TestläufenWas das bedeutet
INVALID_FIELD bedeutet, dass Salesforce den in einer SOQL-Abfrage, Formel oder Automatisierung verwendeten Feldnamen auf dem abgefragten Objekt in der Org, in der das Deployment oder der Test läuft, nicht finden konnte. Anders als MISSING_FIELD, das spezifisch für Listenansichten und Berichte ist, taucht INVALID_FIELD meist innerhalb von Apex-Tests, SOQL-Abfragen oder Formelfeldern bei der Kompilierung oder Ausführung auf.
Da Apex zur Deployzeit gegen das aktuelle Schema der Org kompiliert, lässt eine Abfrage, die auf ein noch nicht angekommenes Feld verweist, die Kompilierung der gesamten Klasse fehlschlagen, nicht nur der einen Testmethode, weshalb dieser Fehler oft weit mehr Tests blockiert als den einen, der das Feld tatsächlich benötigt.
Häufige Ursachen
Die Lösung
- Das Feld vor dem Code deployen, der es abfragtOrdnen Sie das Deployment des Feldes vor jedem Apex oder Flow ein, der es in einer SOQL-Abfrage referenziert.
- Jede Referenz nach einer Umbenennung aktualisierenDurchsuchen Sie Apex, Flow und Formelfelder nach dem alten API-Namen und ersetzen Sie ihn durch den aktuellen.
grep -rln "Legacy_Score__c" force-app/main/default/ - Bestätigen, dass das Feld zum abgefragten Objekt gehörtPrüfen Sie das Objekt des Feldes in Setup gegen das Objekt in der SOQL-FROM-Klausel oder dem Formelkontext.
Wie Serpent das verhindert
Serpent AI grenzt eine Aufgabe anhand von allem ab, was sie berührt, einschließlich der Felder, die ein Apex-Test oder Flow abfragt, sodass ein Feld, von dem ein Test abhängt, in derselben Aufgabe ausgeliefert wird statt in einer späteren. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

Prävention
Verwandte Fehler
INVALID_FIELD, beantwortet
Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.
Einrichtung in unter 15 Minuten. Keine DevOps-Einstellung nötig.
