Loading
Automatisieren Ihrer Geschäftsprozesse
Inhalt
Filter auswählen

          Keine Ergebnisse
          Keine Ergebnisse
          Hier sind einige Suchtipps

          Überprüfen Sie die Schreibweise Ihrer Stichwörter.
          Verwenden Sie allgemeinere Suchbegriffe.
          Wählen Sie weniger Filter aus, um Ihre Suche auszuweiten.

          Gesamte Salesforce-Hilfe durchsuchen
          Beispiel für die Verarbeitung von Massendatensätzen zur Vermeidung von CPU-Obergrenzen

          Beispiel für die Verarbeitung von Massendatensätzen zur Vermeidung von CPU-Obergrenzen

          Erfahren Sie, wie Sie Flows umfaktorieren, um Massenvorgangsmuster zu verwenden, die Apex_CPU_TIME_LIMIT_EXCEEDED-Fehler verhindern. In diesem Beispiel wird der Unterschied zwischen ineffizientem und optimiertem Flow-Design veranschaulicht.

          Erforderliche Editionen

          Unterstützte Editionen anzeigen.
          Erforderliche Benutzerberechtigungen
          Öffnen, Bearbeiten, Erstellen, Aktivieren oder Deaktivieren eines Flows mit allen in Flow Builder verfügbaren Flow-Typen, -Elementen und -Funktionen, einschließlich Einstein und Agentforce für Flow: Flow verwalten

          In diesem Beispiel wird gezeigt, wie Sie einen Flow, der Data Manipulation Language (DML) in einer Schleife ausführt, in einen Massen-Flow umwandeln, der Datensätze effizient verarbeitet. Zeigen Sie einen Vorher-Nachher-Vergleich an und lernen Sie die Prinzipien der Flow-Massenverarbeitung kennen.

          Szenario

          Erstellen Sie einen durch einen Datensatz ausgelösten Flow, der ausgeführt wird, wenn eine Opportunity geschlossen wird. Für jede geschlossene und gewonnene Opportunity erstellt der Flow eine Folgeaufgabe für jedes Mitglied des Opportunity-Teams. Der Flow:

          • Ruft alle Opportunity-Teammitglieder ab.
          • Erstellt eine Aufgabe, die jedem Teammitglied zugewiesen ist.
          • Funktioniert effizient, selbst wenn Benutzer mehrere Opportunities gleichzeitig aktualisieren.
          • Vermeidet Apex_CPU_TIME_LIMIT_EXCEEDED-Fehler bei Massenvorgängen.

          Salesforce erzwingt eine einzelne CPU-Zeitobergrenze von 10.000 Millisekunden (10 Sekunden) pro synchroner Transaktion. Alle Automatisierungselemente dieser Transaktion (Apex-Auslöser, Flows, Workflow-Regeln und Prozesse) werden aus demselben Budget abgerufen. Ein ineffizientes Flow-Design verschärft das Problem. Andere Automatisierungen in der Transaktion ziehen zuerst das freigegebene Budget in Anspruch und ein ineffizienter Flow verbraucht mehr als nötig von dem, was übrig bleibt.

          Die Reihenfolge, in der Flows ausgeführt werden, hängt vom Flow-Typ ab. In diesem Beispiel wird ein durch einen Datensatz ausgelöster Flow nach dem Speichern verwendet, der später in der Reihenfolge ausgeführt wird als Flows vor dem Speichern. Details zur Ausführungsreihenfolge finden Sie unter Auslöser und Ausführungsreihenfolge.

          Ineffizienter Ansatz: DML-Vorgänge in einer Schleife

          Dieser Ansatz führt bei der Verarbeitung mehrerer Opportunities zu CPU-Obergrenzenfehlern.

          Flow-Struktur: Der Flow beginnt mit einem durch einen Datensatz ausgelösten Flow für das Opportunity-Objekt, der nach einer Datensatzaktualisierung ausgeführt wird, wenn Phase gleich "Geschlossen und gewonnen" ist. Der Flow verwendet Get Records (Datensätze abrufen), um Opportunity-Teammitglieder für den auslösenden Datensatz abzurufen, und durchläuft dann die Sammlung. Innerhalb der Schleife erstellt ein Element vom Typ "Datensätze erstellen" eine Aufgabe für jedes Teammitglied.

          Warum dieser Ansatz fehlschlägt:

          • Jede Schleifeniteration führt einen separaten DML-Vorgang aus.
          • Eine Opportunity mit 5 Teammitgliedern führt zu 5 DML-Vorgängen.
          • Wenn Benutzer 20 Opportunities gleichzeitig aktualisieren, verarbeitet der Flow alle Opportunities in einer Transaktion.
          • 20 Opportunities × 5 Teammitglieder = jeweils 100 DML-Vorgänge in einer Transaktion.
          • Die kumulierte CPU-Zeit ab 100 DML-Vorgängen überschreitet die Obergrenze.
          • Ergebnis: APEX_CPU_TIME_LIMIT_EXCEEDED error.

          Effizienter Ansatz: Sammlungsbasierte Massenverarbeitung

          Dieser Ansatz verarbeitet Datensätze unabhängig vom Volumen effizient.

          Flow-Struktur: Der Flow beginnt mit einem durch einen Datensatz ausgelösten Flow im Opportunity-Objekt und verwendet Get Records (Datensätze abrufen), um Opportunity-Teammitglieder abzurufen. Der Flow erstellt eine Aufgaben-Datensatzvariable und eine Aufgaben-Datensatzsammlungsvariable. Die Datensatzvariable enthält die aktuelle Aufgabe, an der der Flow arbeitet, und die Datensatzsammlung enthält die zu erstellenden Aufgaben. Der Flow durchläuft die Teammitglieder. Innerhalb der Schleife erstellt ein Zuweisungselement jeden Aufgabendatensatz durch Festlegen von Werten für die Variable "Aufgabe" und verknüpft die Aufgabe mit dem aktuellen Teammitglied in der Schleife. Ein weiteres Zuweisungselement fügt der Aufgabendatensatzsammlung Werte für Aufgabendatensätze hinzu. Nach Abschluss der Schleife erstellt ein einzelnes Element vom Typ "Datensätze erstellen" alle Aufgaben aus der Sammlung.

          Warum dies funktioniert:

          • Die Schleife erstellt eine Sammlung von Aufgabendatensätzen, ohne DML-Vorgänge auszuführen.
          • Nach Abschluss der Schleife wird nur ein DML-Vorgang ausgeführt.
          • Eine Opportunity mit 5 Teammitgliedern führt weiterhin zu nur einem DML-Vorgang (wobei 5 Aufgaben gleichzeitig erstellt werden).
          • Wenn Benutzer 20 Opportunities gleichzeitig aktualisieren, führt der Flow insgesamt 20 DML-Vorgänge aus (eine pro Opportunity).
          • Deutliche Reduzierung des CPU-Zeitverbrauchs.
          • Ergebnis: Der Flow wird erfolgreich abgeschlossen, ohne die Obergrenzen zu erreichen.

          Leistungsvergleich

          Szenario Ineffizient (DML in Schleife) Effizient (Bulkified)
          1 Opportunity mit 5 Teammitgliedern 5 DML-Vorgänge 1 DML-Vorgang
          20 Opportunities (Massenaktualisierung) mit jeweils 5 Teammitgliedern

          100 DML-Vorgänge

          (Schlägt wahrscheinlich mit CPU-Obergrenzenfehler fehl)

          20 DML-Vorgänge

          (Abgeschlossen erfolgreich)

          100 Opportunities (Datenladen) mit je 3 Teammitgliedern

          300 DML-Vorgänge

          (Scheitert definitiv)

          100 DML-Vorgänge

          (Abgeschlossen erfolgreich)

          Wichtige Prinzipien der Massenverarbeitung

          • Führen Sie DML-Vorgänge niemals in Schleifen aus. Sammeln Sie während der Schleife immer Datensätze in einer Sammlungsvariablen und führen Sie dann DML aus, nachdem die Schleife abgeschlossen wurde.
          • Von Anfang an für Massenvorgänge konzipiert. Angenommen, durch einen Datensatz ausgelöste Flows verarbeiten mehrere Datensätze gleichzeitig.
          • Verwenden Sie Datensatzsammlungsvariablen. Sammlungsbasierte DML-Vorgänge sind deutlich effizienter als einzelne Vorgänge.
          • Testen Sie mit realistischen Volumen. Im Debug-Modus mit einem Datensatz werden keine Probleme beim Massenvorgang angezeigt. Testen Sie mit dem Datenimport-Assistenten, Data Loader oder Massenaktualisierungen.
          • Überwachen Sie die Leistung. Überprüfen Sie Debug-Protokolle, um Flows zu identifizieren, die sich den Obergrenzen nähern, bevor sie in der Produktion fehlschlagen.

          Schritte auf hoher Ebene

          Lesen Sie die Schritte in diesem Beispiel. Folgen Sie ihnen in der Reihenfolge oder rufen Sie einen Abschnitt auf, um spezifischere Anweisungen zu erhalten.

          Erstellen des Flows

          Richten Sie den durch einen Datensatz ausgelösten Flow so ein, dass er ausgeführt wird, wenn Opportunities geschlossen werden.

          1. Öffnen Sie die Listenansicht "Flows".
            • Geben Sie unter "Setup" im Feld "Schnellsuche" den Text Flows ein und wählen Sie dann Flows aus.
            • Wählen Sie in der Automatisierungsanwendung die Registerkarte Flows aus.
            • Klicken Sie in einer beliebigen Lightning-Anwendung auf der Registerkarte "Flows" auf das Aktionsmenü und wählen Sie Flow öffnen aus.
          2. Erstellen Sie einen durch einen Datensatz ausgelösten Flow.
            1. Klicken Sie in der Lightning-Anwendung "Automatisierung" auf Neu. Suchen Sie nach Durch Datensätze ausgelöster Flow und wählen Sie ihn aus.
            2. Klicken Sie unter "Setup" auf Neuer Flow, suchen Sie nach Durch Datensatz ausgelöster Flow und wählen Sie diese Option aus.
            Der Bereich "Start konfigurieren" wird geöffnet.
          3. Konfigurieren Sie das Startelement.
            1. Wählen Sie für "Objekt" die Option Opportunity aus.
            2. Wählen Sie für "Flow auslösen, wenn" die Option Ein Datensatz wird aktualisiert aus.
            3. Wählen Sie im Abschnitt "Eintrittsbedingungen festlegen" für Bedingungsanforderungen die Option Alle Bedingungen sind erfüllt (AND) aus.
            4. Wählen Sie für "Feld" die Option Phase aus.
            5. Wählen Sie für "Operator" die Option Gleich aus.
            6. Wählen Sie für "Wert" die Option Geschlossen und gewonnen aus.
            7. Wählen Sie für "Flow optimieren" die Option Aktionen und verwandte Datensätze aus.

          Erstellen von Ressourcen

          Erstellen Sie die Variablen, die für die Massenverarbeitung erforderlich sind.

          1. Erstellen Sie zum Erstellen jeder Aufgabe eine Datensatzvariable zum Erstellen von Aufgabendatensätzen.
            1. Klicken Sie zum Öffnen der Toolbox auf Toolbox-Symbol..
            2. Klicken Sie auf Neue Ressource und wählen Sie dann Variable aus.
            3. Geben Sie als API-Name TaskRecord ein.
            4. Wählen Sie Datensatz für "Datentyp" aus.
            5. Wählen Sie für "Objekt" die Option Aufgabe aus.
            6. Klicken Sie auf Fertig.
          2. Erstellen Sie zum Speichern aller Aufgaben eine Datensatzsammlungsvariable für alle Aufgaben.
            1. Klicken Sie auf Neue Ressource und wählen Sie dann Variable aus.
            2. Geben Sie als API-Namen TasksToCreate ein.
            3. Wählen Sie Datensatz für "Datentyp" aus.
            4. Wählen Sie für "Objekt" die Option Aufgabe aus.
            5. Wählen Sie Mehrere Werte zulassen (Sammlung) aus.
            6. Klicken Sie auf Fertig.

          Erhalten von Teammitgliedern

          Rufen Sie die Datensätze des Opportunity-Teammitglieds zur Verarbeitung ab, indem Sie ein Element vom Typ "Datensätze abrufen" verwenden.

          1. Klicken Sie auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach Datensätze abrufen und wählen Sie diese Option aus.
          2. Konfigurieren Sie das Element.
            1. Geben Sie für "Bezeichnung" den Text Get Opportunity Team Members (Opportunity-Teammitglieder abrufen) ein.
            2. Wählen Sie für "Objekt" die Option Opportunity-Kontaktrolle aus.
              In diesem Beispiel speichert der Flow Teammitglieder im Objekt "Opportunity-Kontaktrolle". Ein Objekt, das Opportunities mit Kontakten verknüpft.
            3. Wählen Sie im Abschnitt "Datensätze für Opportunity-Kontaktrollen filtern" für "Feld" die Option Opportunity-ID aus.
            4. Wählen Sie für "Operator" die Option Gleich aus.
            5. Wählen Sie für "Wert" die Option Auslösende Opportunity und dann Opportunity-ID aus.
            6. Wählen Sie Alle Datensätze für "Wie viele Datensätze sollen gespeichert werden?" aus.
            7. Wählen Sie für "Wie werden Datensatzdaten gespeichert?" die Option Alle Felder automatisch speichern aus.

          Hinzufügen einer Entscheidung zum Überprüfen auf Teammitglieder

          Fügen Sie ein Entscheidungselement hinzu, um die Verarbeitung zu vermeiden, wenn keine Teammitglieder vorhanden sind.

          1. Klicken Sie auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach Entscheidung und wählen Sie diese Option aus.
          2. Konfigurieren Sie die Entscheidung.
            1. Geben Sie für "Bezeichnung" den Text Gefundene Teammitglieder? ein.
            2. Der API-Name wird automatisch ausgefüllt.
            3. Geben Sie als Ergebnisbezeichnung Ja ein.
            4. Der API-Name wird automatisch ausgefüllt.
            5. Wählen Sie für "Ressource" unter "Get Opportunity Team Members" (Opportunity-Teammitglieder abrufen) die Option Opportunity-Kontaktrollen aus.
            6. Wählen Sie für "Operator" die Option Ist Null aus.
            7. Wählen Sie für "Wert" die Option Falsch aus.
            8. Klicken Sie auf Standardergebnis.
            9. Geben Sie für "Bezeichnung" Nein ein.

          Hinzufügen eines Schleifenelements

          Fügen Sie ein Schleifenelement hinzu, um Teammitglieder zu durchlaufen.

          1. Klicken Sie im Pfad "Ja" auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach Schleife und wählen Sie diese Option aus.
          2. Konfigurieren Sie die Schleife.
            1. Geben Sie für "Bezeichnung" den Text Durch Teammitglieder wiederholen ein.
            2. Der API-Name wird automatisch ausgefüllt.
            3. Wählen Sie für "Sammlungsvariable" unter "Get Opportunity Team Members" (Opportunity-Teammitglieder abrufen) die Option Opportunity Contact Role (Opportunity-Kontaktrolle) aus.
              Diese Ressource wird als singulär angezeigt, selbst wenn sie mehrere Datensätze enthält.
            4. Wählen Sie für "Richtung" die Option Erstes Element bis letztes Element aus.

          Erstellen von Aufgabendatensätzen innerhalb der Schleife

          Füllen Sie Feldwerte für die Datensatzvariable TaskRecord für jedes Teammitglied innerhalb der Schleife aus.

          1. Klicken Sie nach "Für jeden" auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach Zuweisung und wählen Sie diese Option aus.
          2. Konfigurieren Sie die Zuweisung.
            1. Geben Sie für "Bezeichnung" den Text Aufgabe erstellen ein.
            2. Der API-Name wird automatisch ausgefüllt.
            3. Wählen Sie für "Variable" die Option TaskRecord und dann Subject aus.
            4. Wählen Sie für "Operator" die Option Gleich aus.
            5. Geben Sie als Wert Folgen für geschlossene Opportunities ein.
            6. Klicken Sie auf + Zuweisung hinzufügen.
            7. Fügen Sie weiterhin Zuweisungen hinzu und legen Sie Werte fest.
              Ressource Operator Wert
              TaskRecord>Status Gleich Nicht gestartet
              TaskRecord>Priority Gleich Hoch
              TaskRecord>Zugeordnet zu ID Gleich Aktuelles Element aus Schleife>Kontakt-ID
              TaskRecord>Bezug zu ID Gleich Auslösende Opportunity>Opportunity-ID

          Hinzufügen von Aufgaben zur Sammlung

          Fügen Sie der Sammlungsvariablen "TasksToCreate" für die Massenerstellung jeden Aufgabendatensatz hinzu.

          1. Klicken Sie nach dem Zuweisungselement, das sich noch in der Schleife befindet, auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach Zuweisung und wählen Sie diese Option aus.
          2. Konfigurieren Sie die Zuweisung.
            1. Geben Sie für "Bezeichnung" den Text Aufgabe zur Sammlung hinzufügen ein.
            2. Wählen Sie für "Variable" die Option TasksToCreate aus.
            3. Wählen Sie für "Operator" die Option Addieren aus.
            4. Wählen Sie für "Wert" die Option TaskRecord und dann Gesamte Ressource aus.

          Erstellen aller Aufgaben nach der Schleife

          Verwenden Sie ein einzelnes Element vom Typ "Datensätze erstellen", um alle Aufgaben in einem Vorgang zu erstellen.

          1. Klicken Sie nach Beendigung der Schleife auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach Datensätze erstellen und wählen Sie diese Option aus.
          2. Konfigurieren Sie das Element.
            1. Geben Sie für "Bezeichnung" den Text Alle Aufgaben erstellen ein.
            2. Wählen Sie für "Wie werden Datensatzfeldwerte festgelegt?" die Option Aus einer Datensatzvariablen aus.
            3. Wählen Sie für "Wie viele Datensätze sollen erstellt werden" die Option Mehrfach aus.
            4. Wählen Sie für "Datensatzsammlung" die Option TasksToCreate aus.
          3. Speichern Sie den Flow.
          4. Geben Sie für "Bezeichnung" den Text Aufgaben für Opportunity-Teammitglieder erstellen ein.
          5. Der API-Name wird automatisch ausgefüllt.

          Hinzufügen der Fehlerbehandlung

          Konfigurieren Sie die Fehlerverwaltung, um Fehler zu erfassen und zu melden.

          1. Fügen Sie zum Verwalten von Fehlern dem Element "Datensätze erstellen" einen Fehlerpfad hinzu.
            1. Klicken Sie auf die drei Punkte im Element "Alle Aufgaben erstellen" und wählen Sie Fehlerpfad hinzufügen aus.
          2. Fügen Sie eine Aktion vom Typ "E-Mail senden" hinzu, um Salesforce-Administratoren über Fehler im Fehlerpfad zu benachrichtigen.
            1. Klicken Sie im Fehlerpfad auf Symbol 'Element hinzufügen' mit Pluszeichen und suchen Sie dann nach E-Mail senden und wählen Sie diese Option aus.
            2. Geben Sie für "Bezeichnung" den Text Administrator über Fehler benachrichtigen ein.
            3. Der API-Name wird automatisch ausgefüllt.
            4. Geben Sie unter "Empfängeradressen" die E-Mail-Adresse der Person ein, die die Benachrichtigung erhalten soll.
            5. Geben Sie für "Betreff" den Text Ein Flow benötigt Ihre Aufmerksamkeit ein.
            6. Geben Sie für "Text" den Text Aufgaben für Opportunity-Teammitglieder erstellen ein, bei dem ein Fehler aufgetreten ist. Folgender Fehler: hinzu.
            7. Klicken Sie auf Ressource einfügen.
            8. Wählen Sie Ausgeführter Flow und dann Fehlermeldung aus.
          3. Speichern Sie Ihre Arbeit.

          Testen mit Massendaten

          Zum Testen von Massenvorgängen müssen Massenvorgänge simuliert werden.

          1. Verwenden Sie zum Testen eines einzelnen Datensatzes den Debug-Modus, um eine Opportunity zu aktualisieren und zu überprüfen, ob der Flow Aufgaben richtig erstellt.
          2. Aktivieren Sie den Flow.
          3. Verwenden Sie zum Testen von Massenvorgängen in einer Sandbox den Datenimport-Assistenten, Data Loader oder eine Listenansicht, um mehrere Opportunities gleichzeitig zu aktualisieren.
            1. Erstellen Sie zwischen 10 und 20 Test-Opportunities.
            2. Fügen Sie jeder Opportunity Teammitglieder hinzu.
            3. Verwenden Sie Data Loader oder die Massenaktualisierung, um die Phase für alle Opportunities gleichzeitig in "Geschlossen und gewonnen" zu ändern.
            4. Überprüfen Sie, ob der Flow alle Aufgaben ohne Fehler erstellt.
          4. Überprüfen Sie zum Überprüfen der Leistung das Apex Debug-Protokoll, um sicherzustellen, dass der CPU-Zeitverbrauch innerhalb akzeptabler Grenzen liegt.

          Weitere Optimierungstechniken

          Optimieren Sie Massenvorgänge mit diesen Techniken weiter.

          Verwenden von Eintrittsbedingungen zum Begrenzen der Ausführung

          Fügen Sie dem Flow-Startelement Bedingungen hinzu, um sicherzustellen, dass es nur bei Bedarf ausgeführt wird. Verarbeiten Sie beispielsweise nur Opportunities ab einem bestimmten Betrag oder aus bestimmten Datensatztypen.

          Nach dem Speichern für nicht wichtige Vorgänge berücksichtigen

          Nach dem Speichern können durch einen Datensatz ausgelöste Flows Folgeaufgaben erstellen, nachdem Sie die Opportunity gespeichert haben. Sie werden asynchron ausgeführt und weisen höhere Obergrenzen auf.

          Batch-Prozess für sehr große Volumen

          Wenn Opportunities regelmäßig Dutzende Teammitglieder aufweisen, verwenden Sie einen geplanten Flow, der geschlossene Opportunities in Batches und nicht in Echtzeit verarbeitet.

          Konvertieren vorhandener Flows

          Konvertieren Sie Flows mit DML-Vorgängen (Data Manipulation Language) in Schleifen in Massenmuster.

          Wenn Sie über vorhandene Flows mit DML-Vorgängen in Schleifen verfügen, führen Sie die folgenden Schritte aus, um sie zu konvertieren.

          1. Wenn Sie DML-Vorgänge in Schleifen finden möchten, identifizieren Sie alle Elemente "Datensätze erstellen", "Datensätze aktualisieren" und "Datensätze löschen" in Schleifen.
          2. Nehmen Sie für jedes DML-Element die Konvertierung vor.
            1. Erstellen Sie zum Erstellen von Datensätzen eine Datensatzvariable für diesen Objekttyp.
            2. Erstellen Sie zum Speichern der zu verarbeitenden Datensätze eine Datensatzsammlungsvariable für diesen Objekttyp.
            3. Verwenden Sie zum Speichern von Feldwerten für die Datensätze ein Zuweisungselement, um der Datensatzvariablen Werte zuzuweisen.
            4. Wenn Sie die zu verarbeitenden Datensätze erfassen möchten, fügen Sie die Datensatzvariable mithilfe von "Zuweisung" der Datensatzsammlung hinzu.
            5. Fügen Sie nach der Schleife ein DML-Element hinzu, das die gesamte Datensatzsammlung verarbeitet, um Datensätze effizient zu erstellen.
          3. Testen Sie zum Überprüfen der Konvertierung gründlich mit Massendaten, um sicherzustellen, dass das Refaktoring ordnungsgemäß funktioniert hat.
           
          Laden
          Salesforce Help | Article