Exploitation optimale des variables et des valeurs globales
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Référencer les champs de l’utilisateur actif dans Flow Builder
- Référencer le rôle et les informations de profil de l’utilisateur actif dans Flow Builder
- Référencer des étiquettes personnalisées dans Flow Builder
- Référencer des métadonnées personnalisées dans Flow Builder
Présentation des variables globales
Des variables globales sont présentes dans chaque flux. Vous ne les créez pas et vous ne pouvez pas modifier leurs valeurs dans le flux. Elles permettent d’autoriser votre flux à accéder à des données très utiles, qui peuvent être différentes à chaque fois que celui-ci s’exécute.
Vous pouvez utiliser des variables globales dans les champs qui vous permettent de sélectionner une ressource. Ces champs contiennent généralement du texte d’espace réservé tel que « Enter value or search resources… » (Saisissez une valeur ou recherchez des ressources…) ou « Insert a resource… » (Insérez une ressource…)
Dans Flow Builder, les variables globales se comportent de la même manière que les objets et les champs : chaque variable globale contient plusieurs valeurs. Pour utiliser une variable globale dans un flux, procédez comme suit :
- Lors de la création ou de la modification d’un élément, cliquez dans un champ qui vous permet de sélectionner une ressource. Flow Builder affiche les ressources que vous pouvez placer dans ce champ.
- Sous Global Variables (Variables globales), sélectionnez une variable commençant par $. Flow Builder affiche les champs disponibles pour la variable sélectionnée.
- Sélectionnez le champ contenant la valeur que vous souhaitez utiliser.
Obtention des valeurs de champ de l’utilisateur actif
La variable globale $User (ou, dans certains éléments, la variable globale Running User [Utilisateur actif]) permet à votre flux d’obtenir un aperçu de l’utilisateur se trouvant derrière l’écran. Nous ne disons pas ça au sens littéral, bien entendu. Toutefois, elle donne à votre flux l’accès aux données de l’utilisateur qui l’exécute. Utilisez la variable globale $User pour accéder à des données telles que l’ID de l’utilisateur actif, son nom, l’ID de son responsable, son adresse e-mail et bien plus encore.
Les responsables commerciaux de Pyroclastic veulent être prévenus lorsqu’un membre de l’équipe ferme une opportunité importante en indiquant que celle-ci est perdue. Flo vous demande d’automatiser l’envoi de cette notification en lui faisant prendre la forme d’une publication Chatter adressée au responsable du propriétaire de l’opportunité. La personne qui ferme l’opportunité n’est pas nécessairement le propriétaire de celle-ci. La notification doit donc indiquer qui a effectué la modification.
Vous disposez déjà d’un flux qui s’exécute lorsque le paramètre StageName d’une opportunité prend la valeur Closed Lost (Fermée perdue) : Create Follow-Up with Decision Maker (Créer un suivi avec le décideur). Ajoutez dans ce flux une action qui a pour effet d’envoyer une publication Chatter au responsable du propriétaire de l’opportunité.
Tout d’abord, vous devez identifier le responsable du propriétaire. Comme vous l’avez fait dans l’unité 2, utilisez un élément Get Records (Obtenir des enregistrements) pour récupérer des informations, puis utilisez celles-ci dans un élément Action.
Récupération du responsable du propriétaire
- Ouvrez le flux Create Follow-Up with Decision Maker (Créer un suivi avec le décideur).
- Dans la zone de dessin du flux, après l’élément Get Decision Maker (Obtenir le décideur), cliquez sur . Sélectionnez Get Records (Obtenir des enregistrements).
- Pour Label (Étiquette), saisissez
Get Owner Manager
(Obtenir le responsable du propriétaire).
N’oubliez pas que comme ce nom est utilisé pour étiqueter la variable générée, il est préférable d’utiliser un nom descriptif.
- Dans Object (Objet), sélectionnez User (Utilisateur).
- Pour Condition Requirements (Exigences de condition), sélectionnez All Conditions Are Met (AND) (Toutes les conditions sont remplies [ET]).
- Dans la section Filter Records (Filtrer les enregistrements), définissez les conditions qui indiquent à l’élément quels enregistrements récupérer :
- Field (Champ) : Id
- Opérateur : Égal à
- Value (Valeur) : $Record> Owner (Propriétaire)> ManagerId
- Cliquez sur dans le panneau New Get Records (Nouveau Obtenir des enregistrements) pour fermer celui-ci.
Vous disposez désormais d’une variable d’enregistrement qui contient tous les champs concernant le responsable du propriétaire de l’opportunité, y compris ceux indiquant son nom et son adresse e-mail. Ensuite, vous devez utiliser un élément Action pour créer la publication Chatter.
Création d’un modèle de texte
- Dans Flow Builder, cliquez sur pour ouvrir la boîte à outils, si elle n’est pas déjà ouverte.
- Cliquez sur Nouvelle ressource.
- Pour Resource Type (Type de ressource), sélectionnez Text Template (Modèle de texte).
- Pour API Name (Nom d’API), saisissez
ChatterPostManager
.
- En regard du champ Resource Picker (Sélecteur de ressources), modifiez View as Rich Text (Afficher en texte enrichi) en View as Plain Text (Afficher en texte brut).
- Dans le champ Resource Picker (Sélecteur de ressources), sélectionnez User from Get_Owner_Manager (Utilisateur provenant de Obtenir_le_responsable_du_propriétaire) > Id (ID).
Un champ de fusion correspondant au nom du responsable est inséré au début du corps du message.
- Ajoutez des crochets [ ] autour du champ de fusion, comme ceci :
[{Get_Owner_Manager.Id}]
([{Obtenir_le_responsable_du_propriétaire.ID}]) - Ajoutez maintenant le symbole @ au début et un deux-points à la fin, comme ceci :
@[{Get_Owner_Manager.Id}]:
- Après le signe deux-points, commencez une nouvelle ligne et saisissez :
This opportunity was marked Closed Lost. Closed by:
- Laissez une espace, puis insérez trois autres champs de fusion à l’aide de la variable globale $User, qui figure dans la section Global Variables (Variables globales). Veillez bien à ajouter une espace entre eux afin qu’ils ne se touchent pas :
-
$User> FirstName
-
$User> LastName
-
$User> Email (E-mail)
[Texte alternatif : fenêtre New Resource (Nouvelle ressource) correspondant aux étapes précédentes.]
- Cliquez sur Terminé.
Ensuite, vous allez utiliser le modèle de texte dans un élément Action afin d’effectuer une publication dans le fil Chatter de l’opportunité.
Envoi d’une notification au responsable via une publication Chatter
- Après l’élément Get Owner Manager (Obtenir le responsable du propriétaire), cliquez sur . Saisissez
post
(publier) dans la barre de recherche.
- Sélectionnez Post to Chatter (Publier dans Chatter).
- Pour Label (Étiquette), saisissez
Chatter Post to Manager
(Envoi d’une publication Chatter au responsable).
- Pour Message, sélectionnez le modèle de texte ChatterPostManager.
- Pour Target Name or ID (Nom ou ID de la cible), sélectionnez Triggering Opportunity (Opportunité déclenchante) > Owner ID (ID de propriétaire).
- Cliquez sur Terminé.
- Enregistrez le flux.
Obtention du profil et des valeurs de rôle de l’utilisateur actif
Lors de la création de flux, évitez de coder en dur les ID. Le codage en dur consiste à saisir manuellement un ID Salesforce dans des flux ou du code. Un exemple de codage en dur dans un élément Update Records (Mettre à jour les enregistrements) serait de définir des critères pour rechercher l’ID « 005i000006rZRFU ». Au lieu de cela, vous devez récupérer l’ID avec un élément Get Records (Obtenir des enregistrements) et vérifier l’ID stocké dans la variable d’enregistrement de cet élément Get Records (Obtenir des enregistrements).
Quel rapport cela a-t-il avec les variables globales ? À un certain stade, vous souhaiterez peut-être accéder au profil ou au rôle de l’utilisateur. Supposons que votre organisation soit divisée en territoires, attribués aux vendeurs en tant que rôles d’utilisateur. Les territoires de l’Ouest (Sales-West1 [Ventes-Ouest1], Sales-West2 [Ventes-Ouest2] et Sales-West3 [Ventes-Ouest3]) utilisent un calcul de remise différent de celui des autres territoires. Pour calculer correctement les remises, un flux doit obtenir le rôle de l’utilisateur actif pour confirmer s’il est affecté à l’un des territoires de l’Ouest.
Flo essaie d’utiliser la variable globale $User pour trouver le rôle de l’utilisateur actif, mais la seule valeur de rôle y figurant est l’ID du rôle. Elle sait très bien qu’il ne vaut mieux pas coder en dur un identifiant dans son flux. Heureusement, il existe un autre moyen d’accéder aux informations du rôle de l’utilisateur actif : la variable globale $UserRole (ou, dans certains éléments, la variable globale Running User Role [Rôle utilisateur actif]). Celle-ci peut accéder à de nombreuses valeurs figurant dans le rôle de l’utilisateur actif.
De même, la variable globale $Profile (ou, dans certains éléments, la variable globale Running User Profile [Profil utilisateur actif]) doit être utilisée dans des situations similaires où le flux doit accéder aux valeurs de profil de l’utilisateur actif. La seule valeur de profil dans $User est l’ID du profil, mais tout comme $UserRole pour les rôles, $Profile accorde l’accès au reste des valeurs du profil.
Pour éviter d’avoir recours au codage en dur lors de la vérification du rôle de l’utilisateur actif, référencez $UserRole > DeveloperName. Pour le profil, référencez $Profile > Name (Nom).
Récupération d’étiquettes personnalisées
Si les utilisateurs de votre organisation travaillent en employant plusieurs langues, les étiquettes personnalisées sont très utiles. Les étiquettes personnalisées contiennent une chaîne de texte que vous pouvez traduire dans plusieurs langues. Une fois les traductions définies, Salesforce présente à chaque utilisateur des étiquettes personnalisées rédigées dans sa langue maternelle. Vous pouvez même utiliser des étiquettes personnalisées dans les flux.
Dans Flow Builder, utilisez la variable globale $Label (ou, dans certains éléments, la variable globale Custom Label [Étiquette personnalisée]) pour placer une étiquette personnalisée à n’importe quel emplacement acceptant une ressource textuelle, telle que des composants d’écran, des valeurs de champ par défaut et des formules de texte. Dans cet exemple, lors de la création d’un enregistrement de tâche, la valeur du champ Subject (Objet) est définie sur la variable globale TaskPrintLabels. Désormais, lorsque les utilisateurs visualisent la tâche, son objet est énoncé dans leur propre langue.
L’exemple suivant concerne un composant Display Text (Texte d’affichage) sur un écran de flux. Dans le champ Resource Picker (Sélecteur de ressources), lorsque $Label est sélectionné, les étiquettes personnalisées disponibles sont répertoriées. Si vous sélectionnez une étiquette, vous l’ajoutez à la zone de texte du composant.
Autres variables globales importantes
Il existe quelques autres variables globales qui peuvent être utiles lors de la création de flux.
Variable globale |
Fonction |
---|---|
$Flow.CurrentDate (ou Running Flow Interview [Interview de flux en cours d’exécution] > CurrentDate)
|
Récupère la date à laquelle l’élément est exécuté |
$Flow.CurrentDateTime (ou Running Flow Interview [Interview de flux en cours d’exécution] > CurrentDateTime)
|
Récupère la date/l’heure d’exécution de l’élément |
$Flow.InterviewStartTime (ou Running Flow Interview [Interview de flux en cours d’exécution] > InterviewStartTime)
|
Récupère la date/l’heure auxquelles le flux a commencé à s’exécuter pour la première fois |
$Flow.FaultMessage (ou Running Flow Interview [Interview de flux en cours d’exécution] > FaultMessage)
|
Récupère le message d’erreur présenté lorsqu’un flux s’arrête de s’exécuter en raison d’une erreur |
$Organization (ou Running Org [Organisation active])
|
Récupère les informations trouvées sur la page Company Information (Informations sur la société) dans Setup (Configuration), comme le nom ou l’adresse de votre organisation |
$Record (ou Triggering [object name] [[Nom de l’objet] déclenchant])
|
Dans un flux déclenché par un enregistrement, $Record récupère les données de l’enregistrement qui a déclenché le flux. (Vous avez utilisé cette variable globale dans un défi pratique pour obtenir le nom de l’entreprise et l’ID d’un prospect nouvellement créé.) Vous pouvez aussi utiliser $Record aux fins suivantes :
Pour en savoir plus sur $Record, consultez le badge Flux déclenchés par des enregistrements. |
Récupération des valeurs de métadonnées personnalisées
Les métadonnées personnalisées ne sont pas une variable globale. Par contre, elles constituent un ensemble de valeurs auxquelles vous pouvez accéder de façon globale dans Flow Builder et dans toute votre organisation Salesforce. Par exemple, un type de métadonnées personnalisées peut être utilisé dans des flux, du code, des règles de validation, etc.
Dans Flow Builder, vous récupérez des métadonnées personnalisées de la même manière que vous récupérez des enregistrements d’objet : vous employez pour ce faire l’élément Get Records (Obtenir des enregistrements). Lors de la sélection de l’objet, sélectionnez le type de métadonnées personnalisées.
Pour plus d’informations et des exemples de cas d’utilisation, consultez le module Trailhead Concepts de base des types de métadonnées personnalisées, notamment l’unité Utilisation de types de métadonnées personnalisées dans les flux.
Ressources
- Blog des administrateurs Salesforce : Pourquoi devriez-vous éviter le codage en dur et trois solutions alternatives
- Série « Automatisons ! » dédiée aux administrateurs Salesforce - Vidéo : Automatisons ! - Envoyer automatiquement des notifications de requêtes avec Flow
- Trailhead : Concepts de base des types de métadonnées personnalisées