Loading

Affichage de sommes nulles dans les rapports et les graphiques

Date de publication: Apr 3, 2026
Description
Lorsque vous exécutez un rapport groupé dans Salesforce et qu’il n’existe aucune donnée pour un regroupement spécifique, le rapport n’affiche rien. Cela peut s’avérer frustrant, surtout lorsque l’objectif est de regrouper des données par dates et d’essayer d’analyser une tendance. Les graphiques affichent uniquement les dates associées à une valeur, ce qui rend difficile l’identification des périodes sans données. Par conséquent, il y a un risque de ne pas pouvoir identifier les périodes où les affaires étaient particulièrement mauvaises.

Il existe actuellement une idée liée à cette problématique, à laquelle il est possible d’accéder via le lien suivant :
 Autorisation des sommes nulles dans les rapports
Résolution
Cet exemple décrit comment générer un rapport fondé sur l’objet Opportunité. Ici, l’objectif principal est de regrouper les données par propriétaires et date de fermeture. Il est toutefois important de noter que la même approche peut également être adaptée pour tout autre objet. 

Création d’un nouveau champ Formule sur l’objet Opportunité
Création d’un flux déclenché par une planification sur les opportunités
Création d’un flux déclenché par un enregistrement
Création d’un deuxième flux déclenché par un enregistrement

_____________________________________________________________________________________

Création d’un nouveau champ Formule sur l’objet Opportunité
Étape 1. Depuis n’importe quelle page de Lightning, cliquez sur l’icône représentant un engrenage en haut à droite. Sélectionnez Configuration et accédez à l’onglet Gestionnaire d’objet. Faites défiler la liste des objets disponibles jusqu’à ce que vous trouviez le champ Opportunité. Lorsque vous le voyez, cliquez dessus pour le sélectionner
Étape 2. Dans le menu latéral, cliquez sur Champs et relations
Étape 3. Cliquez sur Nouveau pour créer un champ personnalisé
Étape 4. Choisissez Formule en tant que type de données du champ et cliquez sur le bouton Suivant
Étape 5. Saisissez le nom de la formule dans la section Étiquette de champ en l’intitulant Nombre d’opportunités. Le nom du champ est renseigné automatiquement. Sélectionnez Nombre en tant que type de renvoi de la formule et définissez le paramètre Décimales sur 0. Cliquez ensuite sur le bouton Suivant
Étape 6. Saisissez la formule ci-dessous (voir la section exemple de formule) dans la zone de formule et cliquez sur le bouton Vérifier la syntaxe pour vous assurer qu’il n’y a pas d’erreur. Si vous le souhaitez, renseignez les zones Description et Texte d’aide 
Étape 7. Dans la section Gestion des champs vides, sélectionnez Traiter les champs vides comme tels. Cliquez sur le bouton Suivant
Étape 8. Paramétrez la sécurité au niveau du champ pour indiquer si le champ doit être visible pour des profils et des ensembles d’autorisations spécifiques, puis cliquez sur Suivant
Étape 9. Choisissez les présentations de page qui doivent afficher le champ, puis appuyez sur le bouton Enregistrer
 
fomula.jpg
 
Exemple de formule :
IF(Name="OPPORTUNITÉ FICTIVE",0,1)

Création d’un flux déclenché par une planification sur les opportunités
Étape 1. Depuis n’importe quelle page de Lightning, cliquez sur l’icône représentant un engrenage en haut à droite 
Étape 2. Sélectionnez Configuration, puis, dans la zone Recherche rapide, saisissez Flux et cliquez sur cette option
Étape 3. Cliquez sur le bouton Nouveau flux
Étape 4. Sélectionnez Flux déclenché par une planification et cliquez sur le bouton Créer
 
image.png

Étape 5. Cliquez sur +Définir une planification, puis sélectionnez la date de demain et réglez l’heure sur minuit. Assurez-vous que la fréquence est réglée sur Quotidienne, et cliquez sur Terminé
 
Set Scheduled.PNG
Daily.PNG

Étape 6. Cliquez sur le lien +Choisir un objet (facultatif) dans l’élément Démarrer et définissez l’objet sur Utilisateur
 
Set Scheduled - Copy.PNG

Étape 7. Appliquez tous les filtres nécessaires. Par exemple, vous souhaiterez peut-être exclure vos utilisateurs Experience Cloud (au moins l’utilisateur invité ; s’il est utilisé, il doit être exclu, car sa présence provoquerait des erreurs). Assurez-vous que le filtrage exclut les utilisateurs inactifs. Cliquez sur Terminé
 
Filter Condition.png

Étape 8. Ajoutez l’élément Créer des enregistrements sur la zone de dessin
a. Dans Flow Designer, cliquez sur l’icône + et sélectionnez l’élément Créer des enregistrements
b. Saisissez un nom pour l’élément dans le champ Étiquette. Le nom d’API sera automatiquement renseigné
c. Sélectionnez Un pour Nombre d’enregistrements à créer et Utiliser des ressources séparées et des valeurs littérales dans la section Comment définir les champs d’enregistrement
d. Définissez l’objet sur Opportunité
e. Ajoutez les valeurs de champ nécessaires, en vous assurant qu’une valeur est bien définie pour chaque champ obligatoire
 i. Puisque cet élément créera des opportunités, assurez-vous de définir OwnerId sur $Record.Id
 ii. Paramétrez le champ Date de fermeture sur {!$Flow.CurrentDate}
 iii. Le nom doit également être unique et correspondre exactement à la valeur figurant dans le champ de formule créé précédemment. Dans cet article, nous utiliserons OPPORTUNITÉ FICTIVE comme exemple
 iv. Enfin, configurez le champ Étape, étant donné qu’il s’agit d’un champ obligatoire :


Votre flux déclenché par une planification devrait maintenant ressembler à ceci :


Étape 9. Sélectionnez les options Enregistrer et Activer pour enregistrer et activer votre flux

Remarque : il est également possible d’exécuter un autre flux déclenché par une planification pour créer des opportunités passées et/ou futures. Cette approche peut néanmoins s’avérer plus complexe à mettre en œuvre et entraîner la création d’un grand nombre d’enregistrements. Il est donc important d’être conscient des limites en matière de flux et de stockage pour éviter tout problème.

Création d’un flux déclenché par un enregistrement
Étape 1. Cliquez sur la flèche Retour située en haut à gauche de la zone de dessin de Flow Builder et cliquez sur le bouton Nouveau flux
Étape 2. Définissez l’objet sur Opportunité et choisissez Un enregistrement est créé ou mis à jour dans la section Déclencher le flux quand
Étape 3. Sélectionnez L’évaluation de la formule est positive dans la liste déroulante Exigences de condition et saisissez dans la zone de formule la formule figurant dans la section Exemple de formule ci-dessous. Cliquez ensuite sur le bouton Vérifier la syntaxe pour vous assurer qu’il n’y a pas d’erreur
 
Record Triggered.PNG
Record Triggered 2.PNG

Exemple de formule :
AND({!$Record.Name}<>"OPPORTUNITÉ FICTIVE",OR(ISNEW(),ISCHANGED({!$Record.CloseDate})))
Étape 4. Dans la section Quand exécuter le flux pour les enregistrements mis à jour, choisissez Chaque fois qu’un enregistrement est mis à jour et remplit les exigences de condition
Étape 5. Dans Optimiser le flux pour, sélectionnez Actions et enregistrements associés et cliquez sur Terminé
Étape 6. Ajoutez un élément Obtenir des enregistrements
a. Dans Flow Designer, cliquez sur l’icône + et sélectionnez l’élément Obtenir des enregistrements
b. Saisissez un nom pour l’élément dans le champ Étiquette (par exemple, Récupérer une opportunité fictive). Le nom d’API sera automatiquement renseigné
c. Dans la liste déroulante Exigences de condition, sélectionnez Toutes les conditions sont remplies (ET). Utilisez les informations suivantes pour paramétrer vos conditions de filtrage :
 
Première condition de filtrage
  • Champ : Prénom
  • Opérateur : Égal à
  • Valeur : OPPORTUNITÉ FICTIVE
Deuxième condition de filtrage
  • Champ : OwnerId
  • Opérateur : Égal à
  • Valeur : {!$Record.OwnerId}
Troisième condition de filtrage
  • Champ : Date de fermeture
  • Opérateur : Égal à
  • Valeur :  {!$Record.CloseDate}
d. Définissez Nombre d’enregistrements à stocker sur Uniquement le premier enregistrement et Comment stocker les données d’enregistrement sur Stocker automatiquement tout, puis cliquez sur Terminé

Get Records.PNG
image.png

Étape 7. Ajoutez un élément Décision
a. Dans Flow Designer, cliquez sur l’icône + et sélectionnez l’élément Décision
b. Saisissez un nom pour l’élément dans le champ Étiquette (par exemple, Enregistrement trouvé ?). Le nom d’API sera automatiquement renseigné
c. Remplacez le nom Nouveau résultat par Oui et définissez les filtres comme suit : 
  • Variable : {!Récupérer_une_opportunité_fictive.Id}
  • Opérateur : Est nul
  • Valeur : {!$GlobalConstant.False} 
d. Remplacez le nom du résultat par défaut par Non (facultatif). Cliquez sur Terminé
 
image.png

Étape 8.  Terminez le flux dans la branche Non (par défaut) de l’élément Décision
Étape 9. Dans la branche Oui, ajoutez un élément Supprimer des enregistrements 
a. Dans Flow Designer, sous le nœud Oui, cliquez sur l’icône + et sélectionnez l’élément Supprimer des enregistrements
b. Saisissez un nom pour l’élément dans le champ Étiquette (par exemple, Supprimer les opportunités fictives). Le nom d’API sera automatiquement renseigné
c. Sélectionnez Utiliser les ID stockés dans une variable d’enregistrement ou une variable de collection d’enregistrement dans la section Comment rechercher les enregistrements à supprimer
d. Saisissez la variable Obtenir des enregistrements ({!Récupérer_une_opportunité_fictive}) dans le champ Enregistrement ou collection d’enregistrements et cliquez sur Terminé 

image.png
 
Votre flux déclenché par un enregistrement devrait ressembler à ceci : 
 

Étape 10. Sélectionnez les options Enregistrer et Activer pour enregistrer et activer votre flux

Création d’un deuxième flux déclenché par un enregistrement
Étape 1. Cliquez sur la flèche Retour située en haut à gauche de la zone de dessin de Flow Builder et cliquez sur le bouton Nouveau flux
Étape 2. Définissez l’objet sur Opportunité et sélectionnez Un enregistrement est supprimé dans la section Déclencher le flux quand
Étape 3. Dans la liste déroulante Exigences de condition, sélectionnez Toutes les conditions sont remplies (ET) et ajoutez les paramètres suivants en tant que vos conditions d’entrée :
  • Champ : Prénom
  • Opérateur : Différent de
  • Valeur : OPPORTUNITÉ FICTIVE

Delete Element.PNG

Étape 4. Cliquez sur Terminé
Étape 5. Ajoutez un élément Obtenir des enregistrements sur la zone de dessin
a. Dans Flow Designer, cliquez sur l’icône + et sélectionnez l’élément Obtenir des enregistrements
b. Saisissez un nom pour l’élément dans le champ Étiquette (par exemple, Enregistrement trouvé ?). Le nom d’API sera automatiquement renseigné. Utilisez les informations suivantes pour paramétrer vos conditions de filtrage :

Première condition de filtrage
  • Champ : Prénom
  • Opérateur : Différent de
  • Valeur : OPPORTUNITÉ FICTIVE
Deuxième condition de filtrage
  • Champ : Date de fermeture
  • Opérateur : Égal à
  • Valeur : {!$Record.CloseDate}
Troisième condition de filtrage
  • Champ : OwnerId
  • Opérateur : Égal à
  • Valeur : {!$Record.OwnerId}
Quatrième condition de filtrage
  • Champ : Id
  • Opérateur : Différent de
  • Valeur : {!$Record.Id}
Cinquième condition de filtrage
  • Champ : Date de fermeture
  • Opérateur : Inférieur ou égal à
  • Valeur : {!$Flow.CurrentDate}
c. Définissez Nombre d’enregistrements à stocker sur Uniquement le premier enregistrement et Comment stocker les données d’enregistrement sur Stocker automatiquement tout. Cliquez ensuite sur le bouton Terminé

Remarque : supprimez le dernier filtre si vous avez également créé des enregistrements OPPORTUNITÉ FICTIVE futurs
 
Edit Get Records.png

Étape 6. Ajoutez un élément Décision
a. Dans Flow Designer, cliquez sur l’icône + et sélectionnez l’élément Décision
b. Saisissez un nom pour l’élément dans le champ Étiquette (par exemple, Enregistrement trouvé ?). Le nom d’API sera automatiquement renseigné
c. Remplacez le nom du nouveau résultat par Oui et définissez les filtres comme suit :
  • Champ : {!Retrieve_opportunities.Id}
  • Opérateur : Is null
  • Valeur : {!$GlobalConstant.False}
d. Remplacez le nom du résultat par défaut par Non (facultatif). Cliquez sur Terminé
 
Record Found.PNG

Étape 7. Terminez le flux dans la branche Oui
Étape 8. Dans la branche Non de la décision, ajoutez un élément Créer des enregistrements pour créer l’opportunité fictive, de la même manière que dans le premier flux déclenché par une planification. Toutefois, définissez cette fois Date de fermeture sur {!$Record.CloseDate}. Cliquez sur Terminé
 
Edit Create Records.png

Votre deuxième flux déclenché par un enregistrement devrait ressembler à ceci :
 

Étape 9. Sélectionnez les options Enregistrer et Activer pour enregistrer et activer votre flux
 
Vous pouvez désormais créer un rapport portant sur les opportunités qui ont une date de fermeture antérieure ou identique à celle du jour actuel.  Si vous avez créé une opportunité fictive associée à des dates futures, vous pouvez définir la plage de dates sur une période future dans le rapport. Dans ce cas, vous devez utiliser au sein du rapport la somme générée par le champ de formule que vous avez créé au début, et non le nombre d’enregistrements. Veillez également à désactiver le paramètre Nombre de lignes à l’aide du commutateur correspondant.



Vous pouvez également générer un rapport relatif au champ Montant, qui affichera 0 dans un graphique puisqu’il n’est pas paramétré dans les flux. 



Remarque : cette solution peut utiliser une quantité relativement importante d’espace de stockage. Assurez-vous donc de supprimer fréquemment les enregistrements fictifs inutiles.

_____________________________________________________


Écrit par : Eric Praud | MVP Salesforce
Eric est consultant senior chez Epam PolSource et travaille dans l’écosystème Salesforce depuis 12 ans. Il a commencé sa carrière Salesforce en tant qu’agent de support Salesforce. Comme beaucoup d’autres professionnels, il est tombé par hasard sur la plate-forme et ne l’a pas quittée depuis. Eric est très actif dans la communauté Answers et est un MVP Salesforce depuis mars 2021.


Les Soumissions reflètent uniquement les opinions des utilisateurs qui les ont publiées et non celles de Salesforce, que les utilisateurs soient affiliés ou non à Salesforce. Les Soumissions peuvent contenir des produits, des services, des informations, des données, des contenus et d’autres éléments partagés par ou au nom de tiers (« Documents tiers »). Salesforce ne contrôle ni n’approuve, et n’est pas non plus responsable de tout Contenu de tiers, notamment de leur exactitude, validité, actualité, exhaustivité, fiabilité, intégrité, qualité, légalité, utilité ou sécurité, ni de tout droit de propriété intellectuelle applicable. Toutes les Soumissions disponibles via un forum de discussion en réponse à des questions publiées, ou qui prétendent autrement répondre à des questions, y compris des questions sur Salesforce ou des programmes, sont mises à disposition pour votre information uniquement et vous ne devez jamais vous y fier pour répondre à des questions précises (même si une réponse est marquée comme « meilleure » réponse ou est accompagnée de qualifications similaires). Vous devez systématiquement contacter le support Salesforce pour obtenir des réponses à vos questions précises. Salesforce n’a aucun contrôle sur les Soumissions et n’est aucunement responsable de quelque utilisation que ce soit, y compris abusive, (ainsi que de toute diffusion) par un tiers des Soumissions.

Si vous avez des questions, tirez parti de la sagesse de l’ensemble de notre Trailblazer Community en y accédant via ce lien :https://trailhead.salesforce.com/trailblazer- community/feed

Numéro d’article de la base de connaissances

000395398

 
Chargement
Salesforce Help | Article