Loading
Automatisation de vos processus métier
Table des matières
Sélectionner des filtres

          Aucun résultat
          Aucun résultat
          Voici quelques conseils de recherche

          Vérifiez l'orthographe de vos mots-clés.
          Utilisez des termes de recherche plus généraux.
          Sélectionnez moins de filtres pour élargir votre recherche.

          Recherchez dans toute l’aide de Salesforce
          Exemple de traitement d'enregistrements en masse pour éviter les limites en processeur

          Exemple de traitement d'enregistrements en masse pour éviter les limites en processeur

          Apprenez à refactoriser les flux pour utiliser des modèles de traitement en masse qui empêchent les erreurs Apex_CPU_TIME_LIMIT_EXCEEDED. Cet exemple montre la différence entre une conception de flux inefficace et optimisée.

          Éditions requises

          Afficher les éditions prises en charge.
          Autorisations utilisateur requises
          Pour ouvrir, modifier, créer, activer ou désactiver un flux en utilisant tous les types, éléments et fonctionnalités de flux disponibles dans Flow Builder, y compris Einstein et Agentforce pour flux : Gérer les flux

          Cet exemple montre comment transformer un flux qui exécute le langage DML (Data Manipulation Language) dans une boucle en flux en masse qui traite efficacement les enregistrements. Visualisez une comparaison avant-après et découvrez les principes du traitement en masse des flux.

          Scénario

          Élaborez un flux déclenché par un enregistrement qui est exécuté à la fermeture d'une opportunité. Pour chaque opportunité fermée-gagnée, le flux crée une tâche de suivi pour chaque membre de l'équipe d'opportunité. Le flux :

          • Récupère tous les membres de l'équipe d'opportunité.
          • Crée une tâche attribuée à chaque membre de l'équipe.
          • Fonctionne efficacement même lorsque les utilisateurs mettent à jour plusieurs opportunités à la fois.
          • Évite les erreurs Apex_CPU_TIME_LIMIT_EXCEEDED lors d'opérations en masse.

          Salesforce applique une limite de temps processeur unique de 10 000 millisecondes (10 secondes) par transaction synchrone. Chaque automatisation de cette transaction (déclencheurs Apex, flux, règles de workflow et processus) provient du même budget. Une conception de flux inefficace aggrave le problème. D'autres automatisations dans la transaction prélèvent d'abord le budget partagé, et un flux inefficace consomme plus que nécessaire de ce qui reste.

          L'ordre d'exécution des flux dépend du type de flux. Cet exemple utilise un flux déclenché par un enregistrement après la sauvegarde, qui est exécuté plus tard dans l'ordre que les flux avant la sauvegarde. Pour plus d'informations sur l'ordre d'exécution, consultez Déclencheurs et ordre d'exécution.

          Approche inefficace : Opérations DML dans une boucle

          Cette approche entraîne des erreurs de limitation du processeur lors du traitement de plusieurs opportunités.

          Structure du flux : Le flux démarre avec un flux déclenché par un enregistrement dans l'objet Opportunité qui est exécuté après une mise à jour d'enregistrement lorsque Étape est égale à « Fermé gagné ». Le flux utilise Obtenir des enregistrements pour récupérer les Membres de l'équipe d'opportunité pour l'enregistrement déclenchant, puis tourne en boucle à travers la collection. Dans la boucle, un élément Créer des enregistrements crée une tâche pour chaque membre de l'équipe.

          Pourquoi cette approche échoue :

          • Chaque itération de boucle exécute une opération DML séparée.
          • Une opportunité avec 5 membres d'équipe entraîne 5 opérations DML.
          • Lorsque les utilisateurs mettent à jour 20 opportunités à la fois, le flux traite toutes les opportunités dans une seule transaction.
          • 20 opportunités × 5 membres d'équipe chacune = 100 opérations DML dans une transaction.
          • Le temps processeur cumulé de 100 opérations DML dépasse la limite du gouverneur.
          • Résultat : Erreur Apex_CPU_TIME_LIMIT_EXCEEDED.

          Approche efficace : Traitement en masse basé sur la collecte

          Cette approche traite les enregistrements efficacement, quel que soit le volume.

          Structure du flux : Le flux démarre avec un flux déclenché par un enregistrement dans l'objet Opportunité et utilise Obtenir des enregistrements pour récupérer les Membres de l'équipe d'opportunité. Le flux crée une variable d'enregistrement Tâche et une variable de collection d'enregistrement Tâche. La variable d'enregistrement contient la tâche actuelle sur laquelle le flux travaille et la collection d'enregistrements contient les tâches à créer. Le flux tourne en boucle à travers les membres de l'équipe. Dans la boucle, un élément Attribution élabore chaque enregistrement de tâche en définissant les valeurs de la variable d'enregistrement Tâche et associe la tâche au membre actuel de l'équipe dans la boucle. Un autre élément Attribution ajoute les valeurs de variable d'enregistrement Tâche à la collection d'enregistrements Tâche. Une fois la boucle terminée, un seul élément Créer des enregistrements crée toutes les tâches de la collection.

          Pourquoi cela fonctionne :

          • La boucle élabore une collection d'enregistrements de tâche sans exécuter d'opérations DML.
          • Une seule opération DML est exécutée une fois la boucle terminée.
          • Une opportunité avec 5 membres d'équipe entraîne une seule opération DML (création de 5 tâches à la fois).
          • Lorsque les utilisateurs mettent à jour 20 opportunités à la fois, le flux effectue 20 opérations DML au total (une par opportunité).
          • Réduction significative de la consommation de temps processeur.
          • Résultat : Le flux est exécuté avec succès sans atteindre les limites du gouverneur.

          Comparaison des performances

          Scénario Inefficace (DML en boucle) Efficace (en masse)
          1 opportunité avec 5 membres de l'équipe 5 opérations DML 1 opération DML
          20 opportunités (mise à jour en masse) avec 5 membres d'équipe chacune

          100 opérations DML

          (Échoue probablement avec une erreur de limite CPU)

          20 opérations DML

          (Réussi)

          100 opportunités (chargement de données) avec 3 membres d'équipe chacune

          300 opérations DML

          (Échoue définitivement)

          100 opérations DML

          (Réussi)

          Principes clés de la mise en masse

          • N'exécutez jamais d'opérations DML dans des boucles. Recueillez toujours les enregistrements dans une variable de collection pendant la boucle, puis effectuez le DML une fois la boucle terminée.
          • Concevez dès le départ des opérations en masse. Supposons que les flux déclenchés par un enregistrement traitent simultanément plusieurs enregistrements.
          • Utilisez des variables de collection d'enregistrement. Les opérations DML basées sur la collection sont beaucoup plus efficaces que les opérations individuelles.
          • Testez avec des volumes réalistes. Le mode de débogage avec un seul enregistrement ne révèle pas de problèmes d'opération en masse. Testez avec l'assistant d'importation de données, Data Loader ou des mises à jour en masse.
          • Surveillez les performances. Examinez les journaux de débogage pour identifier les flux qui approchent les limites du gouverneur avant qu'ils échouent en production.

          Étapes de haut niveau

          Consultez les étapes de cet exemple. Suivez-les dans l'ordre ou accédez à une section pour des instructions plus spécifiques.

          Création du flux

          Configurez l'exécution du flux déclenché par l'enregistrement lorsque les opportunités sont fermées.

          1. Ouvrez la vue de liste Flux.
            • Dans Configuration, saisissez Flux dans la case Recherche rapide, puis sélectionnez Flux.
            • Dans l'application Automatisation, sélectionnez l'onglet Flux.
            • Sous l'onglet Flux de n'importe quelle application Lightning, cliquez sur le menu d'actions, puis sélectionnez Ouvrir le flux.
          2. Créez un flux déclenché par un enregistrement.
            1. Dans l'application Lightning Automation, cliquez sur Nouveau. Recherchez et sélectionnez Flux déclenché par un enregistrement.
            2. Dans Configuration, cliquez sur Nouveau flux, recherchez et sélectionnez Flux déclenché par un enregistrement.
            Le panneau Configurer le démarrage s'ouvre.
          3. Configurez l'élément Démarrer.
            1. Pour Objet, sélectionnez Opportunité.
            2. Pour Déclencher le flux quand, sélectionnez Un enregistrement est mis à jour.
            3. Dans la section Définir les conditions d'entrée, Pour Exigences de condition, sélectionnez Toutes les conditions sont remplies (AND).
            4. Pour Champ, sélectionnez Étape.
            5. Pour Opérateur, sélectionnez Égal à.
            6. Pour Valeur, sélectionnez Fermé gagné.
            7. Pour Optimiser le flux, sélectionnez Actions et enregistrements associés.

          Création de ressources

          Créez les variables requises pour le traitement en masse.

          1. Pour élaborer chaque tâche, créez une variable d'enregistrement pour élaborer des enregistrements de tâche.
            1. Pour ouvrir la boîte à outils, cliquez sur Icône de boîte à outils..
            2. Cliquez sur Nouvelle ressource, puis sélectionnez Variable.
            3. Dans Nom d'API, saisissez TaskRecord.
            4. Pour Type de données, sélectionnez Enregistrement.
            5. Pour Objet, sélectionnez Tâche.
            6. Cliquez sur Terminé.
          2. Pour stocker toutes les tâches, créez une variable de collection d'enregistrement pour toutes les tâches.
            1. Cliquez sur Nouvelle ressource, puis sélectionnez Variable.
            2. Dans Nom d'API, saisissez TasksToCreate.
            3. Pour Type de données, sélectionnez Enregistrement.
            4. Pour Objet, sélectionnez Tâche.
            5. Sélectionnez Autoriser les valeurs multiples (collection).
            6. Cliquez sur Terminé.

          Obtenir des membres d'équipe

          Récupérez les enregistrements Membre de l'équipe d'opportunité pour les traiter en utilisant un élément Obtenir des enregistrements.

          1. Cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Obtenir des enregistrements.
          2. Configurez l'élément.
            1. Dans Étiquette, saisissez Obtenir les membres de l'équipe d'opportunité.
            2. Pour Objet, sélectionnez Rôle du contact de l'opportunité.
              Dans cet exemple, le flux stocke les membres de l'équipe dans l'objet Rôle du contact de l'opportunité. Un objet qui associe des opportunités à des contacts.
            3. Dans la section Filtrer les enregistrements de rôle de contact d'opportunité, Pour le champ, sélectionnez ID d'opportunité.
            4. Pour Opérateur, sélectionnez Égal à.
            5. Pour Valeur, sélectionnez Opportunité déclenchante, puis ID d'opportunité.
            6. Pour Nombre d’enregistrements à stocker, sélectionnez Tous les enregistrements.
            7. Pour Comment stocker les données d'enregistrement, sélectionnez Stocker automatiquement tous les champs.

          Ajout d'une décision de vérification pour les membres de l'équipe

          Ajoutez un élément Décision pour éviter le traitement en l'absence de membres de l'équipe.

          1. Cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Décision.
          2. Configurez la décision.
            1. Dans Étiquette, saisissez Membres de l'équipe ?.
            2. Le nom d'API est automatiquement rempli.
            3. Dans Étiquette du résultat, saisissez Oui.
            4. Le nom d'API est automatiquement rempli.
            5. Pour Ressource, sélectionnez Rôles de contact d'opportunité dans Obtenir les membres d'équipe d'opportunité.
            6. Pour Opérateur, sélectionnez Est Nul.
            7. Pour Valeur, sélectionnez False.
            8. Cliquez sur Résultat par défaut.
            9. Dans Étiquette, saisissez Non.

          Ajout d'un élément Boucle

          Ajoutez un élément Boucle pour itérer à travers les membres de l'équipe.

          1. Dans le chemin Oui, cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Boucle.
          2. Configurez la boucle.
            1. Dans Étiquette, saisissez Importer via les membres de l'équipe.
            2. Le nom d'API est automatiquement rempli.
            3. Pour Variable de collection, sélectionnez Rôle du contact de l'opportunité dans Obtenir les membres de l'équipe d'opportunité.
              Cette ressource est affichée au singulier, même si elle contient plusieurs enregistrements.
            4. Dans Direction, sélectionnez Premier à dernier élément.

          Élaboration d'enregistrements de tâche dans la boucle

          Remplissez les valeurs de champ de la variable d'enregistrement TaskRecord pour chaque membre de l'équipe dans la boucle.

          1. Après Pour chaque, cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Attribution.
          2. Configurez l'attribution.
            1. Dans Étiquette, saisissez Élaborer un enregistrement de tâche.
            2. Le nom d'API est automatiquement rempli.
            3. Pour Variable, sélectionnez TaskRecord, puis Objet.
            4. Pour Opérateur, sélectionnez Égal à.
            5. Dans Valeur, saisissez Suivi sur l'opportunité fermée.
            6. Cliquez sur + Ajouter attribution.
            7. Continuez à ajouter des attributions et à définir des valeurs.
              Ressource Opérateur Valeur
              TaskRecord > Statut Égal à Pas commencé
              TaskRecord>Priorité Égal à Élevée
              TaskRecord > Attribué à ID Égal à Élément actuel dans Boucle>ID de contact
              TaskRecord>Related To ID Égal à Déclenchement Opportunité>ID d'opportunité

          Ajout de tâches à la collection

          Ajoutez chaque enregistrement de tâche à la variable de collection TasksToCreate pour la création en masse.

          1. Après l'élément Attribution, et toujours dans la boucle, cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Attribution.
          2. Configurez l'attribution.
            1. Dans Étiquette, saisissez Ajouter une tâche à la collection.
            2. Pour Variable, sélectionnez TasksToCreate.
            3. Pour Opérateur, sélectionnez Ajouter.
            4. Pour Valeur, sélectionnez TaskRecord, puis Ressource entière.

          Création de toutes les tâches après la boucle

          Utilisez un seul élément Créer des enregistrements pour créer toutes les tâches en une seule opération.

          1. Une fois la boucle terminée, cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Créer des enregistrements.
          2. Configurez l'élément.
            1. Dans Étiquette, saisissez Créer toutes les tâches.
            2. Pour Comment définir les valeurs de champ d'enregistrement, sélectionnez À partir d'une variable d'enregistrement.
            3. Pour Nombre d'enregistrements à créer, sélectionnez Multiple.
            4. Dans Collection d'enregistrements, sélectionnez TasksToCreate.
          3. Enregistrez le flux.
          4. Dans Étiquette, saisissez Créer des tâches pour les membres de l'équipe d'opportunité.
          5. Le nom d'API est automatiquement rempli.

          Ajout du traitement des erreurs

          Configurez la gestion des défauts pour capturer et signaler les erreurs.

          1. Pour gérer les erreurs, ajoutez un chemin de défaut à l'élément Créer des enregistrements.
            1. Cliquez sur les trois points de l'élément Créer toutes les tâches, puis sélectionnez Ajouter un chemin de défaut.
          2. Pour notifier les administrateurs Salesforce des échecs dans le parcours de défaut, ajoutez une action Envoyer un e-mail.
            1. Dans le chemin de défaut, cliquez sur Icône Ajouter un élément plus, puis recherchez et sélectionnez Envoyer un e-mail.
            2. Dans Étiquette, saisissez Notifier l'administrateur de l'erreur.
            3. Le nom d'API est automatiquement rempli.
            4. Dans Adresses du destinataire, saisissez l'adresse e-mail de la personne dont vous souhaitez recevoir la notification.
            5. Dans Objet, saisissez Un flux nécessite votre attention
            6. Dans Corps, saisissez Le flux Créer des tâches pour les membres d'équipe d'opportunité contient une erreur. Voici l'erreur : .
            7. Cliquez sur Insérer une ressource.
            8. Sélectionnez Flux en cours, puis Message de défaut.
          3. Enregistrez votre travail.

          Test avec des données en masse

          Le test de flux en masse nécessite de simuler des opérations en masse.

          1. Pour tester un enregistrement individuel, utilisez le mode Débogage pour mettre à jour une opportunité et vérifier que le flux crée correctement des tâches.
          2. Activez le flux.
          3. Pour tester des opérations en masse dans une organisation sandbox, utilisez l'assistant d'importation de données, Data Loader ou une vue de liste pour mettre à jour plusieurs opportunités à la fois.
            1. Créez entre 10 et 20 opportunités de test.
            2. Ajoutez des membres à chaque opportunité.
            3. Utilisez Data Loader ou la mise à jour en masse pour changer l'étape sur « Fermé gagné » dans toutes les opportunités simultanément.
            4. Vérifiez que le flux crée toutes les tâches sans erreur.
          4. Pour vérifier les performances, consultez le journal de débogage Apex afin de confirmer que la consommation de temps processeur respecte les limites acceptables.

          Techniques d'optimisation supplémentaires

          Optimisez davantage les flux en masse avec ces techniques.

          Utilisation de conditions d'entrée pour limiter l'exécution

          Ajoutez des conditions à l'élément Démarrer du flux pour vous assurer qu'il est exécuté uniquement lorsque nécessaire. Par exemple, traitez uniquement les opportunités supérieures à un certain montant ou de types d'enregistrement spécifiques.

          Considérations relatives à l'après-enregistrement pour les opérations non critiques

          Une fois l'opportunité enregistrée, les flux déclenchés par un enregistrement peuvent créer des tâches de suivi. Ils sont exécutés de façon asynchrone et ont des limites de gouverneur plus élevées.

          Processus par lot pour des volumes très importants

          Si les opportunités ont régulièrement des dizaines de membres d'équipe, utilisez un flux planifié qui traite les opportunités fermées par lots plutôt qu'en temps réel.

          Conversion des flux existants

          Convertissez les flux avec des opérations DML (Data Manipulation Language) en boucles vers des modèles en masse.

          Si vous avez des flux existants avec des opérations DML en boucle, procédez comme suit pour les convertir.

          1. Pour rechercher des opérations DML dans des boucles, identifiez tous les éléments Créer des enregistrements, Mettre à jour les enregistrements et Supprimer des enregistrements dans les boucles.
          2. Pour chaque élément DML, effectuez la conversion.
            1. Pour élaborer des enregistrements, créez une variable d'enregistrement pour ce type d'objet.
            2. Pour stocker les enregistrements que vous souhaitez traiter, créez une variable de collection d'enregistrement pour ce type d'objet.
            3. Pour enregistrer les valeurs de champ des enregistrements, utilisez un élément Attribution afin d'attribuer des valeurs à la variable d'enregistrement.
            4. Pour collecter les enregistrements à traiter, utilisez une Attribution pour ajouter la variable d'enregistrement à la collection d'enregistrements.
            5. Pour créer efficacement des enregistrements, après la boucle, ajoutez un élément DML qui traite toute la collection d'enregistrements.
          3. Pour vérifier la conversion, effectuez des tests approfondis avec des données en masse afin de vérifier le bon fonctionnement de la refactorisation.
           
          Chargement
          Salesforce Help | Article