Abonnieren eines Ereigniskanals
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Aktivieren von Objekten für Änderungsereignisbenachrichtigungen auf der Seite "Datenänderungserfassung"
- Verwenden von EMP Connector zum Abonnieren eines Änderungsereigniskanals
- Erzeugen von Änderungsereignisbenachrichtigungen durch Vornehmen von Änderungen in Salesforce
Nachdem Sie die Grundlagen von "Datenänderungserfassung" kennengelernt haben, sehen wir uns die Funktion in der Praxis an, indem wir einige Änderungen in Salesforce vornehmen und Änderungsereignisse empfangen. Für diesen Abschnitt erstellen und ändern wir einen Mitarbeiterdatensatz.
Erstellen des benutzerdefinierten Objekts "Employee"
Bevor wir mit dieser Übung beginnen können, müssen wir das benutzerdefinierte Objekt "Employee" definieren. Der erste Schritt besteht darin, das benutzerdefinierte Objekt zu erstellen. Sie können die Schritte in Ihrer Trailhead Playground- oder Developer Edition-Organisation nachvollziehen. Für den Zugriff auf den Trailhead Playground klicken Sie auf Ihr Profilbild rechts oben, klicken dann auf Übungs-Organisationen und dann auf den Benutzernamen der Organisation, die Sie starten möchten.
- Klicken Sie in Setup auf die Registerkarte Objekt-Manager und wählen Sie dann Erstellen > Benutzerdefiniertes Objekt aus.
- Geben Sie die folgenden Werte ein.
Bezeichnung: Employee
Plural-Bezeichnung: Employees
(Aktivieren Sie die Option Beginnt mit Vokal, sofern verfügbar.)
Objektname: Employee
Datensatzname: Employee Name
3. Aktivieren Sie das Kontrollkästchen Nach dem Speichern dieses benutzerdefinierten Objekts den Assistenten für neue benutzerdefinierte Registerkarte starten.
4. Klicken Sie auf Speichern.
5. Wählen Sie auf der Seite "Registerkarte für neues benutzerdefiniertes Objekt" Gebäude als Registerkartenstil aus.
6. Klicken Sie auf Weiter | Weiter | Speichern.
7. Klicken Sie auf Felder & Bezeihungen und dann auf Neu.
8. Folgen Sie den Schritte im Feldassistenten, um diese drei Felder anzulegen:
Datentyp: Text, Feldbezeichnung: Last Name
, Feldname: Last_Name
, Länge: 50
, Erforderlich: Ja
Datentyp: Text, Feldbezeichnung: First Name
, Feldname: First_Name
, Länge: 50
Datentyp: Zahl, Feldbezeichnung: Tenure
, Länge: 18
, Dezimalstellen: 0
, Feldname: Tenure
Aktivieren des Objekts "Employee" für Änderungsbenachrichtigungen
Bevor Sie Änderungsbenachrichtigungen empfangen können, müssen Sie die Objekte auswählen, die Sie interessieren. Andernfalls erhalten Sie keine Benachrichtigungen, selbst wenn Sie den richtigen Kanal abonnieren. In diesem Abschnitt wählen wir das benutzerdefinierte Objekt "Employee" aus, um Änderungen an "Employee"-Datensätzen zu erfassen.
- Geben Sie in Setup im Feld "Schnellsuche" den Text
Datenänderungserfassung
ein und klicken Sie dann auf Datenänderungserfassung. - Wählen Sie unter "Verfügbare Einheiten" den Eintrag Employee (Employee__c) aus und klicken Sie auf den Pfeil >.
- Klicken Sie auf Speichern.
Abonnieren mithilfe von EMP Connector
Als Nächstes zeigen wir Ihnen, wie Sie mit dem EMP Connector Änderungsereignisse für Datensätze des Typs "Employee" generieren und abonnieren können. In diesem Abschnitt stellen wir die Schritte zum Generieren und Empfangen von Änderungsereignissen vor, damit Sie Beispiele für Änderungsereignisse kennenlernen. Sie müssen die Schritte zum Erwerben dieses Badges nicht zu befolgen. Sie können auf die Schritte verweisen, wenn Sie EMP Connector später zum Abonnieren von Änderungsereignissen verwenden.
Voraussetzungen
- Git: Siehe Git-Downloads.
- Apache Maven: Bei diesem Beispiel wird Apache Maven zum Erstellen des EMP Connector-Projekts verwendet. Laden Sie es sich von https://maven.apache.org/index.html herunter und installieren Sie es.
- Java Development Kit 8 oder höher: Siehe Java-Downloads.
- Eine Developer Edition-Organisation oder Ihre Trailhead Playground-Organisation. Weitere Informationen darüber, wie Sie den Benutzernamen und das Kennwort für Ihre Trailhead Playground-Organisation erfahren, finden Sie in der Einheit Ermitteln von Benutzername und Kennwort für Ihren Trailhead Playground im Modul Trailhead Playground-Management.
- Wenn Sie keinen Bereich vertrauenswürdiger IP-Adressen für Ihre Organisation eingerichtet haben, benötigen Sie ein Sicherheitstoken, das Sie an Ihr Kennwort anfügen. Weitere Informationen finden Sie unter Zurücksetzen Ihres Sicherheitstokens und Festlegen vertrauenswürdiger IP-Bereiche für Ihre Organisation.
Schritte
- Rufen Sie eine lokale Kopie des GitHub-Repository für EMP Connector ab:
-
$ git clone
https://github.com/forcedotcom/EMP-Connector.git
-
- Erstellen Sie das Tool EMP Connector:
$ cd EMP-Connector
$ mvn clean package
- Der Befehl
mvn
erzeugt JAR-Dateien im Ordnertarget
des Projektverzeichnisses "EMP-Connector". Die erzeugte JAR-Dateitarget/emp-connector-0.0.1- SNAPSHOT-phat.jar
enthält den Konnektor und dieLoginExample
-Funktionalität. Die JAR-Datei enthält alle Abhängigkeiten für den Konnektor, sodass Sie diese nicht separat herunterladen müssen.
- Um EMP Connector für Ihre Developer Edition- oder Trailhead Playground-Organisation auszuführen, geben Sie folgenden Befehl ein und geben Ihre Anmeldeinformationen für Ihre Trailhead Playground- oder Salesforce-Organisation sowie den Kanal an, den Sie abonnieren möchten. Im vorliegenden Beispiel ist der Kanal
/data/Employee__ChangeEvent
.$ java -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <username> <password> /data/Employee__ChangeEvent
Sobald Sie den Kanal für Employee__c mit dem Tool EMP Connector abonniert haben, werden bei Änderungen von Employee-Datensätzen oder der Erstellung neuer Datensätze Benachrichtigungen generiert, die das Tool in der Konsole ausgibt.
Erstellen eines Employee-Datensatzes
Wir nehmen jetzt ein paar Datensatzänderungen vor, damit wir einige Benachrichtigungen über Änderungsereignisse erhalten. Zuerst erstellen wir einen Employee-Datensatz.
- Suchen und wählen Sie im App Launcher () Employees aus.
- Klicken Sie auf Neu.
- Füllen Sie die folgenden Felder aus.
- Employee Name:
e-100
- Last Name:
Smith
- First Name:
Patricia
- Employee Name:
- Klicken Sie auf Speichern.
Wenn Sie den Employee-Datensatz speichern, wird in der Konsole wie folgt eine Änderungsmeldung angezeigt.
{ "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 } }
Aktualisieren eines Employee-Datensatzes
Als Nächstes aktualisieren wir den eben erstellten Datensatz, indem wir einen Wert für das Feld "Tenure" hinzufügen und den Vornamen ändern.
- Klicken Sie auf der Detailseite des Employee-Datensatzes auf Bearbeiten.
- Ändern Sie das Feld "First Name" in
Trish
. - Geben Sie für "Tenure"
3
ein. - Klicken Sie auf Speichern.
Durch die Aktualisierung des Employee-Datensatzes wird die folgende Änderungsereignisnachricht generiert. Beachten Sie, dass das Änderungsereignis neben den Header-Feldern nur die neuen und geänderten Felder enthält.
{ "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 } }
Löschen eines Employee-Datensatzes
Sehen wir uns nun an, was passiert, wenn wir den Employee-Datensatz löschen.
- Wählen Sie in Trishs Detailseite die Option Löschen aus dem Dropdown-Menü aus.
- Klicken Sie im Bestätigungsfenster auf Löschen.
Der Löschvorgang führt zu folgender Ereignisnachricht. Änderungsereignisse für Löschungen enthält weder Datensatz- noch Systemfelder.
{ "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 } }
Wiederherstellen eines gelöschten Employee-Datensatzes
Wenn Sie einen Datensatz löschen, wird dies nur vorläufig gelöscht und kann innerhalb eines bestimmten Zeitlimits wiederhergestellt werden. Lassen Sie uns den Datensatz über Apex wiederherstellen.
- Klicken Sie auf das Schnellzugriffsmenü () und wählen Sie Developer Console aus.
- Klicken Sie in der Developer Console auf Debug und wählen Sie Open Execute Anonymous Window aus.
- Geben Sie den folgenden Befehl in das neue Fenster ein und ersetzen Sie dabei den ID-Platzhalter durch den im Header-Feld "recordIds" zurückgegebenen ID-Wert. Sie finden das Feld
recordIds
in der Änderungsereignisnachricht, die Sie erhielten, nachdem Sie den Datensatz im vorherigen Schritt gelöscht hatten.
Employee__c record = [SELECT Id,Name FROM Employee__c WHERE Id='ID_Placeholder' ALL ROWS]; undelete record;
- Klicken Sie auf Execute (Ausführen).
Der Wiederherstellungsvorgang führt zu folgender Ereignisnachricht. Das Änderungsereignis für einen wiederhergestellten Datensatz enthält Felder aus dem ursprünglichen gelöschten Datensatz.
{ "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 } }
Ressourcen