Suivez votre progression
Accueil Trailhead
Accueil Trailhead

Combiner la puissance du générateur de processus et de Flow Builder

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Présenter un processus métier qui peut être automatisé en utilisant un processus et un flux.
  • Définir une variable de flux.
  • Créer un flux qui parcourt un groupe d’enregistrements.
  • Créer un processus qui lance un flux.

Quand le Générateur de processus ne suffit pas

Le Générateur de processus n’est pas conçu pour répondre à tous les cas d’utilisation possibles, et vous découvrirez sans doute qu’il permet d’automatiser une partie de votre activité, mais pas la totalité. Par exemple, le Générateur de processus ne peut pas :

  • Publier sur un flux de communauté
  • Soumettre un enregistrement associé pour approbation
  • Supprimer des enregistrements
  • Créer plusieurs enregistrements et les associer les uns aux autres
  • Exécuter une logique complexe

Mais bonne nouvelle : vous n’avez pas besoin de recréer toute l’automatisation dans un autre outil. Configurez les fonctionnalités plus complexes dans un flux, puis ajoutez une action de flux à votre processus. Si un flux n’est pas en mesure de faire ce dont vous avez besoin, vous ou un développeur pouvez écrire du code Apex pour y remédier. Vous ajouterez ensuite l’action Apex à votre processus.

Clonage des enregistrements avec enfants

Nous vous avons demandé de créer automatiquement des opportunités de renouvellement lorsqu’une opportunité est fermée-gagnée. Le renouvellement doit être un clone de l’opportunité originale. Nous pouvons cloner des enregistrements dans le Générateur de processus, mais nous devons également cloner les produits et les associer avec l’opportunité de renouvellement.

Dans le Générateur de processus, il n’est pas possible de récupérer l’identifiant de l’enregistrement créé et de l’utiliser ailleurs. Par chance, vous pouvez le faire un flux. Créez simplement un flux qui clone l’opportunité et ses produits, ainsi qu’un processus qui appelle ce flux lorsqu’une opportunité est fermée-gagnée.

Au-delà des bases

Dans l’unité précédente, nous avons parlé des flux qui guident les utilisateurs tout au long d’un processus métier grâce à des écrans. Nous les appelons flux d’écran. Vous pouvez également construire des flux lancés automatiquement, qui s’exécutent à l’arrière-plan comme un processus. La différence principale est que les flux lancés automatiquement ne peuvent pas avoir d’écrans, qui exigent des interactions avec l’utilisateur. Comme ils n’ont pas d’écrans, vous pouvez appeler les flux lancés automatiquement depuis le backend, par exemple dans des processus et des classes Apex.

Construction d’un processus

Plutôt que de créer un autre processus, utilisons celui que nous avons créé dans une précédente unité comme base.
Remarque

Remarque

Vous ne pouvez pas modifier un processus actif. Si vous avez déjà activé votre processus, cliquez sur Cloner pour créer une nouvelle version du processus actuel.

Le processus Opportunités clôturées gagnées d’une unité précédente

Dans le processus Opportunités clôturées gagnées, ajoutez un nœud de critères appelé Fermé gagné avec la condition de filtrage suivante.

Champ Valeur
Opportunité > Étape Clôturée gagnée

Nous ne pouvons pas configurer les actions dans le générateur de processus. Enregistrons donc et basculons vers Flow Builder.

Création d’un flux

Dans Configuration, saisissez Flux dans la case Recherche rapide, puis sélectionnez Flux. Cliquez sur Nouveau flux, sélectionnez Flux lancé automatiquement, puis cliquez sur Créer.

Nous créons un flux qui :

  • Clone une opportunité.
  • Clone les produits de l’opportunité.
  • Associe les produits clonés à l’opportunité clonée.

Pour faire tout cela, le flux a besoin de données provenant du processus : l’opportunité d’origine et ses produits d’opportunité.

Il y a quatre types de variables de flux.

Type Peut stocker... Exemple
Variable Une seule valeur « Hello World », true, 6
Variable de collection Plusieurs valeurs ayant le même type de données [1, 2, 3, 5, 8, 13]
Variable d’enregistrement Un ensemble de champs pour un seul enregistrement Notation, ID, et Nom pour un compte
Variable de collection d’enregistrement Un ensemble de valeurs de champ pour plusieurs enregistrements ayant le même type d’objet Notation, ID, et Nom pour plusieurs comptes

Pour stocker l’opportunité et ses produits d’opportunité, nous créons une variable d’enregistrement et une variable de collection d’enregistrement. Ensuite, lorsque nous ajoutons le flux en tant qu’action au processus, nous transmettons des données à ces variables. Elles doivent donc autoriser la saisie.

  1. Dans le gestionnaire de la boîte à outils, cliquez sur Nouvelle ressource et définissez les valeurs suivantes.
    Champ Valeur
    Type de ressource Variable
    Nom de l’API opportunity
    Type de données Enregistrement
    Objet Opportunité
    Disponible pour l’entrée Sélectionné
  2. Cliquez sur Done.
  3. Cliquez sur Nouvelle ressource et définissez les valeurs suivantes.
    Champ Valeur
    Type de ressource Variable
    Nom de l’API oppProducts_Original
    Type de données Enregistrement
    Autoriser les valeurs multiples (collection) Sélectionné
    Objet Produit d’opportunité
    Disponible pour l’entrée Sélectionné
  4. Cliquez sur Done.

Clonage de l’opportunité

Lorsque le flux est appelé par le processus, la variable {!opportunity} contient des champs de l’opportunité d’origine. Avant de cloner cette opportunité, modifions certains de ces champs. De cette manière, l’opportunité de renouvellement ne sera pas créée comme Clôturée gagnée.
  1. Dans Éléments dans la boîte à outils, faites glisser un élément Attribution vers la zone de dessin.
  2. Dans Étiquette, nommez-le Mettre à jour les champs de l’opportunité.
  3. Définissez l’étape sur Prospection.
    1. Pour Variable, sélectionnez RECORD (SINGLE) VARIABLES | opportunity | StageName.
    2. Pour Opérateur, sélectionnez Égal à.
    3. Comme Valeur, sélectionnez PICKLIST VALUES | Prospection.
  4. Définissez une Date de fermeture sur 90 jours à partir d’aujourd’hui.
    1. Cliquez sur Ajouter l’attribution.
    2. Pour Variable, sélectionnez RECORD (SINGLE) VARIABLES | opportunity | CloseDate.
    3. Pour Opérateur, sélectionnez Égal à.
    4. Pour Valeur, sélectionnez Nouvelle ressource définissez les valeurs suivantes.
      Champ Valeur
      Type de ressource Formule
      Nom de l’API ninetyDays
      Type de données Date
  5. Dans Formule, laissez Insérez une ressource… vide et saisissez TODAY() + 90 dans la zone de texte.
  6. Cliquez sur Done.
  7. Dans Valeur dans la deuxième ligne, sélectionnez FORMULAS | ninetyDays.
  8. Cliquez sur Done.
  9. Pour créer l’opportunité, faites glissez un élément Créer des enregistrements vers la zone de dessin et définissez les valeurs suivantes.
    Champ Valeur
    Étiquette Cloner l’opportunité
    Variable d’enregistrement RECORD (SINGLE) VARIABLES > opportunity
  10. Cliquez sur Done.
  11. Cliquez sur le nœud au bas de Démarrer et faites-le glisser vers Mettre à jour les champs de l’opportunité.
  12. Cliquez sur le nœud en bas de Mettre à jour les champs de l’opportunité et faites-le glisser vers Cloner l’opportunité.

Lorsque l’opportunité est créée, le champ d’identifiant de cette variable ({!opportunity.Id}) est rempli avec l’identifiant du nouvel enregistrement. Nous référençons cette valeur plus tard pour associer les nouveaux produits avec l’opportunité de renouvellement.

Clonage des produits de l’opportunité

On a gardé le meilleur pour la fin : le clonage des produits de l’opportunité.

Lorsque le flux est appelé par le processus, la variable {!oppProducts_Original} contient des champs des produits de l’opportunité originale. Avant de cloner ces produits, nous devons les associer à l’opportunité de renouvellement à la place de l’opportunité d’origine et définir le prix total de chaque produit sur null. (Les produits d’opportunité ne peuvent pas avoir un prix unitaire et un prix total.)

La seule façon de mettre à jour des éléments d’une collection consiste à itérer sur la collection avec une boucle. Une boucle indique au flux de traiter un par un chaque élément de la collection en exécutant la même logique sur chacun d’eux, jusqu’à ce que l’ensemble de la collection ait été traité.

Chaque produit d’opportunité de notre collection d’enregistrement {!oppProducts_Original} doit être associé à l’opportunité de renouvellement et le prix total doit être défini sur null.

Chaque fois que la boucle se répète, la variable de boucle représente un élément de la collection. Lorsque la boucle démarre, le premier élément de la variable de collection est copié dans la variable de boucle. À la fin de l’itération, les valeurs de la variable de boucle sont remplacées par les valeurs de l’élément suivant. Et ainsi de suite jusqu’au dernier élément de la collection.

Un élément de la collection est copié dans une variable de boucle. Les données de la variable de boucle sont mises à jour, puis copiées pour créer un nouvel élément dans une autre collection. La variable de boucle est ensuite mise à jour par une copie du prochain élément de la collection d’origine.
Conseil

Conseil

  • Pour mettre à jour les valeurs de champ d’un élément dans une boucle, mettez à jour la variable de boucle. Ensuite, avant la fin de l’itération sur cet élément, ajoutez la variable de boucle à une autre variable de collection sous forme d’élément. Si vous ne le faites pas, les modifications sont écrasées lorsque l’élément suivant est chargé dans la variable de boucle.
  • Évitez d’ajouter des actions, comme des créations ou des mises à jour d’enregistrements, dans une boucle. Vous risqueriez d’atteindre des limites.

Dans la boucle, nous mettons à jour l’identifiant d’opportunité et le prix total de chaque élément, puis nous ajoutons l’élément à une nouvelle variable de collection. Après la boucle, nous utilisons la nouvelle variable de collection pour créer les produits d’opportunité.

  1. Faites glisser une boucle sur la zone de dessin, et définissez ces valeurs.
    1. Dans Étiquette, appelez-la Itération sur les produits.
    2. Pour Variable de collection, sélectionnez RECORD COLLECTION VARIABLES | oppProducts_Original.
      Cette option dit à la boucle sur quelle collection itérer lorsqu’elle assigne des éléments à la variable de boucle.
    3. Pour Variable de boucle, sélectionnez Nouvelle ressource et définissez les valeurs suivantes.
      Champ Valeur
      Type de ressource Variable
      Nom de l’API oppProduct_loop
      Type de données Enregistrement
      Objet Produit d’opportunité
  2. Cliquez sur Done.
  3. Définissez la variable de boucle sur RECORD (SINGLE) VARIABLES | oppProduct_loop.
  4. Cliquez sur Done.
  5. Connectez Cloner l’opportunité à la boucle.
  6. Définissez l’identifiant d’opportunité de la variable de boucle comme l’identifiant de la nouvelle opportunité et son prix total comme nul.
    1. Faites glisser un élément Attribution vers la zone de dessin.
    2. Dans Étiquette, appelez-le Mettre à jour le produit d’opportunité.
    3. Dans Définir les valeurs de variable, configurez les attributions suivantes. Cliquez sur Ajouter une attribution pour ajouter une deuxième ligne.
      Variable Opérateur Valeur
      RECORD VARIABLES > oppProduct_loop > OpportunityId Égal à RECORD (SINGLE) VARIABLES > opportunity > Id
      RECORD VARIABLES > oppProduct_loop > TotalPrice Égal à Laissez vide
      Attributions de flux définissant les champs Identifiant d’opportunité et Prix total de la variable de boucle.
    4. Cliquez sur Terminé.
  7. Connectez la boucle à Mettre à jour le produit d’opportunité. La fenêtre Sélectionner un connecteur de boucle s’affiche.
  8. Vérifiez que À chaque élément de la collection est sélectionné dans le champ Connecteur de boucle, puis cliquez sur Terminé.
  9. Ajoutez la variable de boucle mise à jour à une nouvelle variable de collection d’enregistrement.
    1. Faites glisser un autre élément Attribution vers la zone de dessin.
    2. Dans Étiquette, appelez-le Ajouter à une nouvelle collection.
    3. Pour Variable, sélectionnez Nouvelle ressource et créez une variable de ressource avec les valeurs suivantes.
      Champ Valeur
      Type de ressource Variable
      Nom de l’API oppProducts_new
      Type de données Enregistrement
      Objet Produit d’opportunité
      Autoriser les valeurs multiples (collection) Sélectionné
    4. Cliquez sur Terminé.
    5. Pour Opérateur, sélectionnez Ajouter.
    6. Pour Valeur, sélectionnez RECORD (SINGLE) VARIABLES | oppProduct_loop.
    7. Cliquez sur Done.
  10. Connectez Mettre à jour le produit d’opportunité à Ajouter à une nouvelle collection. Connectez ensuite Ajouter à une nouvelle collection à la boucle.
  11. Pour cloner les produits d’opportunité, faites glissez un élément Créer des enregistrements vers la zone de dessin et définissez les valeurs suivantes.
    Champ Valeur
    Étiquette Cloner les produits
    Nombre d’enregistrements à créer Sélectionnez Plusieurs.
    Variable de collection d’enregistrement RECORD COLLECTION VARIABLES > oppProducts_new
  12. Cliquez sur Done.
  13. Connectez la boucle à Cloner les produits.
Le flux terminé

Fin du flux

Vous y êtes presque ! Pour finaliser le flux, enregistrez-le et activez-le.
  1. Cliquez sur Enregistrer.
  2. Enregistrez le flux, puis nommez-le Renouveler l’opportunité. Assurez-vous que Type est défini sur Flux lancé automatiquement.
  3. Cliquez sur Enregistrer.

Activez le flux afin de pouvoir le référencer dans le générateur de processus. Fermez Flow Builder.

Fin du processus

Maintenant que vous avez terminé de créer le flux, assurez-vous que le processus lance le flux lorsqu’une opportunité est fermée-gagnée. Vous vous souvenez des variables que nous avons créées au début du flux ? Dans le processus, nous les utilisons pour passer des valeurs de l’enregistrement d’opportunité à ses enfants dans le flux.
  1. Ouvrez le processus Opportunités fermées-gagnées.
  2. Dans le groupe de critères Clôturée gagnée, ajoutez une action immédiate de type Flux et nommée Créer un renouvellement.
  3. Pour Flux, sélectionnez Renouveler l’opportunité.
  4. Dans Définir les variables de flux, ajoutez deux lignes, définissez ces valeurs, puis cliquez sur Enregistrer.
    Variable Type Valeur
    opportunity Référence de champ Sélectionnez l’enregistrement d’opportunité qui a lancé le processus.
    oppProducts_original Référence de champ Opportunity > OpportunityLineItems
    Lorsqu’une opportunité est fermée-gagnée, le renouvellement doit toujours être créé. Cependant, vous devez vous assurer que les contrats en version préliminaire et les tâches de suivi sont créées si l’opportunité est également considérée comme valeur haute.
  5. Faites glisser le nœud de critères Fermée-gagnée au-dessus de Fermée-gagnée et Valeur haute.
  6. Pour le groupe de critères Clôturée gagnée, cliquez sur STOP.
  7. Sélectionnez Évaluer le critère suivant, puis Enregistrer.
    Le processus final
  8. Pour commencer à utiliser ce processus, activez-le.

Ressources