Menü der Dokumentation

Plattformereignisse

Mit Plattformereignissen können Sie unverknüpfte Prozesse innerhalb und außerhalb von Salesforce verbinden.

Verwenden Sie Plattformereignisse, um z.B. dynamisch auf den Upload eines neuen ContentDocument-Dokuments oder DMS-Dokuments zu reagieren und die Dokumente mit eigenen Flows weiterzuverarbeiten.

Reagieren auf das Hochladen einer Salesforce-Datei

Wenn in Salesforce eine Datei in Dateien oder am Datensatz unter Dateien & Anhänge hochgeladen wird, wird dabei ein ContentDocument-Datensatz erstellt. Der ContentDocument-Datensatz wird mit dem entsprechenden Datensatz verknüpft. Verwenden Sie ContentDocument-Datensätze, um auf das Hochladen mithilfe eines Apex-Triggers zu reagieren und anschließend eigene Prozesse anzustoßen, oder eigenen Apex-Code auszuführen.

Anmerkung

Folgende Datensatztypen werden nicht von Datensatz-Flows unterstützt:

  • ContentDocument

  • ContentDocumentLink

  • ContentVersion

Wenn diese nicht-unterstützten Datensätze erstellt werden, ist die Reaktion mit einem Apex-Trigger erforderlich. Um trotzdem Flows nutzen zu können - und damit auch alle Flow-Module zur Arbeit mit DMS-Dokumenten, folgen Sie den nachfolgenden Abschnitten.

Ein Plattformereignis erstellen

Erstellen Sie ein Plattformereignis, um auf das Hochladen einer Salesforce-Datei in einem Flow reagieren zu können.

So geht's 

  1. Navigieren Sie zu Setup.

  2. Öffnen Sie Integrationen > Plattformereignisse.

  3. Wählen Sie Neues Plattformereignis aus.

  4. Tragen Sie eine eindeutige Bezeichnung, Plural-Bezeichnung und einen eindeutigen Objektnamen ein.

  5. Wählen Sie Nach Commit veröffentlichen aus. Somit stellen Sie sicher, dass der neue ContentVersion-Datensatz erst korrekt im System gespeichert ist, bevor ein Hochladeversuch gestartet wird.

  6. Wählen Sie unter Bereitstellungsstatus den Status Bereitgestellt aus. Somit können Sie das Ereignis sofort verwenden.

  7. Speichern Sie Ihre Änderungen.

  8. Klicken unter Benutzerdefinierte Felder & Beziehungen auf Neu, um neue Felder hinzuzufügen.

  9. Wählen Sie Text als Datentyp aus.

  10. Tragen Sie eine eindeutige Feldbezeichnung und einen Feldnamen ein und tragen Sie die Länge folgendermaßen ein:

    • ContentDocumentId - Länge: 18

    • RelatedEntityId - Länge: 18

    • RelatedEntityType - Länge: 255

  11. Klicken Sie auf Speichern.

Veröffentlichen des Ereignisses beim Hochladen einer Salesforce-Datei

Wenn eine Datei in Salesforce hochgeladen wird, können Sie darauf mit einem Apex-Trigger mit dem Objekt ContentDocumentLink reagieren. In dem Objekt können Sie z.B. ein eigenes Plattformereignis mit den nötigen Informationen veröffentlichen, um anschließend darauf in einem Flow zu reagieren.

So geht's 

  1. Öffnen Sie Developer Console.

  2. Wählen Sie File > New > Apex Trigger aus. 

  3. Tragen Sie einen Namen für den Trigger ein.

  4. Wählen Sie als Object die Option ContentDocumentLink aus.

  5. Ersetzen Sie den Inhalt des Triggers analog zu folgendem Beispiel:

    trigger ContentDocumentLinkTrigger on ContentDocumentLink(after insert) {
        List<ContentDocumentUpload__e> eventsToPublish = new List<ContentDocumentUpload__e>();
     
        // Collect necessary fields from each created ContentDocumentLink
        for (ContentDocumentLink createdLink : Trigger.NEW) {
            ContentDocumentUpload__e eventForLink = new ContentDocumentUpload__e(
                ContentDocumentId__c = createdLink.ContentDocumentId,
                RelatedEntityId__c = createdLink.LinkedEntityId,
                RelatedEntityType__c = String.valueOf(createdLink.LinkedEntityId.getSObjectType())
            );
     
            eventsToPublish.add(eventForLink);
        }
     
        EventBus.publish(eventsToPublish);
    }
Reagieren auf das Hochladen eines DMS-Dokuments

Mithilfe des Plattformereignisses UploadFinishedEvent (dvelop_docs_dev__UploadFinishedEvent__e) können Sie dynamisch auf das Hochladen eines neuen DMS-Dokuments reagieren. Das Ereignis ist sowohl durch Trigger, ProcessBuilder als auch Flows verwertbar.

Jedes erfolgreiche Hochladen eines DMS-Dokuments löst ein neues Ereignis aus. Fehlgeschlagene Hochladeversuche können nicht mit dem Ereignis verwertet werden.

Übersicht über die verfügbaren Felder des Ereignisses 

Das Plattformereignis dvelop_docs_dev__UploadFinishedEvent__e verfügt über folgende Felder, die Sie in Ihrem Flow oder Apex-Trigger verwenden können:

  • RecordId__c: Die eindeutige Salesforce-ID des Objektes, für das das Hochladen durchgeführt wurde (Account, Opportunity, etc.).

  • RelatedDocumentId__c: Die eindeutige ID des hochgeladenen Dokuments im entsprechenden DMS, sofern die ID als Antwort des Hochladens geliefert wird.

  • RuntimeContext__c: Der Ausführungskontext, in dem das Hochladen durchgeführt wurde. Mögliche Werte finden Sie hier: Salesforce Apex Reference Guide > Quiddity Enum.

  • UserId__c: Die eindeutige Salesforce-ID des Benutzers, der das Hochladen ausgeführt hat bzw. in dessen Name das Hochladen ausgeführt wurde.

  • Category__c: Die eindeutige ID der Kategorie des hochgeladenen Dokuments im entsprechenden DMS.

  • Properties__c: Die Eigenschaften des hochgeladenen Dokuments. Die Eigenschaften werden folgendermaßen beschrieben:

    • values: Eingetragene Werte für die Eigenschaft

    • key: Eindeutige ID für die Eigenschaft im entsprechenden DMS

Verwenden des Ereignisses in einem Flow

Sie können auf das Hochladen eines DMS-Dokuments mit einem Plattformereignis und einem eigenen Flow reagieren.

So geht's 

  1. Navigieren Sie zu Setup.

  2. Öffnen Sie Prozessautomatisierung > Flows.

  3. Wählen Sie Neuer Flow aus.

  4. Definieren Sie den Typ des Flows. 

  5. Wählen Sie Durch Plattformereignis ausgelöster Flow aus.

  6. Unter Start finden Sie die Startkonditionen für Ihren Flow. Da der Flow durch ein Ereignis ausgelöst wird, wählen Sie unter Plattformereignis auswählen das Ereignis UploadFinishedEvent aus.

  7. Klicken Sie auf Speichern.

  8. Definieren Sie eine Flow-Bezeichnung und einen Flow-API-Namen.

Verwenden des Ereignisses in einem Apex-Trigger

Sie können auf das Hochladen eines DMS-Dokuments mit einem Plattformereignis und einem eigenen Apex-Trigger reagieren.

So geht's 

  1. Öffnen Sie Developer Console.

  2. Wählen Sie File > New > Apex Trigger aus.

  3. Tragen Sie einen Namen für den Trigger ein. 

  4. Wählen Sie als sObject die Option dvelop_docs_dev__UploadFinishedEvent__e aus.

  5. Verwenden Sie das Event in Ihrem Trigger analog zu folgendem Beispiel:

    trigger UploadFinished on dvelop_docs_dev__UploadFinishedEvent__e (after insert) {
        for (dvelop_docs_dev__UploadFinishedEvent__e event : Trigger.NEW) {
            System.debug('Event RecordID: ' + event.dvelop_docs_dev__RecordId__c);
            System.debug('Event RelatedDocumentID: ' + event.dvelop_docs_dev__RelatedDocumentId__c);
            System.debug('Event RuntimeContext: ' + event.dvelop_docs_dev__RuntimeContext__c);
            System.debug('Event UserId: ' + event.dvelop_docs_dev__UserId__c);
            System.debug('Event CategoryKey: ' + event.dvelop_docs_dev__Category__C);
            System.debug('Event Properties: ' + event.dvelop_docs_dev__Properties__C);
        }
    }
Übertragen einer neuen Salesforce-Datei in das DMS

Sie können eigene Plattformereignisse verwenden, die nach dem Hochladen von Salesforce-Dateien gestartet werden. Somit können Sie die Dateien direkt in das angebundende DMS übertragen.

Die folgenden Abschnitte zeigen Ihnen beispielhaften Anwendungsfall.

Flow erstellen

Am einfachsten können Sie auf das Hochladen einer Salesforce-Datei mit einem Plattformereignis und einem eigenen Flow reagieren.

So geht's 

  1. Navigieren Sie zu Setup. 

  2. Öffnen Sie Prozessautomatisierung > Flows.

  3. Wählen Sie Neuer Flow aus.

  4. Definieren Sie den Typ des Flows. 

  5. Wählen Sie Durch Plattformereignis ausgelöster Flow aus.

  6. Unter Start finden Sie die Startkonditionen für Ihren Flow. Da der Flow durch ein Ereignis ausgelöst wird, wählen Sie unter Plattformereignis auswählen ein vorher erstelltes Ereignis aus.

  7. Klicken Sie auf Speichern.

  8. Füllen Sie die Felder Flow-Bezeichnung und Flow-API-Name aus.

Aktion ausführen – Neue Datei in das DMS übertragen

Wenn Sie Ihren Flow mit den Grundbausteinen angelegt haben, können Sie Aktionen ausführen und dabei auf die Daten/Felder des Plattformereignisses zugreifen. Beispielsweise können Sie den Objekttyp aus dem Ereignis auslesen und davon ausgehend den hochgeladenen ContentDocument-Datensatz in unterschiedlichen DMS-Kategorien ablegen.

So geht's 

  1. Fügen Sie das Element Aktion zum Flow hinzu.

  2. Wählen Sie den Filter Dvelop oder Apex-Aktion für Kategorie oder Typ aus.

  3. Wählen Sie die Aktion Upload ContentDocument aus.

  4. Füllen Sie die Felder Bezeichnung und API-Name aus.

  5. Verwenden Sie für die Eingabewerte die Felder aus dem Plattformereignis, auf das Sie über die globale Variable $Record zugreifen können.

  6. Optional: Definieren Sie den Eingabewert Preserve file after upload. Verwenden Sie den Wert True, wenn die Salesforce-Datei nach dem erfolgreichen Hochladen nicht automatisch gelöscht werden soll. Wenn Sie den Eingabewert leer lassen oder False verwenden, wird die Datei nach dem Upload automatisch gelöscht.

  7. Optional: Definieren Sie den Eingabewert Run as Service-User. Verwenden Sie den Wert True, wenn die Zugangsdaten des allgemeinen Service-Benutzers verwendet werden sollen. Wenn Sie den Eingabewert leer lassen oder False verwenden, werden die Zugangsdaten des ausführenden Benutzers verwendet.