So beheben Sie DUPLICATE_EXTERNAL_ID in Salesforce-Deployments
Ein Upsert trifft auf mehr als einen bestehenden Datensatz mit demselben Wert der externen ID, sodass Salesforce nicht weiß, welcher aktualisiert werden soll.
Tritt auf bei: Upsert-DML bei Datenladevorgängen, Integrationen und in ApexWas das bedeutet
DUPLICATE_EXTERNAL_ID bedeutet, dass ein Upsert-Aufruf mehr als einen Datensatz in der Ziel-Org gefunden hat, der denselben Wert im abgeglichenen Feld der externen ID teilt. Upsert setzt voraus, dass dieses Feld pro Datensatz wirklich eindeutig ist; existieren Duplikate, hat Salesforce keine Möglichkeit zu entscheiden, welcher Datensatz durch die eingehenden Daten aktualisiert werden soll, und lehnt die Operation daher ab, statt zu raten.
Dies ist rein ein Datenzustandsproblem in der Ziel-Org, kein Fehler in der eingehenden Payload selbst; derselbe Upsert-Aufruf würde erfolgreich sein, sobald die Duplikatwerte in der Ziel-Org bereinigt sind.
Häufige Ursachen
Die Lösung
- Datensätze mit derselben externen ID zuerst deduplizierenFragen Sie die Ziel-Org nach dem betreffenden Wert ab, entscheiden Sie, welcher Datensatz maßgeblich ist, und führen Sie den Rest zusammen oder löschen Sie ihn, bevor Sie es erneut versuchen.
SELECT External_Id__c, COUNT(Id) FROM Account GROUP BY External_Id__c HAVING COUNT(Id) > 1 - Aktivieren Sie das Attribut „Unique“ für das FeldBearbeiten Sie die Definition des Felds der externen ID, damit Salesforce künftig Eindeutigkeit erzwingt und neue Duplikate beim Einfügen blockiert.
- Einen spezifischeren zusammengesetzten Schlüssel verwendenWenn zwei tatsächlich unterschiedliche Datensätze denselben Basiswert teilen können, kombinieren Sie ihn mit einem zweiten Feld, damit der Abgleich eindeutig ist.
Wie Serpent das verhindert
Serpent hält jede Sandbox und Scratch Org mit derselben Quelle synchron, sodass sich doppelte Werte externer IDs aus veralteten, manuell geladenen Daten zwischen Umgebungen deutlich seltener ansammeln. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

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