Skip to main content

Utilisation de contrôleurs standard

Objectifs de formation

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

  • Présenter un contrôleur standard Visualforce et ses principaux attributs
  • Ajouter un contrôleur standard à une page Visualforce
  • Afficher des données d'un enregistrement récupéré par le contrôleur standard d'une page
  • Écrire une expression qui utilise une notation pointée pour accéder aux champs d'un enregistrement associé
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 au contrôleur standard Visualforce

Visualforce utilise le paradigme traditionnel modèle–vue–contrôleur (MVC), et inclut des contrôleurs intégrés sophistiqués qui permettent de gérer les actions standard et d’accéder aux données, en offrant une intégration étroite et simple à la base de données Lightning Platform. Ces contrôleurs intégrés sont généralement appelés contrôleurs standard, ou même le contrôleur standard.

Le modèle MVC aide à séparer la vue et son style de la base de données et de la logique sous-jacentes. Dans MVC, la vue (la page Visualforce) interagit avec un contrôleur, et le contrôleur fournit la fonctionnalité à la page. Par exemple, le contrôleur peut inclure une logique à exécuter en cas de clic sur un bouton. Généralement, un contrôleur interagit aussi avec le modèle (la base de données), en rendant disponibles les données que la vue souhaite afficher ou en renvoyant automatiquement les modifications à la base de données.

La plupart des objets standard et tous les objets personnalisés incluent des contrôleurs standard qui permettent d'interagir avec les données associées à l'objet. Par conséquent, il n'est pas nécessaire d'écrire de code pour le contrôleur. Vous pouvez étendre les contrôleurs standard afin d'ajouter de nouvelles fonctionnalités ou créer des contrôleurs personnalisés. Nous présentons ici les contrôleurs standard.

Recherche et ajout d'un ID d'enregistrement à l'URL de la requête

Indiquez l'ID d'un enregistrement au contrôleur standard en l'ajoutant en tant que paramètre dans l'URL de la requête.

Si vous souhaitez utiliser le contrôleur standard pour référencer un enregistrement spécifique, vous devez connaître l'identifiant, c.-à-d. l'ID de l'enregistrement. Le contrôleur utilise l'ID pour récupérer les données et les enregistrer dans la base de données lorsqu'elles ont été modifiées.

Lorsque vos pages Visualforce interagissent avec d’autres pages de votre organisation, vous pouvez leur transmettre automatiquement l’identifiant de l’enregistrement. Vos pages Visualforce peuvent utiliser l’identifiant pour rechercher et afficher les données de l’enregistrement. Cependant, durant le développement, vos pages sont autonomes. Par conséquent, pour afficher dans votre page les données d'un enregistrement de la base de données, vous devez saisir manuellement l'ID d'enregistrement. La méthode la plus efficace consiste à ajouter l'ID en tant que paramètre GET dans l'URL de la requête.

  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 AccountSummary (Résumé de compte) pour la page.
  2. Dans l'éditeur, remplacez le balisage par :
    <apex:page>
        <apex:pageBlock title="Account Summary">
            <apex:pageBlockSection>
            </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. Vérifiez que le champ URL de la fenêtre d'aperçu s'affiche. Vous allez y revenir dans quelques étapes.
  4. Dans une autre fenêtre du navigateur, accédez à la page d'accueil de votre organisation, puis sélectionnez l'onglet Comptes. Si l'onglet Comptes ne s'affiche pas, basculez vers l'application Ventes, en sélectionnant Ventes dans le coin supérieur droit du menu des applications.
  5. Assurez-vous que Tous les comptes apparaît dans le menu Vue.
  6. Dans la page Tous les comptes, cliquez sur le nom d'un compte.
  7. Une fois la page de détail du compte chargée, recherchez l'URL de la page. L’URL se présente comme suit : https://MyDomainName.lightning.force.com/lightning/r/Account/001D000000JRBes/view. L'identifiant de l'enregistrement, son ID, correspond à la série de lettres et de chiffres. Dans cet exemple, il s’agit de 001D000000JRBes (il peut être différent dans votre organisation). L'ID est unique parmi tous les enregistrements de tous les types d'objet de votre organisation.
  8. Sélectionnez l'ID de l'enregistrement, puis copiez-le dans le presse-papiers. Avant de quitter la page de détail du compte, prenez connaissance de toutes les informations affichées. [Texte Alt : Page de détail du compte] Ce détour n’a pas servi uniquement à récupérer un ID d’enregistrement. Avant de terminer, vous saurez comment élaborer vous-même une page qui affiche les mêmes informations dans le code Visualforce.
  9. Revenez à la page d'aperçu que vous avez ouverte dans la Developer Console. Cliquez dans le champ d’URL de la fenêtre du navigateur, saisissez &id= à la fin de l’URL, puis collez l’ID d’enregistrement que vous avez copié plus haut. L’URL doit se présenter comme suit : https://MyDomainName.lightning.force.com/apex/AccountSummary?core.apexpages.request.devconsole=1&id=001D000000JRBes
  10. Appuyez sur la touche Retour pour charger la page avec la nouvelle URL.

Une fois chargée avec l'ID d'enregistrement, la page d'aperçu semble inchangée, mais l'ID permet désormais de demander au contrôleur standard de charger l'enregistrement et de le rendre disponible sur la page.

Pour prévisualiser votre page dans le contexte de Lightning Experience, revenez à la fenêtre principale de votre navigateur, où vous pouvez voir la page de détails du compte. Sur la page de détails du compte, ouvrez la console JavaScript de votre navigateur et saisissez le code suivant. N’oubliez pas de remplacer pageName par le nom de votre page :

$A.get("e.force:navigateToURL").setParams( {"url": "/apex/pageName"}).fire();

Vous pouvez également prévisualiser une page avec un ID d'enregistrement comme suit, en ajoutant le paramètre ID d'enregistrement à la fin de l'URL dans le code JavaScript :

$A.get("e.force:navigateToURL").setParams(
    {"url": "/apex/pageName?id=00141000004jkU0AAI"}).fire();

Affichage des données d'un enregistrement unique

Ajoutez le contrôleur standard des Comptes à la page, puis référencez des champs de compte pour afficher les données d'un enregistrement.

Suivez les étapes mentionnées sur la page que vous venez de charger via l’URL figurant dans la section précédente pour créer une page qui affiche un résumé de compte.

  1. Au début du balisage de votre page, dans la balise <apex:page>, ajoutez l’attribut suivant.
    standardController="Account" Lorsque vous l’enregistrez, la page d’aperçu est désormais rechargée comme précédemment, sauf que le contrôleur standard des comptes est actif. Lors du chargement de la page, le contrôleur standard analyse les paramètres de l’URL, recherche le paramètre id, et utilise sa valeur pour récupérer un enregistrement et le mettre à disposition de la page. Il n'est pas encore visible, mais bien présent.
  2. Dans le corps de la page, ajoutez le balisage ci-dessous.
Name: {! Account.name }

Vous voyez maintenant que l'enregistrement a été récupéré ! Le nom du compte, qui contient l'ID d'enregistrement ajouté à l'URL, est affiché.

  1. Remplacez la ligne unique par le nom du compte avec le balisage ci-dessous.
    Name: {! Account.Name } <br/>
    Phone: {! Account.Phone } <br/>
    Industry: {! Account.Industry } <br/>
    Revenue: {! Account.AnnualRevenue } <br/>
    Votre code complet doit se présenter comme suit :
    <apex:page standardController="Account">
        <apex:pageBlock title="Account Summary">
            <apex:pageBlockSection>
                Name: {! Account.Name } <br/>
                Phone: {! Account.Phone } <br/>
                Industry: {! Account.Industry } <br/>
                Revenue: {! Account.AnnualRevenue } <br/>
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Le résultat doit correspondre un simple résumé de compte. 

Une simple page de résumé de compte

Que se passe-t-il ? De nombreuses opérations, offertes par le contrôleur standard !

  1. Lorsque la page est chargée et le composant <apex:page> est activé, un contrôleur standard est activé pour l’objet de compte.
  2. Le contrôleur standard détecte le paramètre ID dans l'URL, puis recherche et récupère l'enregistrement de compte correspondant.
  3. Le contrôleur standard place l'enregistrement dans une variable pour le rendre disponible dans la page. La variable porte le nom du sObject du contrôleur standard : Account. Cette variable d'objet contient tous les champs disponibles du sObject Compte.
  4. Les quatre expressions Visualforce référencent toutes la variable Account. Elles utilisent la notation pointée pour accéder à des champs individuels dans la variable Account. {!Account.Name } récupère le nom du compte, etc.

Que devient le montant du chiffre d'affaires ? Il est affiché en notation scientifique. Est-ce possible de l'afficher sous forme de devise ?

Le montant est affiché en valeur « brute » de notation scientifique, car il est renvoyé par une expression. La valeur brute est placée directement sur la page. Pour contrôler la mise en forme de la valeur, utilisez un composant en définissant la valeur à gérer. Le composant met en forme la valeur brute et place le résultat dans la page. Nous présenterons cette procédure plus loin. Nous nous intéressons ici uniquement à l'accès aux données de l'enregistrement.

Utilisez une notation pointée pour afficher les données d'enregistrements associés.

Par exemple, les détails d'un objet Compte comprennent un champ appelé Propriétaire du compte et le type Lookup(User). En d'autres termes, ce champ a une relation avec un enregistrement Utilisateur. En cliquant sur le lien de l’étiquette du champ Propriétaire du compte, vous constaterez que le nom du champ est Propriétaire.

La relation de Propriétaire représente un Utilisateur. Dans Setup (Configuration), si vous cliquez sur Object Manager (Gestionnaire d’objet) | User (Utilisateur) | Fields & Relationships (Champs et relations), vous verrez que l’enregistrement User (Utilisateur) a un champ Name (Nom). Utilisons cette information pour l'afficher.

Dans le corps de la page, avant le nom du compte, ajoutez la ligne ci-dessous.

Account owner: {! Account.Owner.Name } <br/>

La notation pointée (Account.Owner.Name) indique que vous souhaitez traverser la relation entre les enregistrements. Vous savez que Account.Owner indique le champ Propriétaire de l'enregistrement du compte. Le Nom supplémentaire à la fin indique que le champ de propriétaire ne représente pas simplement une chaîne, mais une relation avec un autre enregistrement (un Lookup(User)), que vous souhaitez obtenir l'enregistrement représenté par la valeur du champ Propriétaire (l'enregistrement Utilisateur) et afficher le champ Nom de cet enregistrement.

En savoir plus...

Le contrôleur standard est très puissant et nous avons à peine exploité ses possibilités. Vous en saurez plus en consultant d'autres ressources. En attendant, nous présentons ci-dessous quelques points importants.

Outre la facilité de l'accès aux données illustré ici, le contrôleur standard offre plusieurs actions standard, telles que créer, modifier, enregistrer et supprimer. Vous pouvez également ajouter des éléments à vos pages à l'aide d'éléments d'interface utilisateur standard tels que des boutons et des liens. Vous en saurez plus sur ces actions standard en découvrant les formulaires de saisie Visualforce et l’enregistrement des modifications dans la base de données.

Les pages Visualforce, que vous souhaitez incorporer dans les présentations de page d’un objet, utiliser en tant qu’actions personnalisées spécifiques à un objet ou utiliser en tant que cartes mobiles dans l’application Salesforce, doivent utiliser le contrôleur standard de l’objet approprié.

Si vous créez vos propres objets personnalisés (au lieu d'utiliser des objets tels que Compte) et que vous souhaitez référencer un champ, la procédure à suivre est légèrement différente. Dans Setup (Configuration), saisissez Object Manager (Gestionnaire d’objet) dans la zone Quick Find (Recherche rapide), puis sélectionnez Object Manager (Gestionnaire d’objet) | <votre objet personnalisé> | Fields & Relationships (Champs et relations). Trouvez votre champ et sélectionnez-le. Le nom d’API indique maintenant le nom du champ que vous devez utiliser dans vos pages Visualforce, Par exemple, si votre champ s’intitulait Foo, son nom d’API est désormais Foo__c, et vous devez le référencer par ce nom : {!myobject__c.foo__c}.

Le contrôleur standard est extrêmement puissant, mais vous devez parfois exécuter d'autres actions, ce qui ne présente aucun problème avec Visualforce. Vous pouvez remplacer et améliorer le contrôleur, écrire vos propres contrôleurs ou étendre les contrôleurs intégrés à l'aide d'un code Apex.

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