• Accueil / Salesforce / Comment j’ai résolu…
, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

Comment j’ai résolu ce problème: remplir les bacs à sable avec Flow11 minutes de lecture


Bienvenue dans un autre article de la série «Comment j’ai résolu ça». Dans cette série, nous approfondissons un problème commercial spécifique et expliquons comment un #AwesomeAdmin a choisi de le résoudre. Une fois que vous saurez comment ils ont résolu leur problème spécifique, vous serez inspiré pour essayer leur solution vous-même! Voyons comment Samantha Shain a pu documenter toutes les options d’amorçage des sandbox avec des données de test.

Problème commercial clé:

En tant que #AwesomeAdmin, je passe beaucoup de temps à réfléchir à la meilleure façon d’équiper et de permettre à mon équipe de tirer le meilleur parti de notre instance Salesforce. Lorsque nous accueillons une nouvelle recrue, je souhaite fournir un environnement Salesforce désigné dans lequel elle peut apporter des modifications, faire des erreurs et, surtout, apprendre! Cependant, lorsque je crée de nouveaux bacs à sable, ils sont vides et leur remplissage avec des données prend BEAUCOUP trop de temps pour une organisation en pleine croissance avec beaucoup de nouveaux employés. je réunis avec un groupe de fidèles pionniers à documenter toutes les options d’amorçage des sandbox avec des données de test. La solution Flow-based que nous avons conçue transforme les heures de travail en cliquant sur un seul bouton – le tout avec des clics, pas du code!

Arrière-plan:

Mon parcours d’ensemencement dans un bac à sable rappelle la vieille fable, Boucle d’or et les trois ours. Il y avait de nombreuses façons de le faire, mais chacune était soit trop manuelle (pointez et cliquez pour créer des enregistrements un à la fois), soit trop chère (achetez une application tierce), ou exigeait trop de compétences en codage (qu’est-ce qu’Apex , de nouveau?). Comme Boucle d’or et son porridge, j’avais besoin d’une solution «parfaite». Pour moi, cela signifiait qu’il devait être rapide à construire et à utiliser, flexible, déclaratif, fiable, facile à entretenir et gratuit.

Grâce à mon flux de confiance, à partir de maintenant, chaque fois que nous embauchons un nouveau membre du personnel, je peux créer un bac à sable en quelques minutes avec données triées sur le volet, prêtes à l’emploi! Mon personnel bénéficie d’une formation de meilleure qualité et plus cohérente, et j’ai l’esprit tranquille en sachant que nous ne créons pas de données de «test» en production. Imaginez combien de temps vous pouvez gagner lorsque vous ne créez pas manuellement des données!

Mot aux sages: Il s’agit d’une application inhabituelle des outils Flow qui évite certaines «meilleures pratiques» éprouvées – mais avec prudence et au service d’un objectif clair. Cette solution est parfaite pour les petits ensembles de données dans un environnement sandbox. Vous pouvez atteindre des limites si vous créez un ensemble de données contenant trop d’enregistrements (~ 50 est notre recommandation). Le flux utilise de nombreux composants de flux «Créer» et «Obtenir» en raison de certaines limitations de flux inhérentes. Si cela était mis à l’échelle pour la production ou pour de grands ensembles de données, cela deviendrait rapidement impossible. Mais pour mon objectif administratif, c’était juste! À utiliser avec prudence et créativité!

Comment je l’ai résolu:

J’ai créé un flux que je peux utiliser pour remplir chaque nouveau bac à sable avec des données selon mes spécifications exactes.

1. Dessinez-le

Afin de créer un ensemble de données avec des données de test réalistes, j’ai dû me familiariser avec le modèle de données de mon organisation. Pour les apprenants visuels, consulter Schema Builder dans Salesforce ou un diagramme de relation d’entité (ERD) peut vous aider à voir comment vos objets sont liés les uns aux autres.

Une fois que vous savez quels objets vous traitez, il est temps de commencer à penser à des scénarios. Pour nous, cela signifiait utiliser une combinaison de types d’enregistrement, de valeurs de champ et d’enregistrements enfants qui représentent différentes situations que nous suivons dans Salesforce. Par exemple, j’ai besoin d’au moins un compte d’organisation qui a une subvention attribuée (en d’autres termes, une opportunité fermée-gagnée). Par ailleurs, j’ai besoin d’un enregistrement d’organisation qui a une soumission de subvention active. Et j’ai besoin d’une organisation qui a des «dons de contrepartie» attribués à différents donateurs. Pour que chacun de ces scénarios soit réaliste, je dois créer des données associées, telles que des paiements, des contacts et des enregistrements de jonction délicats dont nous parlerons plus tard.

Voici une photo de ma petite carte de données, des taches de café et tout! Je pense à un enregistrement à la fois, pas seulement au niveau de l’objet.

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

2. Suivez le courant

Maintenant que nous avons esquissé notre modèle de données et nos scénarios, il est temps de commencer à créer notre flux… dans un bac à sable, bien sûr! Commencez par actualisation ou création d’un nouveau bac à sable pour développeur. Connectez-vous à ce bac à sable, puis accédez à Flow dans le menu Setup. Nouveau sur Flow? Intimidé? Cette solution est un excellent moyen de commencer! Si je peux le faire, je sais que vous pouvez le faire aussi.

J’ai décidé d’utiliser un flux lancé automatiquement (pas de déclencheur) pour ma solution. Pourquoi? Eh bien, il n’y a pas de données dans le système pour «déclencher» un flux et je n’avais pas besoin d’un élément Screen pour interagir. Le flux lancé automatiquement est un peu un nom trompeur dans ce cas – le flux ne se «lancera jamais» mais attendra plutôt que vous cliquiez sur le bouton «Exécuter» dans un bac à sable nouvellement créé ou actualisé. J’ai donné à mon flux un nom simple: « Seed Sandbox ».

Le premier objet sur lequel j’ai travaillé était Campagnes, car je savais que je devais avoir des campagnes déjà créées afin de remplir le champ Source de la campagne principale dans Opportunités. Si vous savez que vous créez des enregistrements dans lesquels vous devez remplir un champ de recherche (comme Contacts), assurez-vous qu’un enregistrement a déjà été créé afin que vous puissiez le lier (compte).

Vous trouverez ci-dessous une capture d’écran avec tous les éléments Flow liés aux campagnes. J’ai créé deux enregistrements de campagne et, comme vous pouvez le voir, j’ai six éléments sur mon canevas de flux. Dans la prochaine étape, nous allons plonger dans ce qu’ils font. Chacun a un rôle important à jouer dans l’ensemencement de notre bac à sable.

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

3. Apprenez vos éléments de flux

Faisons un zoom arrière sur nos éléments pendant un instant. Avant même de créer des éléments, je pense qu’il est utile de créer vos variables Flow. Pour créer une variable, cliquez sur le Nouvelle ressource bouton, puis sélectionnez Variable, donnez-lui un nom, sélectionnez Enregistrer pour le type de données, puis sélectionnez l’objet avec lequel vous travaillez.

Ceci est important – vous avez besoin une variable pour chaque enregistrement vous créez (donc, une pour la campagne 1, une autre pour la campagne 2) et une «variable de collection» pour chaque type d’objet vous travaillez avec (donc, une variable de collection pour les campagnes, une variable de collection pour les organisations, etc.). C’est pourquoi avoir une carte de données est vraiment utile!

Une fois vos variables définies, vous pouvez commencer à leur attribuer des valeurs. C’est là que vous indiquez au flux exactement quels champs doivent être remplis dans les enregistrements qu’il va créer. Pour mes enregistrements de campagne, je les ai remplis avec le nom, la date, la description, etc.

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

L’élément d’affectation « Ajouter une campagne à la collection » est un peu délicat. Voici une image de la configuration du mien. En plaçant des enregistrements dans une collection, nous économisons du temps de traitement dans notre flux. Salesforce les créera tous en même temps au lieu d’un enregistrement à la fois. Le placement d’enregistrements dans des variables de collection est également appelé « encombrement»Et est considérée comme une meilleure pratique en matière de création de flux. Croyez-moi, j’ai appris à la dure!

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

Tout cet ordre d’opérations aboutit à l’élément Create. Voici à quoi ressemble cette définition d’élément:

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

Enfin, nous devons utiliser un élément Get pour mettre à jour notre définition de variable avec ces nouveaux identifiants d’enregistrement (afin que nous puissions référencer ces campagnes dans les champs de recherche d’autres enregistrements). Ce serait bien si Flow pouvait «se souvenir» intuitivement de l’ID de l’enregistrement qu’il vient de créer, mais ce n’est malheureusement pas le cas. (Le code Apex, dans cette même situation, connaît les ID des enregistrements qu’il vient de créer.) Dans notre solution, chaque enregistrement a son propre élément Get. Jetons un coup d’œil à cet élément Get Records.

Tout d’abord, nous recherchons les enregistrements de campagne par nom pour trouver celui que nous venons de créer. J’ai copié-collé le nom de la campagne à partir de l’élément d’affectation que j’ai utilisé précédemment.

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

Ensuite, j’ai choisi ma variable « Campagne 1 » et l’ai mise à jour pour inclure un identifiant. C’est un peu contre-intuitif car vous n’apportez aucune autre modification à l’enregistrement, mais c’est une étape nécessaire pour atteindre l’objectif.

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

Wow, c’était beaucoup de travail juste pour faire deux records de campagne. Il peut sembler plus rapide de créer deux campagnes à l’ancienne – connectez-vous simplement à votre bac à sable et créez-les manuellement! Mais n’oubliez pas que vous devez les créer dans chaque bac à sable de formation que vous créez. Une fois que vous avez commencé à ajouter des comptes, des contacts, des opportunités, des paiements et tous les objets personnalisés dans toutes ces organisations Salesforce, vous pouvez décider que vous préférez tirer parti de la puissance du flux pour faire le travail à votre place. Je fais certainement!

En grandissant et en regardant beaucoup d’émissions de cuisine, j’ai toujours anticipé le moment où le chef mettrait la pâte à gâteau dans un four et sortait un gâteau parfaitement cuit de l’autre four. C’est l’occasion pour moi de sauter les instructions et de vous montrer comment mon attribution d’opportunité fait référence à la campagne que nous avons créée ci-dessus. Supposons que j’ai déjà créé des organisations, des contacts, etc.!

Dans l’élément Affectation ci-dessous, je renseigne un champ de recherche sur un enregistrement d’opportunité (dans ce cas, le champ s’appelle «Réunion du conseil d’administration / Dossier» avec «ID de dossier» que j’avais précédemment créé et stocké dans mon flux. utilisez la même manœuvre pour l’ID d’organisation (compte).

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

Au fur et à mesure que vous continuez à créer les variables d’affectation, les variables de collection, l’élément Create et l’élément Get pour chaque enregistrement / objet, votre flux deviendra assez long. N’ayez pas peur d’un petit défilement. Lorsque vous avez terminé, vous aurez mappé tous les enregistrements de votre ensemble de données. Ensuite, il est temps de l’exécuter et de remplir votre nouveau bac à sable avec des données.

4. Exécutez votre flux!

Cette étape est simple! Depuis votre flux, cliquez sur le bouton Cours bouton. Selon le nombre d’enregistrements que vous créez, son exécution peut prendre une minute ou deux.

, Comment j&rsquo;ai résolu ce problème: remplir les bacs à sable avec Flow<span class="wtr-time-wrap after-title"><span class="wtr-time-number">11</span> minutes de lecture</span>

5. Enregistrez votre flux pour la postérité

Tu l’as fait! Votre flux remplit votre sandbox avec des données exactement comme vous le souhaitez. Miraculeux!

Cependant, votre flux existe actuellement seul dans votre bac à sable actuel. Vous pouvez utiliser un jeu de modifications pour déplacer votre création vers Production. Souviens-toi, nous sommes ne pas va exécuter ce flux dans Production – vous avez déjà beaucoup de données là-bas! Nous avons juste besoin de les stocker sous forme de métadonnées dans Production afin que Salesforce les place automatiquement dans votre suivant bac à sable de formation du personnel. C’est l’une des parties les plus élégantes de la solution – nous stockons essentiellement des proto-données sous forme de métadonnées.

6. Gardez à l’esprit

J’ADORE la fonctionnalité «Déboguer sur canevas» de Flow, qui récemment reçu un coup de pouce supplémentaire. Lorsque vous l’utilisez, assurez-vous de cocher «Exécuter le flux en mode de restauration», sinon vous passerez beaucoup de temps à supprimer des enregistrements dans votre bac à sable pendant que vous testez.

Si la «mise en page automatique» est désactivée, vous pouvez sélectionner n’importe quel élément Flow et le «copier», ce qui vous fait gagner un peu de temps lorsque vous créez des exemples répétitifs! L’opportunité 1 et l’opportunité 2 peuvent être assez similaires, après tout…

Méfiez-vous des limites. Vous ne pouvez utiliser que 150 expressions de langage de manipulation de données (DML) dans un flux. Chaque élément «Créer», «Obtenir», «Mettre à jour» ou «Supprimer» est considéré comme un DML dans le back-end de Flow. Par conséquent, l’ensemble de données de test est intrinsèquement limité à environ 140 enregistrements (sur 10 objets), ou moins d’enregistrements si vous touchez plus d’objets. La formule est [# of records] + [# of objects] autres limites auxquelles vous voulez faire attention. N’oubliez pas que si votre organisation a d’autres déclencheurs / flux / automatisation qui s’exécutent lorsque vous créez des données, vous atteindrez ces limites plus rapidement.

7. Élargissez la fonctionnalité

Que faire si vous avez besoin de dates relatives ou d’une autre logique à l’intérieur de votre flux pour rendre votre jeu de données plus réaliste? Vous pouvez le faire avec des définitions de variables plus avancées.

Cela semble blasphématoire, mais que se passe-t-il si vous voulez créer des données avec des écarts délibérés? Vous pouvez toujours exécuter tous vos tableaux de bord et rapports d’exceptions dans votre bac à sable – cela pourrait être un excellent «moment d’apprentissage» pour votre nouveau personnel. Montrez et dites comment repérer les erreurs courantes et comment les corriger!

Que faire si vous disposez de plusieurs flux d’amorçage sandbox pour différents scénarios? Dans un contexte à but non lucratif, vous pourriez avoir besoin d’ensembles de données très différents pour la formation aux communications, au développement (collecte de fonds) ou aux programmes. Dans ce cas, vous pouvez créer plusieurs flux que vous exécutez à l’aide du bouton «Exécuter» respectif. Vous pouvez également créer un flux d’écran que vous ajoutez à la page d’accueil dans une application de votre bac à sable et utiliser cet élément interactif pour lancer votre flux préféré. Nourriture pour la pensée!

Et si vous avez besoin de générer plus de 50 enregistrements? Malheureusement, le flux déclaratif ne peut pas s’adapter à cela, mais de nombreuses autres solutions le peuvent certainement! Reportez-vous au vaste, rédigé par la communauté Guide de génération de données pour les options.

Et si vous avez besoin de générer des données différentes à chaque fois? Se référer au Guide de génération de données pour en savoir plus sur Snowfakery, ou cet article utile sur le blog Salesforce Architects.

Résultats commerciaux:

En quelques minutes, je peux remplir n’importe quel bac à sable avec un petit ensemble de données de test et de formation, mais hautement personnalisé. Maintenant, je peux créer du matériel de formation durable qui correspond aux enregistrements du bac à sable. Cela améliorera la qualité de ma formation et me fera gagner du temps à long terme. De plus, la formation dans le bac à sable nous aidera à garder nos données en production parfaitement propres!

Essayez ceci à la maison

Dites-nous ce que vous avez pensé de cette solution et dites-nous comment vous souhaitez l’utiliser avec #AwesomeAdmins #HowISolvedThis.

Un merci spécial à tous ceux qui ont contribué à ce post, y compris le L’équipe Open Source Commons Data Generation Toolkit, Jessie Rymph et Michael Kolodner.

Badges de début de piste pertinents



Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Vous utilisez Pardot depuis un certain temps mais vous n'êtes pas sûr d'en
exploiter tout le potentiel

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer