Comment corriger FIELD_FILTER_VALIDATION_EXCEPTION dans les déploiements Salesforce

La valeur d'un champ de référence ne satisfait pas le filtre de référence configuré sur ce champ.

Se produit lors : du DML à l'exécution, partout où une valeur de référence est définie, y compris dans les tests Apex

Ce que cela signifie

FIELD_FILTER_VALIDATION_EXCEPTION signifie qu'une relation de référence ou maître-détail reçoit une valeur qui échoue au filtre de référence défini sur ce champ. Les filtres de référence restreignent les enregistrements sélectionnables selon des critères comme le statut ou le type d'enregistrement, et Salesforce les applique à chaque enregistrement, pas seulement via l'interface.

Contrairement à une règle de validation, un filtre de référence est configuré directement sur le champ dans Setup plutôt qu'écrit comme une formule, si bien qu'il est facile d'oublier son existence jusqu'à ce que des données de test ou un script de migration définissent une valeur que le filtre était censé rejeter.

Diagnostic

Causes courantes

Des données migrées pointent vers un enregistrement qui échoue au filtre
Un script de migration définit une référence vers un enregistrement dont le statut ou le type ne respecte pas les critères de filtre actuels de l'organisation de destination.
Un filtre de référence a été resserré après l'écriture des données initiales
Les critères du filtre ont changé dans une version ultérieure, et les scripts de test ou de données initiales existants n'ont pas été mis à jour en conséquence.
La configuration du test référence un enregistrement depuis exclu
La configuration des données d'un test Apex renvoie à un enregistrement dans un statut désormais exclu par un filtre de référence, ce qui casse le test au déploiement.

La solution

  1. Mettre à jour les données de migration ou initiales pour respecter les critères du filtre actuel
    Faites pointer la référence vers un enregistrement qui satisfait le filtre de référence actif de l'organisation de destination.
  2. Vérifier le filtre de référence lors du déploiement de données nécessitant une exception
    Assouplissez temporairement le filtre si un chargement en masse spécifique doit vraiment le contourner, puis restaurez-le ensuite.
  3. Auditer les filtres de référence après des changements du modèle d'objet
    À chaque changement des critères d'un filtre, vérifiez les automatisations et données de test existantes pour repérer les références qui échoueraient désormais.
En pratique

Comment Serpent évite cela

Serpent valide les déploiements par rapport aux métadonnées actuelles de l'organisation cible avant de promouvoir une tâche, de sorte qu'un filtre de référence resserré dans une version ultérieure apparaisse pendant l'intégration continue plutôt que pendant un chargement de données en production. Consultez la bibliothèque des erreurs de déploiement Salesforce.

Métadonnées et données dans un seul flux de déploiement dans Serpent

Prévention

Documenter les critères de chaque filtre de référence à côté du champ
Conservez une brève note dans la description du champ ou la documentation du schéma décrivant ce que le filtre restreint, afin que les futures migrations sachent que la contrainte existe.
Traiter les changements de filtre de référence comme des changements majeurs à examiner
Signalez tout déploiement qui resserre les critères d'un filtre de référence pour une vérification par rapport aux automatisations et données de test existantes avant la fusion.
Maintenir les enregistrements de configuration de test alignés sur les critères de filtre actuels
Réexaminez les fabriques de données de test Apex chaque fois qu'un filtre de référence sur un objet qu'elles touchent change, pas seulement quand le test lui-même change.
Questions fréquentes

FIELD_FILTER_VALIDATION_EXCEPTION, expliqué

Un filtre de référence bloque-t-il les insertions API de la même façon que l'interface ?
Oui. Les filtres de référence sont appliqués à chaque enregistrement, que celui-ci provienne de l'interface, de l'API, ou d'un chargement de données.
Un filtre de référence est-il la même chose qu'une règle de validation ?
Non. Un filtre de référence est configuré directement sur le champ de référence dans Setup et restreint les enregistrements sélectionnables ; une règle de validation est une vérification distincte basée sur une formule qui peut référencer n'importe quel champ de l'enregistrement.
Un filtre de référence peut-il être facultatif plutôt qu'obligatoire ?
Oui. Salesforce prend en charge à la fois les filtres obligatoires, qui bloquent toujours les enregistrements non conformes, et les filtres facultatifs, qui se contentent d'avertir l'utilisateur dans l'interface sans bloquer les insertions API ou Apex.

Démarrez gratuitement. Sans carte bancaire, sans installation, sans engagement.

Configuration en moins de 15 minutes. Aucun recrutement DevOps nécessaire.

Curieux de livrer plus vite avant de vous lancer ? Parlons-en

Sans engagement.