Suivez votre progression
Accueil Trailhead
Accueil Trailhead

Utilisation de formules de texte

Objectifs de formation

Une fois cette unité terminée, vous pourrez :
  • Décrire ce qu’est le type Texte
  • Convertir des valeurs de texte en d’autres types de données et vice-versa
  • Décrire dans quels cas les formules employant le type Texte sont utilisées
  • Créer une formule qui emploie le type Texte

Présentation du texte dans les formules

Parfois, le moyen le plus simple de faire en sorte que des informations soient lisibles en coup d’œil dans votre organisation est de les afficher sous forme de texte. Les formules qui utilisent le type de renvoi Texte peuvent concaténer des valeurs de texte, convertir des nombres et des dates en texte ou encore afficher du texte de manière conditionnelle.

Parmi les possibilités offertes, la concaténation de deux chaînes de texte à l’aide de l’opérateur & est assurément la plus simple à mettre en œuvre. Cela vous permet, par exemple, d’afficher le nom complet d’un contact en associant son prénom et son nom.

FirstName & " " & LastName

Lorsque vous rassemblez des valeurs de texte, tenez compte des espaces nécessaires pour que vos chaînes ne s’affichent pas de manière absurde : vous conviendrez que « Marie Dupont » est nettement plus lisible que « MarieDupont ».

Fonctions et opérateurs de texte courants

Salesforce propose de nombreuses fonctions et opérateurs qui facilitent l’utilisation du texte dans les formules. À l’aide de ces dernières, vous pouvez convertir d’autres types de données en texte et concaténer des valeurs de texte ; ou encore rechercher une chaîne spécifique dans un champ Texte.

Conversion vers des valeurs de texte et à partir de celles-ci

TEXT() convertit un champ de pourcentage, de nombre, de date, de date/heure, de liste de sélection ou de devise en texte. TEXT() renvoie un résultat ne contenant aucun formatage, virgule ou symbole de devise. Par exemple, TEXT(percent_value) renvoie 0.3 si percent_value est défini sur 30 %.

Lorsque la fonction TEXT() reçoit une valeur de date ou de date/heure, elle renvoie une chaîne respectant le formatage standard du type Date ou Date/Heure. Par exemple, si date_value correspond au 17 mars 2015, TEXT(date_value) renverra 2015-03-17. Si datetime_value correspond au 17 mars 2015 à 17 heures, TEXT (datetime_value) renverra 2015-03-17 17:00:00Z. Le Z indique que l’heure renvoyée est dans le fuseau horaire GMT. TEXT() renvoie toujours les valeurs de date/heure dans ce fuseau horaire, indépendamment de celui de l’utilisateur connecté ou de votre organisation.

Vous pouvez également convertir des valeurs dans l’autre sens en utilisant VALUE(), qui renvoie une valeur de type Nombre à partir d’une valeur de texte. Si la fonction VALUE() reçoit une valeur qui n’est pas un nombre, notamment des caractères spéciaux autres qu’une virgule ou un signe moins (négatif), elle affiche #Error! Par exemple, si text_value a une valeur de 500 $, VALUE(text_value) renvoie une erreur. VALUE() renvoie également une erreur si text_value est vide.

Autres fonctions de texte

BEGINS(text, compare_text) renvoie « true » si text commence par compare_text. De même, CONTAINS(text, compare_text) renvoie « true » si compare_text est présent n’importe où dans text. Ces fonctions sont utiles pour afficher des informations de manière conditionnelle, en fonction d’un champ de texte.

La fonction SUBSTITUTE(text, old_text, new_text) renvoie tout texte contenant old_text en l’ayant remplacé par new_text, à l’instar de la fonctionnalité Rechercher et remplacer des logiciels de traitement de texte.

Salesforce contient d’autres fonctions permettant d’utiliser et de formater du texte dans des formules. Pour plus d’informations, consultez l’article Opérateurs de formule et fonctions dans l’aide en ligne de Salesforce.

Utilisation du type Texte dans les formules

Attribution d’une notation à un compte

Souvent, les formules utilisant le type de retour Texte affichent des informations difficiles à quantifier. Vous pouvez, par exemple, utiliser une formule de texte pour déterminer si une piste est chaude, tiède ou froide. Nous allons écrire une formule qui emploie à la fois la logique conditionnelle et la fonction ISPICKVAL() pour renvoyer la notation d’une piste.

Dans cet exemple, nous évaluons une piste en fonction de son chiffre d’affaires, de son pays et de sa source.

  • Chaud : AnnualRevenue (chiffre d’affaires annuel) est supérieur à 1 million de dollars, Country (pays) est États-Unis et LeadSource (origine de la piste) est Référent partenaire.
  • Tiède : AnnualRevenue est supérieur à 1 million de dollars, Country est États-Unis et LeadSource a pour valeur Liste achetée ou Web.
  • Froid : le compte ne remplit aucune des conditions précédentes.

Cette formule utilise une série d’instructions IF(), AND() et OR() pour vérifier ces conditions et évalue le champ Source de la piste à l’aide de ISPICKVAL(). La formule utilise également une instruction CASE() pour vérifier la valeur de Country, c’est-à-dire le pays. Si celui-ci a pour valeur US, USA, Amérique ou États-Unis, l’instruction CASE() renvoie US. Sinon, elle renvoie NA (non applicable).

L’utilisation d’un arbre de décision nous aide à suivre plus facilement le flux logique de notre formule.

Cet arbre de décision nous aide à visualiser la formule de notation des pistes.
  1. Dans Configuration, accédez à Gestionnaire d’objet via la case Recherche rapide.
  2. Cliquez sur Piste | Champs et relations, puis sur Nouveau.
  3. Sélectionnez Formule, puis cliquez sur Suivant.
  4. Dans Étiquette du champ, saisissez Notation. La section Nom du champ est automatiquement renseignée.
  5. Sélectionnez Texte, puis cliquez sur Suivant.
  6. Saisissez la formule suivante :
    IF(
      AnnualRevenue > 1000000 &&
      CONTAINS(CASE(Country, "United States", "US", "America", "US",
        "USA", "US", "US", "US", "NA"), "US"),
      IF(
        ISPICKVAL(LeadSource, "Partner Referral"), "Hot",
        IF(
          ISPICKVAL(LeadSource, "PurchasedList") ||
          ISPICKVAL(LeadSource, "Web"),
          "Warm", "Cold"
        )
      ), "Cold"
    )

Le nouveau champ de formule Notation affiche Chaud, Tiède ou Froid en fonction des caractéristiques d’une piste donnée.

Affichage d’une image avec CASE()

Les formules avec le type de retour Texte ne servent pas qu’à traiter du texte : vous pouvez également les utiliser pour afficher des images. L’utilisation d’images permet l’assimilation d’informations en un coup d’œil. De plus, elles attirent davantage l’attention de l’utilisateur qu’un simple paragraphe. Écrivons une formule qui utilise le champ Notation que vous venez de créer pour afficher dans un graphique le classement d’une piste d’après une échelle allant de zéro à cinq étoiles.

La fonction IMAGE() accepte jusqu’à quatre arguments. IMAGE(image_url, alternate_text, height, width) affiche l’image spécifiée par image_url aux dimensions indiquées par les arguments optionnels height (hauteur) et width (largeur). Si l’image ne peut pas être affichée, la fonction fait alors apparaître le texte indiqué à la place de alternate_text.

Si le champ Notation de la piste a pour valeur :

  • Chaud, la formule affiche cinq étoiles
  • Tiède, la formule affiche trois étoiles
  • Froid, la formule affiche une étoile

Si le champ Notation de la piste est vide, la formule n’affiche aucune étoile.

Créez un champ de formule avec le type de renvoi Texte et le nom Nombre d’étoiles. Dans l’éditeur de formule avancée, saisissez :

IMAGE(
  CASE(Rating__C,
    "Hot", "/img/samples/stars_500.gif",
    "Warm", "/img/samples/stars_300.gif",
    "Cold", "/img/samples/stars_100.gif",
    "/img/samples/stars_000.gif"),
"Unknown")

Cette formule utilise des images intégrées à Salesforce, mais vous pouvez vous servir de vos propres images en les important au préalable à partir de l’onglet Documents.

Exemples de texte

  1. Cette formule utilise le champ Région/Province de facturation d’un compte situé aux États-Unis pour le classer dans l’un des groupes de régions suivants : Nord, Sud, Est, Ouest ou Central.
    IF(ISBLANK(BillingState), "None",
    IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",
    IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",
    IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",
    IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",
    IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))
  2. Cette formule permet d’incorporer un lien à l’aide de la fonction HYPERLINK(). Généralement, HYPERLINK(url, display_text, target) affiche un lien vers l’url prenant la forme de display_text. L’argument target, facultatif, détermine le mode d’affichage de la page Web lorsque l’utilisateur clique sur le lien. Si vous laissez target vide, le lien s’ouvre par défaut dans une nouvelle fenêtre du navigateur.
    HYPERLINK("https://www.salesforce.com", "Salesforce")
  3. Cette formule prend pour argument le champ E-mail et l’utilise pour créer une URL. La formule utilise les fonctions FIND() et SUBSTITUTE() pour rechercher le signe @ dans l’adresse électronique et remplacer tout ce qui se trouve à sa gauche par « www. ».
    SUBSTITUTE(Email, LEFT(Email, FIND("@", Email)), "www.")

Erreurs courantes avec les formules de texte

Conversion de valeurs en texte Veillez à vérifier le type d’un champ avant de l’utiliser dans une formule. Par exemple, un administrateur Salesforce vous ayant précédé a très bien pu créer un champ personnalisé contenant une date sous la forme d’une valeur de texte. Si c’est le cas, vous pouvez utiliser TEXT() ou DATEVALUE() pour utiliser conjointement les valeurs de texte et de date.

Les champs de formule auxiliaires

L’utilisation de champs de formules auxiliaires est un excellent moyen de rendre vos formules courtes et faciles à comprendre. Un champ auxiliaire ne réalise qu’une partie d’un calcul plus important et est référencé par le champ de formule final. Vous pouvez utiliser des champs de formule auxiliaires avec n’importe quel type de formule, mais observons sans attendre un exemple précis.

Supposons que vous souhaitez écrire une formule de texte appelée Case_Category__c qui affiche une catégorie pour une requête (Vert, Jaune ou Rouge) en fonction de sa durée d’ouverture. Au vu de vos connaissances actuelles, vous pourriez écrire une formule semblable à ce qui suit :

IF(((NOT(IsClosed)) && (TODAY() - DATEVALUE(CreatedDate) > 20)), "RED",
 IF((NOT(IsClosed)) && (TODAY() - DATEVALUE(CreatedDate) > 10), "YELLOW",
 "GREEN"))
Vous pouvez simplifier cette formule en plaçant la logique de calcul de l’ancienneté de la requête dans un autre champ de formule. Appelons ce champ Case_Age_In_Days__c.
TODAY() - DATEVALUE(CreatedDate)
Nous pouvons ensuite réécrire Case_Category__c ainsi :
IF(((NOT(IsClosed)) && (Case_Age_In_Days__c > 20)), "RED",
 IF((NOT(IsClosed)) && (Case_Age_In_Days__c > 10), "YELLOW",
 "GREEN"))
Non seulement cette formule est plus courte et plus facile à comprendre, mais vous pourrez également réutiliser votre formule auxiliaire à chaque fois que vous aurez besoin de calculer l’ancienneté d’une requête. Impeccable !