S’abonner à un canal d’événement
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Activer les notifications d’événement de modification pour les objets depuis la page Capture des données de modification.
- Utiliser EMP Connector pour vous abonner à un canal d’événement de modification.
- Générer des notifications d’événement de modification en effectuant des mises à jour dans Salesforce.
Maintenant que vous avez découvert les bases de la Capture des données de modification, passons à l’action en générant des modifications dans Salesforce et en recevant des événements de modification. Dans cette section, nous allons créer et modifier un enregistrement d’employé.
Créer l’objet personnalisé Employee
Avant de commencer cet exercice, nous devons définir l’objet personnalisé Employee. La première étape consiste à créer l’objet personnalisé. Vous pouvez suivre la progression dans votre organisation Trailhead Playground ou Developer Edition. Pour accéder à votre Trailhead Playground, cliquez sur l’image de votre profil dans le coin supérieur droit, puis sur Organisations d’exercice, et enfin sur le nom d’utilisateur de l’organisation à lancer.
- Dans Configuration, cliquez sur l’onglet Gestionnaire d’objet, puis sélectionnez Créer > Objet personnalisé.
- Saisissez les valeurs ci-dessous.
Étiquette : Employé
Étiquette au pluriel : Employés
(Si disponible, sélectionnez Commence par un son vocalique.)
Nom de l’objet : Employé
Nom de l’enregistrement : Nom de l’employé
3. Sélectionnez Lancer l’assistant Nouvel onglet personnalisé après l’enregistrement de cet objet personnalisé.
4. Cliquez sur Enregistrer.
5. Sur la page Onglet Nouvel objet personnalisé, sélectionnez l’onglet Création pour le style d’onglet.
6. Cliquez sur Suivant | Suivant | Enregistrer.
7. Cliquez sur Champs et relations, puis sur Nouveau.
8. Suivez l’assistant de création de champs pour créer les trois champs suivants :
Type de données : Texte, étiquette du champ : Last Name
, nom du champ Last_Name
, longueur : 50
, Requis : Oui
Type de données : Texte, étiquette du champ : First Name
, nom du champ : First_Name
, longueur : 50
Type de données : Nombre, étiquette du champ : Tenure
, longueur : 18
, décimales : 0
, nom du champ : Tenure
Activer les notifications de changement pour l’objet Employee
Avant de pouvoir recevoir des notifications de modification, vous devez sélectionner les objets qui vous intéressent. Sinon, vous ne recevrez aucune notification, même en vous abonnant au canal approprié. Dans cette section, nous sélectionnons l’objet personnalisé Employee pour suivre les modifications apportées à l’enregistrement d’employé.
- Dans Configuration, saisissez
Capture des données de modification
dans la case Recherche rapide, puis cliquez sur Capture des données de modification. - Dans Entités disponibles, sélectionnez Employé (Employee__c) et cliquez sur la flèche >.
- Cliquez sur Enregistrer.
S’abonner à l’aide d’EMP Connector
Maintenant, nous allons vous montrer comment générer des événements de modification pour les enregistrements d’employés et vous y abonner à l’aide d’EMP Connector. Dans cette section, nous présentons les étapes permettant de générer et de recevoir des événements de modification afin que vous puissiez voir des exemples d’événements de modification. Vous n’avez pas besoin de suivre ces étapes pour obtenir le badge. Vous pourrez vous référer ultérieurement à ces étapes lorsque vous utiliserez EMP Connector pour vous abonner à des événements de modification.
Prérequis
- Git : consultez la page Téléchargements Git.
- Apache Maven : Cet exemple utilise Apache Maven pour compiler le projet EMP Connector. Téléchargez-le et installez-le depuis l’adresse suivante : https://maven.apache.org/index.html.
- Java Development Kit 8 ou version ultérieure : consultez la page Téléchargements Java.
- Une organisation Developer Edition ou votre organisation Trailhead Playground. Pour savoir comment obtenir le nom d’utilisateur et le mot de passe de votre organisation Trailhead Playground, consultez l’unité Obtenir votre nom d’utilisateur et mot de passe Trailhead Playground dans le module Gestion des Trailhead Playgrounds.
- Si vous n’avez pas configuré de plage d’adresses IP approuvées pour votre organisation, vous avez besoin d’un jeton de sécurité que vous ajouterez à votre mot de passe. Pour plus d'informations, consultez Réinitialiser votre jeton de sécurité et Définir des plages d'adresses IP approuvées pour votre organisation.
Étapes
- Pour obtenir une copie locale du référentiel GitHub EMP-Connector, procédez comme suit :
-
$ git clone
https://github.com/forcedotcom/EMP-Connector.git
-
- Pour compiler l’outil EMP-Connector, procédez comme suit :
$ cd EMP-Connector
$ mvn clean package
- La commande
mvn
génère des fichiers JAR dans le dossiertarget
du répertoire du projet EMP-Connector. Le fichier JAR généré,target/emp-connector-0.0.1-SNAPSHOT-phat.jar
, inclut le connecteur et la fonctionnalitéLoginExample
. Le fichier JAR contient toutes les dépendances du connecteur. Vous n’avez donc pas à les télécharger séparément.
- Pour exécuter EMP Connector avec votre organisation Developer Edition ou Trailhead Playground, saisissez cette commande et indiquez les informations de connexion de votre organisation Trailhead Playground ou Salesforce, ainsi que le canal auquel vous souhaitez vous abonner. Dans cet exemple, le canal est
/data/Employee__ChangeEvent
.$ java -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <username> <password> /data/Employee__ChangeEvent
Une fois que vous avez abonné l’outil EMP-Connector au canal pour Employee__c, toute modification apportée aux enregistrements d’employés ou toute création d’enregistrements génère des notifications que l’outil affiche sur la console.
Création d’un enregistrement d’employé
Effectuons quelques modifications d’enregistrement afin de recevoir des notifications d’événement de modification. Tout d’abord, créez un enregistrement d’employé.
- Dans le lanceur d’application ( ), cherchez et sélectionnez Employés.
- Cliquez sur Nouveau.
- Remplissez les champs suivants :
- Nom de l’employé :
e-100
- Nom de famille :
Smith
- Prénom :
Patricia
- Nom de l’employé :
- Cliquez sur Enregistrer.
Lorsque vous enregistrez la fiche de l’employé, une notification de modification s’affiche dans la console, comme suit :
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:36:12.000Z", "OwnerId": "005RM000001vI4mYAE", "CreatedById": "005RM000001vI4mYAE", "ChangeEventHeader": { "commitNumber": 65840604581, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "CREATE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d2e-a65a-3e97-03fc-cdf4e16d5d3c", "commitTimestamp": 1569443772000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "CreatedDate": "2019-09-25T20:36:12.000Z", "First_Name__c": "Patricia", "LastModifiedById": "005RM000001vI4mYAE", "Name": "e-100", "Last_Name__c": "Smith" }, "event": { "replayId": 15053 } }
Mise à jour d’un enregistrement d’employé
Ensuite, mettons à jour l’enregistrement que nous venons de créer en ajoutant une valeur au champ Tenure et en modifiant ensuite le prénom.
- Cliquez sur Modifier sur la page des détails de l’enregistrement d’employé.
- Modifiez le champ First Name en saisissant
Trish
. - Pour le champ Tenure, saisissez
3
. - Cliquez sur Enregistrer.
La mise à jour de l’enregistrement d’employé génère le message d’événement de modification ci-dessous. L’événement de modification ne contient que les champs nouveaux et modifiés, en plus des champs d’en-tête.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:38:11.000Z", "ChangeEventHeader": { "commitNumber": 65840825286, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "UPDATE", "changedFields": [ "LastModifiedDate", "First_Name__c", "Tenure__c" ], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d4a-7640-5b8c-c6d1-b8db4ce4cf2f", "commitTimestamp": 1569443892000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "First_Name__c": "Trish", "Tenure__c": 3.0 }, "event": { "replayId": 15054 } }
Suppression d’un enregistrement d’employé
Voyons maintenant ce qui se passe lorsque nous supprimons un enregistrement d’employé.
- Sur la page des détails de Trish, sélectionnez Supprimer dans le menu déroulant.
- Cliquez sur Supprimer dans la fenêtre contextuelle de confirmation.
La suppression entraîne l’affichage du message d’événement ci-dessous. Dans le cas de suppressions, les événements de modification ne contiennent pas de champ système ou d’enregistrement.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "ChangeEventHeader": { "commitNumber": 65841052769, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "DELETE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d67-b628-09dc-15a0-05101183b4d1", "commitTimestamp": 1569444019000, "recordIds": [ "a00RM0000004ICTYA2" ] } }, "event": { "replayId": 15055 } }
Restauration d’un enregistrement d’employé
Lorsque vous supprimez un enregistrement, celui-ci est « supprimé de manière non définitive » et peut être restauré dans un certain délai. Récupérons l’enregistrement via Apex.
- Cliquez sur le menu d’accès rapide (), puis sélectionnez Developer Console.
- Dans Developer Console, cliquez sur Débogage Ouvrir la fenêtre d’exécution anonyme.
- Dans la nouvelle fenêtre, saisissez ce qui suit et remplacez l’espace réservé pour l’ID par la valeur d’ID renvoyée dans le champ d’en-tête recordIds. Vous pouvez trouver le champ
recordIds
dans le message d’événement de modification que vous avez reçu après la suppression de l’enregistrement à l’étape précédente.
Employee__c record = [SELECT Id,Name FROM Employee__c WHERE Id='ID_Placeholder' ALL ROWS]; undelete record;
- Cliquez sur Exécuter.
La restauration entraîne l’affichage du message d’événement ci-dessous. L’événement de modification relatif à la restauration d’un enregistrement contient des champs issus de l’enregistrement d’origine qui avait été supprimé.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:43:31.000Z", "OwnerId": "005RM000001vI4mYAE", "CreatedById": "005RM000001vI4mYAE", "ChangeEventHeader": { "commitNumber": 65841428802, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "UNDELETE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=devconsole", "transactionKey": "00051d9a-2fd0-e4de-a8e6-09f68b7ca54c", "commitTimestamp": 1569444212000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "CreatedDate": "2019-09-25T20:36:12.000Z", "First_Name__c": "Trish", "LastModifiedById": "005RM000001vI4mYAE", "Tenure__c": 3.0, "Name": "e-100", "Last_Name__c": "Smith" }, "event": { "replayId": 15056 } }
Ressources