Flow avant ou après enregistrement
Un flow avant enregistrement, optimisé pour les Mises à jour rapides des champs, s’exécute avant l’écriture et ne modifie que les champs de l’enregistrement déclencheur. Un flow après enregistrement, optimisé pour les Actions et enregistrements associés, s’exécute une fois l’enregistrement écrit : il peut mettre à jour d’autres enregistrements, appeler des actions et utiliser des chemins planifiés ou asynchrones.
Mises à jour rapides des champs (avant enregistrement)
Un flow avant enregistrement s’exécute tôt dans l’ordre d’exécution, juste avant les déclencheurs Apex before. Les modifications apportées à la variable $Record s’appliquent automatiquement à l’enregistrement déclencheur : il n’y a ni élément Mettre à jour des enregistrements, ni seconde sauvegarde de l’enregistrement, et c’est pourquoi Salesforce présente cette optimisation comme celle qui privilégie la rapidité.
La contrepartie porte sur le périmètre. Un flow avant enregistrement peut consulter des données et prendre des décisions, mais ses mises à jour se limitent à l’enregistrement déclencheur. Vérifiez quels éléments de Flow sont actuellement pris en charge dans ce contexte, plutôt que de supposer que tout élément disponible après l’enregistrement l’est aussi avant.
Actions et enregistrements associés (après enregistrement)
Un flow après enregistrement s’exécute une fois l’enregistrement écrit : il peut donc lire des valeurs qui n’existent qu’à ce moment-là, comme l’Id du nouvel enregistrement ou sa date de dernière modification. Il peut créer ou mettre à jour des enregistrements associés et exécuter des actions. Pour modifier l’enregistrement déclencheur lui-même, il lui faut un élément Mettre à jour des enregistrements explicite.
Les chemins planifiés et le chemin asynchrone ne sont disponibles qu’avec cette optimisation. Comme Salesforce interdit les appels externes pendant la sauvegarde d’un enregistrement, un traitement qui a besoin de données externes a sa place sur le chemin asynchrone, qui s’exécute après le commit de la transaction.
Comment choisir
Si le besoin se limite à renseigner ou corriger des champs de l’enregistrement en cours, le flow avant enregistrement est l’option la plus légère. Créer ou mettre à jour des enregistrements associés demande un autre contexte, en général une automatisation après enregistrement. Lire un autre enregistrement reste possible avant l’enregistrement : ne confondez pas lecture et écriture. Les appels externes demandent de l’attention à la frontière de la transaction. Les deux types se placent à des moments différents de la séquence d’enregistrement, ce qui compte quand d’autres automatisations du même objet lisent les mêmes champs.
Ce qu’apporte aprity
aprity documente chaque flow déclenché par un enregistrement à partir de ses métadonnées, en langage métier : ce qui le démarre, ce qu’il modifie. Il le place dans le graphe d’exécution de l’objet, à côté des déclencheurs et des règles qui réagissent au même événement d’enregistrement. Chaque règle documentée renvoie au flow ou à la classe dont elle est tirée.
Termes liés
- Flow déclenché par un enregistrement — Un Flow que Salesforce lance automatiquement lorsqu’un enregistrement d’un objet donné est créé, mis à jour ou supprimé.
- Ordre d’exécution Salesforce — La séquence fixe dans laquelle Salesforce exécute flows, déclencheurs, règles de validation et autres automatisations lors de la sauvegarde d’un enregistrement.
- Déclencheur Apex — Du code Apex exécuté automatiquement avant ou après l’insertion, la mise à jour, la suppression ou la restauration d’enregistrements d’un objet.
Sources
La documentation officielle de Salesforce sur laquelle cette définition a été vérifiée (pages en anglais). Le comportement de la plateforme évolue d’une version à l’autre : la page citée fait foi.