Le Validation Rules rappresentano il primo, e più accessibile, strumento di Data Quality che ogni Admin e Developer ha a disposizione per garantire che i dati salvati in Salesforce siano corretti.
Con il tempo però, soprattutto in org che crescono o in nuovi progetti, è facile ritrovarsi con decine di validation rules. Per quanto siano necessarie, in alcuni casi possono diventare un ostacolo al corretto funzionamento della org, ad esempio quando:
- Alcune regole fanno fallire silenziosamente dei processi Catene di creazione o aggiornamento dati possono non andare a buon fine a causa di una validazione secondaria poco evidente.
- Durante migrazioni dati o upload massivi La frustrazione aumenta quando alcune validation rules bloccano l’aggiornamento di dati già esistenti, magari leggermente sporchi, o quando una regola è stata introdotta in un secondo momento.
La data quality deve sempre essere una priorità, ma è importante evitare un’eccessiva rigidità. In tutti i progetti esistono eccezioni, contesti in cui alcune, o tutte, le validation rules non devono attivarsi e non devono interferire con il processo.
Per questo, già in fase di progettazione, è fondamentale:
- Definire quali processi o oggetti potrebbero richiedere delle eccezioni
- Utilizzare le Custom Permission per gestire le validation rules in modo granulare
Come controllare l’attivazione delle Validation Rules
Per gestire le validation rules in modo flessibile è necessario fare un minimo di progettazione e porsi una domanda chiave:
quali processi o oggetti potrebbero aver bisogno, in certi contesti, di “spegnere” le validation rules?
Una volta individuati, per ogni processo è possibile implementare questo approccio:
Creare una Custom Permission Setup → Custom Code → Custom Permission

Creare un Permission Set e aggiungere la custom permission appena creata

In ogni Validation Rule aggiungere la condizione: NOT($Permission.CustomPermissionName)

Assegnare il permission set solo agli utenti che devono bypassare le validation rules, temporaneamente o in modo permanente
Questo approccio permette di mantenere alta la qualità dei dati senza bloccare processi critici, migrazioni o attività operative.
Considerazioni finali
Questo metodo è sicuramente il più “elegante”, ma può portare alla creazione di molti Permission Set se iniziamo a definire una custom permission per ogni oggetto o per processi differenti.
Considerando che il numero di permission set è limitato e dipende dal tipo di licenza, e che in alcuni progetti i permission set servono anche per gestire permessi più prioritari (ricordo che Salesforce sta passando da un modello basato sui profili a uno basato sui permission set), in alcuni casi è possibile adottare un approccio alternativo.
Si tratta di una soluzione meno elegante e più obsoleta rispetto a quella descritta in precedenza, ma che può comunque risultare efficace.
Uno dei metodi più classici consiste nel creare alcune checkbox sull’oggetto User, ad esempio:
- SkipAccountValidationRules
- SkipOpportunityVR
- SkipAllVR
Le strategie possono variare:
- una checkbox per ogni oggetto
- oppure checkbox legate a specifici processi, ad esempio un processo di vendita con canale “direct”, in cui è necessario caricare dati iniziali
Queste checkbox vengono poi richiamate all’interno delle singole Validation Rules. Non è una soluzione perfetta, ma aiuta a controllare le validation rules ed evitare che blocchino processi più importanti del singolo dato non corretto.
È fondamentale che questi campi:
- siano soggetti a meccanismi di audit periodici
- siano visibili solo agli admin
- siano modificabili solo dagli admin
0 commenti