Hoe je INVALID_ID_FIELD in Salesforce-implementaties oplost
Een record-ID dat aan een lookup of DML-bewerking is doorgegeven is misvormd, heeft de verkeerde lengte, of hoort bij het verkeerde object.
Komt voor tijdens: DML op runtime en lookup-toewijzing, niet bij metadata-implementatieWat het betekent
INVALID_ID_FIELD betekent dat het ID dat Salesforce ontving niet oplost naar een geldig record voor het veld waaraan het werd doorgegeven. Dit is bijna altijd een hardcoded of verkeerd verwerkt ID: de verkeerde lengte, de verkeerde hoofdlettering, of een ID dat bij een ander object hoort dan het veld verwacht.
Elk Salesforce-record-ID draagt een drieledig sleutelvoorvoegsel dat het object identificeert, 001 voor Account, 003 voor Contact, enzovoort, dus deze fout is vaak terug te voeren op een ID van het verkeerde object dat wordt toegewezen aan een lookup die een ander object verwacht.
Veelvoorkomende oorzaken
De oplossing
- Gebruik altijd het 18-tekens IDStandaardiseer in code op het niet-hoofdlettergevoelige 18-tekens record-ID en hardcode nooit een 15-tekens versie.
- Zoek in plaats daarvan op een extern IDVervang hardcoded record-ID's door een query op een stabiel extern ID of uniek veld, zodat de verwijzing per organisatie correct oplost.
- Controleer of het objecttype overeenkomtControleer het drieledige sleutelvoorvoegsel van het ID tegen het object dat het veld verwacht, voordat je het doorgeeft.
Id anyId = '001XXXXXXXXXXXXXXX'; String prefix = String.valueOf(anyId).left(3); System.debug(Schema.getGlobalDescribe().values());
Hoe Serpent dit voorkomt
Serpent AI lost verwijzingen op via een business key in plaats van een ruw record-ID bij het verplaatsen van wijzigingen tussen omgevingen, zodat dit type fout een implementatie nooit bereikt. Zie de bibliotheek met Salesforce-implementatiefouten.

Preventie
Gerelateerde fouten
INVALID_ID_FIELD, uitgelegd
Begin gratis. Geen creditcard, geen installatie, geen verplichtingen.
In minder dan 15 minuten ingericht. Geen DevOps-aanwerving nodig.
