In Salesforce, sebbene sia possibile configurare negli Approval Process delle azioni, al momento non è possibile rendere dei campi obbligatori negli Approval Process. Possiamo immaginare sia un problema facilmente risolvibile utilizzando delle Validation Rules. Sfortunatamente, al momento, non è nemmeno possibile utilizzare Validation Rules per rendere dei campi obbligatori negli Approval Process.
Nonostante ciò, possiamo utilizzare un workaround per risolvere tale necessità, implementando un Flow.
Prima di implementare un Flow, bisogna spuntare la casella "Re-evaluate Workflow Rules after Field Change" nell'azione del Field Update. Ciò assicura che l'Approval Process innesca altre automazioni (nel nostro caso un Flow).
Adesso, bisogna implementare un Flow per rendere il campo Comments dell'Approval Process obbligatorio.
Come primo passo, bisogna creare un nuovo (before save/Fast Field Updates) record triggered flow che viene innescato quando lo stato dell'approvazione diventa "Rifiutato". Ovviamente questo è solo un esempio, si può utilizzare qualsiasi campo e qualsiasi valore. Bisogna solo essere sicuri di utilizzare il campo che viene aggiornato dall'azione dell'Approval Process.
Aggiungiamo un elemento Get Records per effettuare una query sull'ultimo record di tipo Process Instance relazionato al nostro oggetto (in questo caso l'Account). L'oggetto Process Instance indica l'Approval Process. Facciamo attenzione ad inserire una condizione per filtrare solo i records relazionati al nostro oggetto tramite il campo TargetObjectId e di ordinarli per la CreatedDate in modo discendente.
Aggiungiamo un altro elemento Get Records per effettuare una query sull'ultimo record di tipo Process Instance Step relazionato al nostro Process Instance che abbiamo trovato nella query precedente. Facciamo attenzione ad inserire una condizione per filtrare solo i records con lo StepStatus "Rejected" e di ordinarli per la CreatedDate in modo discendente.
Adesso, possiamo aggiungere un Decision Element per controllare che il campo Comments nel Process Instance Step, trovato nella query precedente, non sia vuoto o null.
Se il campo Comments è blank, vogliamo mostrare un messaggio di errore. Quindi, possiamo aggiungere un elemento Custom Error per mostrare il messaggio di errore.
Al termine dei passi precedenti, il Flow apparirà come di seguito:
Adesso, se proviamo a cliccare su Reject sul record dell'Approval Process senza inserire un testo nel campo Comments, visualizzeremo il messaggio di errore!
IMPORTANTE!
Può accadere a tante persone che il Flow non funzioni perfettamente come desiderato. Questo problema è dovuto sicuramente al fatto che hanno inserito l'azione di Field Update nella sezione delle "Rejection Actions" e non nella sezione "Final Rejection Actions".
Dopo tale modifica, sicuramente funziona! 😉