So beheben Sie INVALID_ID_FIELD in Salesforce-Bereitstellungen
Eine an eine Lookup- oder DML-Operation übergebene Datensatz-ID ist fehlerhaft, hat die falsche Länge oder gehört zum falschen Objekt.
Tritt auf bei: DML zur Laufzeit und Lookup-Zuweisung, nicht beim Metadaten-DeploymentWas das bedeutet
INVALID_ID_FIELD bedeutet, dass die von Salesforce empfangene ID nicht zu einem gültigen Datensatz für das Feld aufgelöst werden kann, in das sie übergeben wurde. Das ist fast immer eine fest codierte oder falsch verarbeitete ID: die falsche Länge, die falsche Groß-/Kleinschreibung oder eine ID, die zu einem anderen Objekt gehört als vom Feld erwartet.
Jede Salesforce-Datensatz-ID trägt ein dreistelliges Schlüsselpräfix, das ihr Objekt identifiziert, 001 für Account, 003 für Contact, und so weiter, sodass dieser Fehler häufig auf eine ID des falschen Objekts zurückzuführen ist, die einem Lookup zugewiesen wird, der ein anderes erwartet.
Häufige Ursachen
Die Lösung
- Immer die 18-stellige ID verwendenStandardisieren Sie im Code auf die groß-/kleinschreibungsunabhängige 18-stellige Datensatz-ID und codieren Sie niemals eine 15-stellige fest ein.
- Stattdessen über eine externe ID suchenErsetzen Sie fest codierte Datensatz-IDs durch eine Abfrage auf eine stabile externe ID oder ein eindeutiges Feld, damit sich die Referenz je Org korrekt auflöst.
- Prüfen, ob der Objekttyp übereinstimmtVergleichen Sie das dreistellige Schlüsselpräfix der ID mit dem vom Feld erwarteten Objekt, bevor Sie sie übergeben.
Id anyId = '001XXXXXXXXXXXXXXX'; String prefix = String.valueOf(anyId).left(3); System.debug(Schema.getGlobalDescribe().values());
Wie Serpent das verhindert
Serpent AI löst Referenzen beim Verschieben von Änderungen zwischen Umgebungen über einen Business Key statt über die rohe Datensatz-ID auf, sodass diese Fehlerklasse ein Deployment erst gar nicht erreicht. Siehe die Bibliothek der Salesforce-Bereitstellungsfehler.

Prävention
Verwandte Fehler
INVALID_ID_FIELD, erklärt
Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.
In unter 15 Minuten eingerichtet. Keine DevOps-Einstellung nötig.
