custom label setting

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

Une bonne pratique dans Salesforce consiste à utiliser des étiquettes personnalisées (custom label). Cela rend 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).

On é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é

Nous avons évoqué l’URL hacking dans l’article concernant les boutons personnalisés. Nous y avions déroulé la création du bouton Nouvelle oppo. Cette méthode nécessite de faire appel aux identifiants des champs.

Pour les champs standard, l’identifiant ne varie pas d’un environnement à l’autre. Par exemple, opp11 correspond 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. Par conséquent, le risque de faire des erreurs sera grand. Une meilleure méthode consiste à créer une étiquette personnalisée. Ceci évitera de retoucher à la formule en cas de déploiement sur d’autres environnements. Pour ce faire :

  • Aller dans le menu Elaborer | Créer | Etiquettes personnalisées,
  • Cliquer sur le bouton Nouvelle étiquette personnalisée 
  • Renseigner les valeurs suivantes :
modifier étiquette personnalisée salesforce

Une 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

Nous pouvons pousser davantage l’exemple précédent en dynamisant l’Id du champ mais également la valeur affectée (Bouillante). On peut la remplacer par une étiquette. Ce qui est pratique si nous devons modifier la valeur et/ou qu’on l’appelle ailleurs dans le code. De la même manière que décrit précédemment, nous créons l’étiquette personnalisée :

custom label exemple

Cas d’utilisation 3 : application multilingues

L’utilisation la plus puissante des étiquettes se situe dans les applications multilingues. Lorsque le système de traduction (translation workbench) est actif, il devient possible de donner des valeurs différentes à l’étiquette personnalisée. Ces valeurs dépendent 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.

Custom label 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. Toutefois, cela est possible via une saisie manuelle comme pour les boutons / liens :

formule custom label salesforce

La liste de sélection Sélectionner un type de champ ne propose pas d’accéder aux labels. Malgré cela, on peut 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

Custom label 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.

Custom label depuis une page Visualforce

L’appel à une étiquette personnalisée dans une page Visualforce se fait de la même manière que pour une formule. 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).

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.

Aide en ligne de Salesforce

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. Ceci é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