Hoe je TERRITORY2_NOT_ENABLED in Salesforce-deployments oplost

Een deployment bevat Territory2-metadata, maar Enterprise Territory Management staat niet aan in de doel-org.

Komt voor bij: validatie van metadata-deployment, voordat er DML wordt uitgevoerd

Wat het betekent

TERRITORY2_NOT_ENABLED betekent dat een deployment Territory2-metadata, territory-modellen, territory-regels of gerelateerde verwijzingen meebrengt naar een org waar Enterprise Territory Management niet is ingeschakeld. De feature moet in Setup worden aangezet voordat Salesforce die metadata accepteert, ongeacht hoe schoon de deployment zelf is.

Enterprise Territory Management is een feature flag die Salesforce via Setup inschakelt (of via een supportcase, bij sommige edities), niet iets wat de Metadata API als onderdeel van een deployment kan aanzetten, dus dit is altijd een handmatige, eenmalige vereiste in plaats van iets wat een fix in je metadata kan oplossen.

Diagnose

Veelvoorkomende oorzaken

Bron-org heeft de feature ingeschakeld, doel-org niet
Metadata is opgehaald uit een productie-org of sandbox met Enterprise Territory Management aan en gedeployed naar een org waar dit nooit was ingeschakeld.
Scratch org-definitie laat de feature weg
Een scratch-org-def.json die wordt gebruikt om nieuwe orgs op te zetten vraagt niet om de Territory Management-feature, waardoor nieuwe orgs zonder worden aangemaakt.
Een profiel of permission set verwijst naar territory-rechten in een org zonder de feature
Gedeployde metadata gaat ervan uit dat territory-gerelateerde rechten bestaan, maar de doel-org wijst ze af omdat de feature zelf uitstaat.

De oplossing

  1. Schakel Enterprise Territory Management in de doel-org in
    Zet de feature aan in Setup voordat je probeert Territory2-metadata naar die org te deployen.
  2. Voeg de feature toe aan scratch org-definities
    Neem Territory Management op in de features-lijst van scratch-org-def.json zodat elke nieuwe scratch org deze vanaf de aanmaak heeft ingeschakeld.
    {
      "edition": "Enterprise",
      "features": ["TerritoryManagement2"]
    }
  3. Verwijder Territory2-verwijzingen voor orgs die geen territories gebruiken
    Sluit territory-metadata uit van deployments die gericht zijn op omgevingen die bewust geen Enterprise Territory Management gebruiken.
In de praktijk

Hoe Serpent dit voorkomt

De scratch org-definities van Serpent staan onder versiebeheer, net als metadata, zodat de Territory Management-feature ingebakken kan worden in elke nieuwe org die een taak provisioneert in plaats van achteraf handmatig te worden ingeschakeld. Zie de bibliotheek met Salesforce-deploymentfouten.

Metadata en data in één deploymentflow in Serpent

Preventie

Standaardiseer scratch-org-def.json-features binnen het team
Onderhoud één gedeelde, versiebeheerde scratch org-definitie die elke feature bevat die productie gebruikt, zodat nieuwe scratch orgs nooit afwijken van wat de metadata daadwerkelijk nodig heeft.
Documenteer org-niveau featurevereisten samen met de metadata die ze nodig heeft
Noteer in de setupdocumentatie van je repo welke Salesforce-features, Territory Management, Multi-Currency, Person Accounts, een nieuwe org moet hebben ingeschakeld vóór de eerste deployment.
Schakel Enterprise Territory Management nooit in zonder een plan voor elke org
Behandel het inschakelen van de feature als een org-brede, grotendeels onomkeerbare beslissing en coördineer dit over elke omgeving voordat Territory2-metadata ooit wordt gebouwd.
Veelgestelde vragen

TERRITORY2_NOT_ENABLED, uitgelegd

Kan Enterprise Territory Management worden ingeschakeld en later weer worden uitgeschakeld?
Eenmaal ingeschakeld en in gebruik kan het over het algemeen niet volledig worden uitgeschakeld zonder aanzienlijk herwerk; behandel het inschakelen als een eenrichtingsbeslissing voor die org.
Kan ik Enterprise Territory Management zelf inschakelen, of heb ik Salesforce-support nodig?
In de meeste orgs kan dit zelf via Setup, Territory Settings; sommige oudere of zwaar aangepaste orgs hebben mogelijk een supportcase nodig, dus controleer eerst Setup voordat je er een opent.
Heeft dit invloed op de oudere, verouderde Territory Management (Territory, niet Territory2)?
Nee. Deze fout is specifiek voor Enterprise Territory Management-metadata (Territory2); de oorspronkelijke Territory Management-feature heeft eigen, aparte instellingen en wordt niet door deze controle beïnvloed.

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

Binnen 15 minuten ingericht. Geen DevOps-specialist nodig.

Benieuwd naar sneller releasen voordat je instapt? Laten we praten

Vrijblijvend.