Utilisation des étiquettes personnalisées (custom label) dans Salesforce

Une bonne pratique dans Salesforce consiste à utiliser des étiquettes personnalisées (custom label) afin de rendre paramétrables le code apex, les formules, les pages Visual Force… En effet, les étiquettes personnalisées permettent de stocker un paramètre et de le centraliser à un endroit unique (accessible via Elaborer | Créer | Etiquettes personnalisées).

Cela évite ainsi d’utiliser du code en dur ou d’aller rechercher une valeur à remplacer dans le code ou une formule. Il ne suffit d’effectuer qu’un seul changement si une modification de paramètre doit avoir lieu.

  • Cas d’utilisation 1 : dans un bouton ou lien personnalisé
    L’URL hacking a été évoqué dans l’article concernant les boutons personnalisés où la création du bouton Nouvelle oppo a été déroulée. Cette méthode nécessite de faire appel aux identifiants des champs.
    Si pour les champs standard l’identifiant ne varie pas d’un environnement à l’autre (Exemple : opp11correspond au champ Etapeopp9 au champ Date de clôture, etc…), ce n’est pas le cas pour un champ personnalisé. Ainsi, un nouveau champ créé dans une Sandbox aura un identifiant propre à cet environnement.
    Exemple : champ Température pour une opportunité, liste de sélection avec les valeurs Bouillante, Chaude, Tiède, Froide, identifiant du champ = 00N2400000FpPIw
    Admettons que nous souhaitons désormais enrichir le bouton Nouvelle oppo afin qu’il renseigne en plus ce nouveau champ avec la valeur la plus chaude (Bouillante dans notre cas). La nouvelle URL de ce bouton devient alors :
    custom label salesforce
    Si ce champ doit être déployé en production, il n’aura pas le même identifiant. Il faudra alors le remplacer dans la formule. Il est intéressant de noter que si la formule contient plusieurs champs personnalisés, il y aura plusieurs identifiants associés et le risque de faire des erreurs sera grand.Une meilleure méthode consiste à créer une étiquette personnalisée, ce qui évitera de retoucher à la formule en cas de déploiement sur d’autres environnements. Pour ce faire, depuis le menu Elaborer | Créer | Etiquettes personnalisées, cliquer sur le bouton Nouvelle étiquette personnalisée et renseigner les valeurs suivantes :
    modifier étiquette personnalisée salesforceUne fois cette étiquette enregistrée, il reste à l’utiliser dans la formule au lieu de la valeur en dur. Ce que nous allons voir dans la section suivante.
  • Cas d’utilisation 2 : appel à une valeur particulière d’une liste de sélection
    L’exemple précédent peut être poussé davantage. En effet, non seulement l’Id du champ peut être dynamisé mais également la valeur affectée (Bouillante). Celle-ci peut aussi être remplacée par une étiquette. Ce qui est pratique si la valeur est amenée à changer et/ou qu’elle est appelée ailleurs dans le code.De la même manière que décrit précédemment, une nouvelle étiquette personnalisée est créée :custom label exemple
  • Cas d’utilisation 3 : application multilingues
    L’utilisation la plus puissante des étiquettes se situe dans les applications multilingues. Si le système de traduction (translation workbench) est activé, il devient possible de donner des valeurs différentes à l’étiquette personnalisée en fonction de la langue de l’utilisateur connecté :
    translation workbench custom label salesforce

Appel à une étiquette personnalisée (Apex, Visual Force, Formule)

Les étiquettes personnalisées étant créées, il reste désormais à les appeler. Le formalisme peut différer en fonction de l’endroit où est appelé l’étiquette.

  • Depuis une formule
    Les formules sont employées dans les boutons / liens personnalisés mais également les règles de validation, les règles de workflow… 
    Dans certains cas, l’interface ne propose pas de faire appel aux labels, même si cela est possible via une saisie manuelle comme pour les boutons / liens :
    formule custom label salesforce
    Bien que la liste de sélection Sélectionner un type de champ ne propose pas d’accéder aux labels, il reste possible de les invoquer manuellement comme ci-dessus.
    Dans d’autres situations, comme par exemple pour une règle de validation, l’interface offre un accès simple aux labels :
    interface labels salesforce
  • Depuis du code apex
    L’extrait de code apex ci-dessous montre comment appeler une étiquette personnalisée :
    code apex custom label
    Contrairement au cas précédent, il n’y a pas besoin de préfixer par le caractère $.
    Il faut savoir qu’en production, il n’est pas possible de modifier du code Apex. Le moindre changement de code nécessite de redéployer le code depuis l’environnement de développement. Ainsi, le fait de modifier la valeur d’une liste de sélection appelée par le code se résout par un simple paramétrage si une étiquette personnalisée a été créée. Une relivraison du code aurait été nécessaire dans le cas contraire.
    Une bonne pratique est donc d’éviter les valeurs en dur dans le code.
  • Depuis une page visual force
    L’appel à une étiquette personnalisée dans une page Visual Force se fait de la même manière que pour une formule, comme on peut le constater dans l’extrait de code suivant :
    page visual force salesforce.

Paramètres personnalisés (Custom settings)

Les paramètres personnalisés (Custom settings) fonctionnent sur un principe similaire aux étiquettes personnalisées.
La création de ces paramètres se fait depuis le menu Elaborer | Développer | Paramètres personnalisés :
paramètres personnalisés custom labels

Ceux-ci se répartissent en 2 types (Hiérarchie ou Liste).

Voici un extrait de l’aide en ligne de Salesforce à ce sujet :

Le type Liste définit les données au niveau de l’application, telles que les codes nationaux ou les abréviations d’états américains. Le type Hiérarchie définit les paramètres de personnalisation, tels que les valeurs de champ par défaut, qui peuvent être remplacés dans les niveaux inférieurs de la hiérarchie.

Une étiquette personnalisée ne stockera qu’une seule valeur qui pourra être traduite dans plusieurs langues. Le paramètre personnalisé permet quant à lui de stocker plusieurs valeurs sans gérer le multi-langage.

Par ailleurs, un paramètre personnalisé s’affecte par profil (les valeurs peuvent donc différer selon l’utilisateur connecté).
L’intérêt d’un paramètre personnalisé est qu’il est stocké dans la mémoire cache, ce qui évite de faire appel à une requête SOQL pour accéder à une donnée.

Le nombre de paramètres personnalisés est visible depuis le menu Présentation du système :

présentation systeme salesforce

D’autres limites sont également fournies depuis l’aide en ligne de Salesforce :

aide en ligne Salesforce

Laisser un commentaire