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:

  1. 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.
  2. 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:

  1. Definire quali processi o oggetti potrebbero richiedere delle eccezioni
  2. 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

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *