Hoe je NUMBER_OUTSIDE_VALID_RANGE in Salesforce-deployments oplost
Een numerieke veldwaarde op een op te slaan record overschrijdt het aantal cijfers of decimalen dat voor dat veld is gedefinieerd.
Treedt op bij: runtime DML, bij data loads, Apex-tests, en formule- of rollup-evaluatieWat het betekent
NUMBER_OUTSIDE_VALID_RANGE treedt op wanneer een waarde die naar een Number- of Currency-veld wordt geschreven meer cijfers of meer decimalen heeft dan de precisie en schaal van het veld toestaan. Salesforce definieert die limieten op het veld zelf, dus elke waarde daarbuiten wordt bij het opslaan geweigerd, ongeacht waar deze vandaan kwam.
Precisie en schaal worden ingesteld bij het aanmaken van een veld en zijn berucht moeilijk later te verbreden zonder een supportcase in sommige edities, dus deze fout wijst vaak op een velddefinitie die te klein was voor de data die het nu moet bevatten, niet slechts een eenmalige foute waarde.
Veelvoorkomende oorzaken
De oplossing
- Rond waarden af of kort ze in voordat je laadtPas de migratie- of transformatiestap aan zodat deze exact overeenkomt met de precisie en schaal van het doelveld vóór de insert.
Decimal rounded = rawValue.setScale(2, System.RoundingMode.HALF_UP); - Verbreed het veld als de extra precisie legitiem isVerhoog het aantal decimalen of cijfers van het veld in Setup als het bedrijf dat detailniveau echt nodig heeft.
- Controleer formule-uitvoer tegen de velddefinitieBevestig dat elke formule of rollup summary die het veld voedt geen waarde kan produceren die de numerieke limieten ervan overschrijdt.
Hoe Serpent dit voorkomt
De gepoolde scratch orgs van Serpent delen dezelfde velddefinities als de branch die wordt getest, dus een migratiescript dat waarden buiten bereik produceert, faalt snel in een geïsoleerde omgeving in plaats van tijdens een gedeelde sandbox-load. Zie de bibliotheek met Salesforce-deploymentfouten.

Preventie
Gerelateerde fouten
NUMBER_OUTSIDE_VALID_RANGE, beantwoord
Start gratis. Geen creditcard, geen installatie, geen verplichting.
Binnen 15 minuten ingericht. Geen DevOps-medewerker nodig.
