Skip to main content

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.

  1. Klicken Sie in Setup auf die Registerkarte Objekt-Manager und wählen Sie dann Erstellen > Benutzerdefiniertes Objekt aus.
  2. 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.

  1. Geben Sie in Setup im Feld "Schnellsuche" den Text Datenänderungserfassung ein und klicken Sie dann auf Datenänderungserfassung.
  2. Wählen Sie unter "Verfügbare Einheiten" den Eintrag Employee (Employee__c) aus und klicken Sie auf den Pfeil >.
  3. Klicken Sie auf Speichern.

Die Seite 'Datenänderungserfassung'

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.

Hinweis

EMP Connector ist ein kostenloses, community-unterstütztes Open Source-Tool. Salesforce verwendet dieses Tool als Beispiel dafür, wie Sie Ereignisse mithilfe von CometD abonnieren können. Wenn Sie mit Ihren eigenen Erweiterungen zum EMP Connector-Projekt beitragen möchten, senden Sie Pull-Anfragen an des Repository unter https://github.com/forcedotcom/EMP-Connector.

Voraussetzungen

Schritte

  1. Rufen Sie eine lokale Kopie des GitHub-Repository für EMP Connector ab:
  2. Erstellen Sie das Tool EMP Connector:
    • $ cd EMP-Connector
    • $ mvn clean package
    • Der Befehl mvn erzeugt JAR-Dateien im Ordner target des Projektverzeichnisses "EMP-Connector". Die erzeugte JAR-Datei target/emp-connector-0.0.1- SNAPSHOT-phat.jar enthält den Konnektor und die LoginExample-Funktionalität. Die JAR-Datei enthält alle Abhängigkeiten für den Konnektor, sodass Sie diese nicht separat herunterladen müssen.
  3. 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
Hinweis
  • Sie müssen ein Sicherheitstoken an Ihr Kennwort anhängen, wenn Sie keinen vertrauenswürdigen IP-Adressbereich für Ihre Organisation eingerichtet haben. Weitere Informationen finden Sie im Abschnitt "Voraussetzungen".
  • In der Befehlszeile wird manchen Zeichen eine spezielle Funktion zugeordnet. Falls Ihr Kennwort Sonderzeichen enthält, setzen Sie es in einfache Anführungszeichen, damit es als Literalzeichenfolge übergeben wird. Bei macOS und auf Unix basierenden Systemen müssen unter anderem folgende Sonderzeichen in Anführungszeichen gesetzt werden: !, \ und $.

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. 

  1. Suchen und wählen Sie im App Launcher (App Launcher) Employees aus.
  2. Klicken Sie auf Neu.
  3. Füllen Sie die folgenden Felder aus.
    • Employee Name: e-100
    • Last Name: Smith
    • First Name: Patricia
  4. 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. 

  1. Klicken Sie auf der Detailseite des Employee-Datensatzes auf Bearbeiten.
  2. Ändern Sie das Feld "First Name" in Trish.
  3. Geben Sie für "Tenure" 3 ein.
  4. 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. 

  1. Wählen Sie in Trishs Detailseite die Option Löschen aus dem Dropdown-Menü aus.
  2. 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.

  1. Klicken Sie auf das Schnellzugriffsmenü (Setup-Zahnradsymbol) und wählen Sie Developer Console aus.
  2. Klicken Sie in der Developer Console auf Debug und wählen Sie Open Execute Anonymous Window aus.
  3. 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;
  1. 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

Lernen Sie weiter kostenlos!
Registrieren Sie sich für einen Account, um fortzufahren.
Was ist für Sie drin?
  • Holen Sie sich personalisierte Empfehlungen für Ihre Karriereplanung
  • Erproben Sie Ihre Fähigkeiten mithilfe praktischer Aufgaben und Quizze
  • Verfolgen Sie Ihre Fortschritte nach und teilen Sie sie mit Arbeitgebern
  • Nutzen Sie Mentoren und Karrierechancen