Skip to main content

Utilisation de formules et de variables simples

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Présenter une expression Visualforce et l’emplacement où elle est utilisée
  • Citer au moins trois variables globales qui peuvent être utilisées dans des expressions Visualforce
  • Ajouter une expression Visualforce à une page Visualforce
  • Utiliser une fonction dans une expression Visualforce
Remarque

Remarque

Vous souhaitez apprendre en français ? Commencez le défi dans un Trailhead Playground en français et utilisez les traductions fournies entre crochets pour naviguer. Copiez et collez uniquement les valeurs en anglais, car les validations de défi reposent sur les données en anglais. Si vous ne réussissez pas le défi dans votre organisation en français, nous vous recommandons (1) de définir le paramètre régional sur les États-Unis, (2) de définir la langue sur l’anglais en suivant les instructions ici, puis (3) de cliquer à nouveau sur le bouton « Vérifier le défi ».

Consultez le badge Trailhead dans votre langue pour découvrir comment profiter de l’expérience Trailhead traduite.

Introduction aux variables globales et aux expressions Visualforce

Les pages Visualforce peuvent afficher des données récupérées à partir de la base de données ou de services Web, des données qui changent selon l’utilisateur qui se connecte et qui visualise la page, etc. Ces données dynamiques sont accédées dans un balisage en utilisant des variables globales, des calculs et des propriétés fournies par le contrôleur de la page. Elles sont généralement désignées sous le terme d’expressions Visualforce. Utilisez des expressions pour des sorties dynamiques ou transférer des valeurs à des composants en les affectant à des attributs.

Une expression Visualforce est n’importe quel ensemble de valeurs littérales, de variables, de sous-expressions ou d’opérateurs qui peuvent être résolus en une valeur unique. Les appels de méthodes ne sont pas autorisés dans des expressions.

Dans Visualforce, la syntaxe d’une expression est la suivante : {!expression }

Tout ce qui se trouve à l’intérieur des délimiteurs {!} est évalué et remplacé dynamiquement lorsque la page est affichée ou lorsque la valeur est utilisée. L'espace est ignoré.

La valeur qui en résulte peut être un primitif (entier, chaîne, etc.) une valeur booléenne, un sObject, une méthode de contrôleur telle qu'une méthode d'action, et d'autres résultats utiles.

Variables globales

Utilisez des variables globales dans votre balisage Visualforce pour accéder à et afficher des valeurs et des ressources système.

Par exemple, Visualforce fournit des informations sur l’utilisateur connecté dans une variable globale appelée $User. Vous pouvez accéder aux champs de la variable globale $User (ou d'une autre variable) en utilisant une expression sous le format suivant : {!$GlobalName.fieldName }.

  1. Ouvrez la Developer Console, puis cliquez sur File (Fichier) | New (Nouveau) | Visualforce Page (Page Visualforce) pour créer une page Visualforce. Saisissez le nom UserStatus pour la page.
  2. Dans l'éditeur, remplacez le balisage par :
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Ce balisage crée une case dans laquelle vous pouvez ajouter des informations utiles.
  3. Cliquez sur Preview (Aperçu) pour prévisualiser la page à mesure que vous la modifiez.
  4. Ajoutez le balisage ci-dessous entre les balises <apex:pageBlockSection> : {!$User.FirstName }.Votre prénom doit être affiché dans le panneau User Status (Statut de l’utilisateur) que vous avez créé.
  5. Ajoutez au balisage deux autres expressions qui utilisent la variable globale $User pour le panneau User Status (Statut de l’utilisateur). La page doit se présenter comme suit :
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!$User.FirstName } {!$User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>

{!...} indique à Visualforce que tout élément placé entre accolades est dynamique et écrit dans le langage de l’expression. Sa valeur est calculée et remplacée à l'exécution, lorsqu'un utilisateur visualise la page.

Les expressions Visualforce ne sont pas sensibles à la casse et les espaces dans {!...} sont ignorées. Par conséquent, les expressions suivantes génèrent toutes la même valeur :

  • {!$User.FirstName}
  • {!$USER.FIRSTNAME}
  • {!$user.firstname }

Expressions de formule

Visualforce permet d’utiliser davantage que des variables globales dans le langage d’expression. Visualforce prend également en charge des formules de manipulation de valeurs.

Par exemple, le caractère & est l'opérateur de langage de formule qui concatène (associe) les chaînes.

  1. Dans votre page UserStatus, remplacez les expressions séparées de prénom et de nom par l'expression de formule ci-dessous. Cette expression combine le prénom et le nom de l'utilisateur connecté en les séparant par un espace. L'affichage doit rester inchangé.
{!$User.FirstName & ' ' & $User.LastName}
  1. Ajoutez l'élément ci-dessous au balisage de la page, sous les informations utilisateur.
<p> Next week it will be {! TODAY() + 7 } </p>
<p> Today's Date is {! TODAY() } </p>

Voici des formules plus complexes qui utilisent la fonction TODAY(). Les fonctions sont des calculs intégrés que vous pouvez identifier grâce aux parenthèses placées à la suite de leur nom. La première expression calcule simplement la date actuelle et la deuxième utilise l’opérateur d’addition pour ajouter sept jours à la date. La sortie dans votre page se présente comme suit :

Next week it will be Thu Sep 25 00:00:00 GMT 2014.
Today's Date is Thu Sep 18 00:00:00 GMT 2014
  1. Ajoutez l'élément ci-dessous au balisage de la page, sous les expressions de date.
<p>Tomorrow will be day number  {! DAY(TODAY() + 1) }</p>
<p>Let's find a maximum: {! MAX(1,2,3,4,5,6,5,4,3,2,1) } </p>
<p>The square root of 49 is {! SQRT(49) }</p>
<p>Is it true?  {! CONTAINS('salesforce.com', 'force.com') }</p>
<p>The year today is {! YEAR(TODAY()) }</p>

Certaines fonctions, telles que TODAY(), ont des parenthèses vides. Toutefois, d’autres peuvent contenir des paramètres qui correspondent aux valeurs que la fonction doit utiliser pour son calcul. Dans cet exemple, YEAR() contient un paramètre de date, fourni par la fonction TODAY() qui ne contient aucun paramètre. La fonction MAX() peut contenir n'importe quel nombre de paramètres. La fonction CONTAINS() est particulièrement intéressante. Elle renvoie une valeur booléenne, pouvant être soit « true », soit « false ». Elle compare deux arguments sous forme de texte et renvoie « true » si le premier argument contient le deuxième argument. Sinon, elle renvoie « false ». Dans le cas présent, la chaîne « force.com » est incluse dans la chaîne « salesforce.com ». Par conséquent, elle renvoie true.

Expressions conditionnelles

Utilisez une expression conditionnelle pour afficher des informations différentes en fonction de la valeur de l’expression.

Par exemple, si une facture n'inclut aucun élément de ligne, vous pouvez afficher le terme « aucun » au lieu d'une liste vide. Si un élément a expiré, vous pouvez afficher le terme « Terminé » au lieu de la date et de l'heure de fin.

Avec Visualforce, vous pouvez également utiliser une expression de formule conditionnelle, telle que IF(). L’expression IF() accepte trois arguments :

  • Le premier est une valeur booléenne, pouvant être soit « true », soit « false ». Par exemple, la fonction CONTAINS() que vous avez utilisée plus tôt.
  • Le deuxième argument est la valeur renvoyée si le premier paramètre a pour valeur « true ».
  • Le troisième argument est la valeur renvoyée si le premier paramètre a pour valeur « false ».
  1. Dans votre page UserStatus (Statut de l’utilisateur), sous les autres expressions, ajoutez le code ci-dessous.
    <p>{! IF( CONTAINS('salesforce.com','force.com'),
         'Yep', 'Nope') }</p>
    <p>{! IF( DAY(TODAY()) < 15,
         'Before the 15th', 'The 15th or after') }</p>

Avant d’enregistrer vos modifications et d’examiner les résultats, essayez d’anticiper leurs effets. Dans votre page, le résultat se présente comme suit :

 Zone d'édition d'expressions Visualforce

La première expression utilise le même calcul de fonction CONTAINS() que précédemment. Par contre, la fonction IF() convertit le résultat booléen CONTAINS() en un texte plus explicite pour l'utilisateur. De la même façon, la deuxième expression affiche un message durant la première quinzaine du mois et un message différent la deuxième quinzaine du mois.

  1. Supprimez toutes vos expressions de test, en conservant uniquement les lignes qui utilisent la variable globale $User. En d'autres termes, revenez à cette page.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!$User.FirstName & ' ' & $User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
  1. Utilisons une expression conditionnelle pour une opération plus utile. Remplacez la ligne qui contient l’expression $User.Username par le code ci-dessous.
({! IF($User.isActive, $User.Username, 'inactive') })

isActive est un autre champ disponible dans la variable globale $User. Ce champ booléen est true si l'utilisateur est actif et false si l'utilisateur est inactif. Désormais, le panneau Statut de l'utilisateur affiche le nom de l'utilisateur lorsqu'il est actif, sinon il affiche « inactif ».

En savoir plus...

Vous pouvez utiliser de nombreuses variables et fonctions globales dans des expressions Visualforce.

Vous pouvez utiliser près de deux douzaines de variables globales dans Visualforce. Elles permettent de récupérer des informations sur l’utilisateur actuellement connecté, comme vous l’avez vu, mais également des informations sur l’organisation ($Organization), les paramètres ($Setup), les objets personnalisés ($ObjectType), les actions disponibles avec ces objets ($Action), etc. Reportez-vous à Variables globales dans le guide du développeur Visualforce pour plus de détails.

De la même façon, des douzaines de fonctions peuvent être utilisés dans Visualforce. La liste est similaire, avec quelques différences, à celle des fonctions disponibles dans des champs de formule. Lorsqu’elles se recoupent, les fonctions ont un comportement identique. Par conséquent, lorsque vous écrivez des expressions Visualforce, vous pouvez faire appel à vos connaissances des champs de formule. Pour consulter la liste complète, reportez-vous à Fonctions dans le guide du développeur Visualforce.

Les expressions peuvent être utilisées dans de nombreuses situations. Elles sont souvent utilisées pour fournir les valeurs d’attributs dans des composants Visualforce.

Ressources

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires