Suivez votre progression
Accueil Trailhead
Accueil Trailhead

Modification d’enregistrements avec le langage DML

Objectifs de formation

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

  • Comprendre comment utiliser Query Grid dans la Developer Console pour manipuler directement les enregistrements de données.
  • Comprendre comment utiliser DML pour conserver les données dans la base de données.
  • Identifier deux méthodes d'écriture de commandes DML.

Gestion des données dans la Developer Console

Jusqu'à présent, nous avons vu comment utiliser la Developer Console pour renvoyer des données en utilisant les langages SOQL et SOSL. Peut-être n'avez-vous pas remarqué que le volet Query Results affiché dans la Developer Console ne se contente pas d'afficher les résultats, mais fonctionne comme une grille de requête. Vous pouvez cliquer sur la grille des résultats et utiliser les boutons situés sous la grille pour insérer, mettre à jour ou supprimer des données.

Essayons.

  1. Dans Configuration, sélectionnez Votre nom > Developer Console pour ouvrir la Developer Console.
  2. Dans la Developer Console, cliquez sur l'onglet Query Editor dans le volet inférieur.
  3. Supprimez le code existant, puis insérez l'extrait suivant :

    SELECT Id, Name, Industry FROM Account
    
  4. Cliquez sur Execute. Les résultats de requête affichent tous les comptes de l'organisation, avec le nombre total de lignes. Notez cette valeur.

  5. Cliquez sur Insert Row. Une nouvelle ligne est ajoutée en haut de la grille.

  6. Double-cliquez sur la nouvelle ligne pour saisir un nom et un secteur d'activité, mais laissez la valeur ID vide.

  7. Cliquez sur Save Rows. Notez la valeur automatiquement affichée dans la colonne ID. Rappelons que l'ID est la clé primaire et que la valeur est générée par le système. Notez également que le nombre total de lignes affiché correspond toujours à la valeur d'origine.

  8. Cliquez sur Refresh Grid. Avez-vous remarqué que le nombre total de lignes a augmenté d'une unité ? Intéressant cet outil, n'est-ce pas ?

Conscients qu'en tant que développeur vous devez parfois gérer les données sur le champ, nous voulions vous simplifier la tâche autant que possible. Nous pensons que cette solution est préférable à la saisie d'une instruction INSERT, UPDATE ou DELETE.

Vous pouvez également utiliser les boutons situés en bas à droite des résultats de requête pour accéder directement aux enregistrements dans Salesforce. Mettez en pratique, essayez !

Qu'est-ce que DML ?

Comme vous l'avez appris dans la première unité, Salesforce utilise le langage SOQL pour récupérer des données, mais utilise le langage DML pour les gérer.

En tant que développeur .NET, vous utilisez principalement le langage SQL pour récupérer et gérer des données. L'utilisation d'un autre langage peut vous sembler étrange. Vous allez sans aucun doute constater que l'utilisation de commandes DML dans Salesforce est beaucoup plus simple que les commandes SQL équivalentes.

Force.com est si étroitement intégrée que vous pouvez immédiatement manipuler vos données sans vous soucier de gérer une source de données. C'est l'une des raisons pour lesquelles le langage DML est si facile à utiliser.

Instructions DML

Pour déterminer les instructions DML disponibles, consultez le tableau ci-dessous. Certaines vont probablement vous sembler familières, car leur fonctionnement est classique. Pour plus d'informations, reportez-vous au Developer’s Guide.

Instruction Description
insert Insère un nouvel enregistrement.
update Met à jour un enregistrement existant.
upsert Opération spéciale qui crée des enregistrements et les met à jour avec une instruction unique. Elle utilise un champ spécifié afin de déterminer la présence d’objets existants, ou le champ ID si aucun champ n’est spécifié.
delete Supprime un enregistrement existant.
undelete Restaure un ou plusieurs enregistrements existants depuis la corbeille.
merge Une autre opération spéciale capable de fusionner jusqu'à trois enregistrements d'un même type d'objet dans l'un des enregistrements. Elle supprime ensuite les autres enregistrements et réapparente les enregistrements associés.

Deux méthodes d'exécution DML

En Apex, deux méthodes permettent d'exécuter des instructions DML.

  • Utilisation de l'instruction elle-même : vous avez déjà vu cette méthode dans l'unité consacrée au SOSL, dans laquelle nous avons inséré des données de Compte et de Contact. Cette méthode est la plus simple. En guise de rappel, voici un code utilisé dans l'unité sur le SOSL. Un compte unique a été inséré en utilisant l'instruction DML insert.

    // Add Account
    Account acct = new Account(
        Name='Test Account',
        Phone='(225)555-8989',
        NumberOfEmployees=10,
        BillingCity='Baton Rouge');
    insert acct;
    
  • Utilisation de méthodes de classe Database : l'avantage de l'utilisation de la méthode de classe Database est la possibilité d'accéder au paramètre facultatif allOrNone afin de spécifier si l'opération peut réussir partiellement. Lorsque ce paramètre est défini sur false, si une erreur se produit dans un ensemble d'enregistrements partiel, les enregistrements réussis sont engagés. Les erreurs correspondant aux enregistrements échoués sont renvoyées. De plus, avec l'option de succès partiel, aucune exception n'est renvoyée.

    Par exemple, pour créer un compte avec le paramètre allOrNone défini sur false puis renvoyer l'information de réussite ou d'échec dans un tableau, le code se présente comme suit :

    // Add Account
    Account acct = new Account(
        Name='Test Account',
        Phone='(225)555-8989',
        NumberOfEmployees=10,
        BillingCity='Baton Rouge');
    Database.SaveResult[] results = Database.insert(acct, false);
    

En savoir plus

Par défaut, le paramètre allOrNone est défini sur true, ce qui signifie que la méthode Database se comporte comme son équivalent DML et renvoie une exception en cas d'échec. Pour plus d'informations, reportez-vous aux documents officiels.

Si vous souhaitez parfaire votre expertise du DML, suivez le module Principes fondamentaux et base de données Apex. Elle contient des informations détaillées sur l'insertion d'enregistrements en cas de succès partiel et l'insertion des enregistrements associés.

Ressources