Hoe je MISSING_FIELD in Salesforce-implementaties oplost

Een lijstweergave, rapport of layout verwijst naar een veld dat niet bestaat op het object in de doelorganisatie.

Komt voor tijdens: validatie van metadata-implementatie, specifiek voor declaratieve UI-componenten

Wat het betekent

MISSING_FIELD verschijnt wanneer een component, meestal een lijstweergave, rapport of paginalayout, verwijst naar een veld-API-naam die Salesforce niet kan vinden op het object in de doelorganisatie. Het veld is daar ofwel nooit geïmplementeerd, is hernoemd, of is verwijderd nadat de afhankelijke component was aangemaakt.

Het is de declaratieve, implementatietijd-tegenhanger van INVALID_FIELD, dat verschijnt in SOQL en Apex; beide zijn terug te voeren op een veldverwijzing die het schema van de doelorganisatie momenteel niet ondersteunt, alleen in verschillende metadatatypen.

Diagnose

Veelvoorkomende oorzaken

Veld hernoemd of verwijderd
Een aangepast veld is hernoemd of verwijderd, maar lijstweergaven, rapporten of layouts die naar de oude API-naam verwijzen zijn nooit bijgewerkt.
Veld apart geïmplementeerd
Het aangepaste veld bevindt zich in een andere implementatie of pakket en heeft de doelorganisatie nog niet bereikt, waardoor afhankelijke componenten worden geïmplementeerd voordat het bestaat.
Typfout in de veld-API-naam
De verwijzing gebruikt het verkeerde objectvoorvoegsel of mist het __c-achtervoegsel op een aangepast veld.

De oplossing

  1. Neem het veld op in dezelfde implementatie
    Bundel het aangepaste veld met de lijstweergave, het rapport of de layout die ervan afhankelijk is, zodat beide samen in de doelorganisatie terechtkomen.
  2. Genereer afhankelijke componenten opnieuw na een hernoeming
    Sla lijstweergaven en rapporten die ernaar verwijzen opnieuw op of exporteer ze opnieuw nadat een veld is hernoemd of opnieuw is aangemaakt.
  3. Controleer de API-naam nogmaals
    Bevestig dat de veld-API-naam exact correct is gespeld, inclusief hoofdlettergebruik en het __c-achtervoegsel, op het juiste object.
    sf data query --query "SELECT QualifiedApiName FROM FieldDefinition WHERE EntityDefinition.QualifiedApiName = 'Account'" --target-org myOrgAlias
In de praktijk

Hoe Serpent dit voorkomt

Serpent AI baseert de scope van taken op afhankelijkheden, niet alleen de component die je hebt aangeraakt, zodat een lijstweergave of rapport automatisch wordt gebundeld met het veld dat het nodig heeft. Zie de bibliotheek met Salesforce-implementatiefouten.

Metadata en data in één deploymentflow in Serpent

Preventie

Implementeer lijstweergaven en rapporten als onderdeel van dezelfde taak als het veld waarnaar ze verwijzen
Splits een veld en de daarvan afhankelijke lijstweergave, rapporttype of layout nooit op over aparte implementatietaken.
Doorzoek declaratieve metadata voordat je een veld hernoemt
Controleer ListView-, Report- en Layout-XML op de API-naam van een veld voordat je het hernoemt, niet alleen Apex en Flow.
Haal veldmetadata vers op voordat je een lijstweergave of rapport handmatig bewerkt
Haal het huidige objectschema op voordat je handmatig XML bewerkt voor een lijstweergave of rapporttype, zodat een verouderde veldnaam nooit wordt meegenomen.
Veelgestelde vragen

MISSING_FIELD, uitgelegd

Waarom gebeurt dit alleen in de ene sandbox en niet in de andere?
Het veld bestaat vrijwel zeker in de ene organisatie en niet in de andere, meestal omdat het naar de ene omgeving is geïmplementeerd maar nog niet naar de andere is gepromoveerd.
Lost het verwijderen van een lijstweergave die naar een ontbrekend veld verwijst de implementatie op?
Het lost het directe symptoom op, maar controleer of het veld of de lijstweergave eigenlijk degene is die zou moeten bestaan voordat je een van beide verwijdert; de oplossing hangt af van welke kant van de mismatch fout is.
Kan een rapporttype MISSING_FIELD veroorzaken, zelfs als het rapport zelf het veld niet weergeeft?
Ja. Rapporttypen kunnen velden als beschikbare kolommen aanhalen, zelfs wanneer een specifiek rapport ze niet gebruikt, en de onderliggende metadata van het rapporttype heeft het veld nog steeds nodig om te bestaan.

Begin gratis. Geen creditcard, geen installatie, geen verplichtingen.

In minder dan 15 minuten ingericht. Geen DevOps-aanwerving nodig.

Benieuwd naar sneller releasen voordat je instapt? Laten we praten

Vrijblijvend.