L’Order of Execution dei diversi meccanismi di automazione è importante per capire come e quando avvengono le modifiche richieste, e per evitare di intervenire su alcune modifiche quando esse non sono ancora avvenute.

Partiamo da una infografica piuttosto completa rilasciata da Salesforce:

Quando si crea o si modifica un record, i diversi meccanismi vengono eseguiti in sequenza:

  1. Si carica il record originale in memoria cosí come il nuovo record (ovvero con le modifiche effettuata).
  2. Si eseguono le validazioni Standard (formato dei campi, lunghezza degli stessi ecc.) e Custom (Validation rules).
  3. Si eseguono o “before Save” record triggered-flow
  4. Si eseguono tutti i before trigger
  5. Si eseguono di nuovo tutte le validazioni
  6. Esecuzione Duplicate rules
  7. Si salva il record (ma non si effettua ancora il commit)
  8. Si eseguono tutti gli after trigger
  9. Se si tratta di un recursive-save, quindi si salva di nuovo lo stesso record, si eseguiranno di nuovo i punti elencati in precedenza fino ad un massimo di 5 volte.
  10. Esecuzione Assignment Rules
  11. Esecuzione Auto-Response rules
  12. Esecuzione Escalation Rules
  13. Esecuzione di tutte le altre automazioni senza rispettare un particolare ordine:
    1. Processi
    2. Flow lanciati da processi
    3. Flow lanciati da Workflow Rules
  14. Esecuzione “after save” record triggered Flow
  15. Esecuzione Entitlement Rules
  16. Calcolo di Roll-up summary field nei record parent (se presenti)
  17. Calcolo di Roll-up summary field nei record grand-parent (se presenti)
  18. Esecuzione Criteria-Based sharing rules
  19. Commit tutte le operazioni DML nel database
  20. si eseguono tutte le operazioni post commit come:
    1. Invio di email
    2. Esecuzione di job asincroni
    3. Esecuzione di rami di Flow record-triggered

Considerazioni su Order of Execution

L’ordine di esecuzione dei diversi processi può sembrare effettivamente molto complessa. È necessario conoscerla molto bene soprattutto se state studiando per ottenere la certificazione Administrator, ci sono peró dei punti molto importanti da ricordare anche per il lavoro giornaliero:

  1. La differenza tra save e commit: nel momento in cui il record si trova in stato “Save” è ancora possibile effettuare il rollback delle operazioni, mentre una volta che si è effettuato il commit è necessario effettuare una nuova transazione per cambiare le modifiche in precedenza. In piú dopo il commit alcune azioni non possono essere annullate, come invio di email e callout in corso.
  2. Prestare attenzione ai campi che si vuole interrogare durante un processo: per esempio durante un After trigger non avrò ancora aggiornato il valore dei roll-up summary field.
  3. Attenzione alla ricorsione nel salvataggio: evitare quando possibile.
  4. Potrebbe sembrare anacronistico vedere “workflow rules” e “process builder” in quanto questi strumenti sono stati ritirati (è stato ritirato il supporto). Però potrebbe essere che alcune aziende ancora non abbiano effettuato la migrazione con i flow. È sempre meglio tenere questo aspetto in considerazione

0 commenti

Lascia un commento

Segnaposto per l'avatar

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