In Salesforce ist die Validierung der Daten vor/nach dem Einsetzen sehr wichtig und sollte berücksichtigt werden. In den meisten Szenarien muss nach Eingabe der Daten in das Salesforce -Objekt einige Datenmanipulationen geschehen und falsche Insertionen/Löschungen/Updates müssen validiert und behandelt werden. Um dies zu erreichen, führte Salesforce ein Apex -Skript ein, das als „Trigger“ bezeichnet wird. Tauchen Sie schnell in den Leitfaden ein, der sich mit Triggerereignissen, Kontextvariablen, Typen und Szenarien mit Echtzeitbeispielen befasst.
Apex -Trigger
In Salesforce ist Trigger ein Apex-Code (.APXT), der vor oder nach den Datenmanipulationsinstanzen ausbricht. Basierend auf dem Ereignis, das im Auslöser angegeben ist, füllt es auf bestimmte Objekte in Salesforce. Außerdem können wir die Kontexte angeben, die uns helfen, auf die Laufzeitkontexte zuzugreifen. Dies hilft uns, unerwünschte/unnötige Aktionen auf Objekte in Salesforce zu verhindern. Angenommen, wir müssen im Kontoobjekt nur das Telefon aktualisieren, wenn die „Branche“ „Landwirtschaft“ ist.
Ereignisse auslösen
Wie wir bereits diskutiert haben, erfolgt ein Auslöser vor oder nach den DML -Operationen. Es gibt drei DML -Operationen, die im Salesforce -Objekt stattfinden.
Ein weiteres Triggerereignis, das nach Ungläubigen abgefeuert werden kann, ist „nach unelektronisch“.
Triggertypen
Grundsätzlich gibt es zwei Arten von Auslöser: den „vor“ -auslöser und den „After“ -Strigger.
Kontextvariablen auslösen
Es ist wichtig zu sehen, welches Triggerszenario abgefeuert wird. Wir müssen verfolgen, welcher Triggerkontext der Abzug ausgelöst wird. Alle Trigger -Kontextvariablen geben true zurück, wenn der Auslöser aufgrund dieses Ereignisses abgefeuert wird. Schauen wir sie uns nacheinander an.
1. Issinsert: Wenn der Auslöser aufgrund eines Einfügungs -DML -Ereignisses abgefeuert wird, wird Issinsert wahr.
Beispiel: Erstellen Kontakt, wenn „Konto“ erstellt wird.
2. Isupdate: Wenn der Auslöser aufgrund eines Update -DML -Ereignisses abgefeuert wird, wird Isupdate wahr.
Beispiel: Wenn der „Kontoname“ nicht null ist, bevölkern Sie den „Jahresumsatz“.
3. Isdelete: Wenn der Auslöser aufgrund eines DML -Ereignisses gelöscht wird, wird Isdelete wahr.
Beispiel: Die Kontoaufzeichnungen können nicht löschen, wenn "Kontobewertung" "heiß" ist.
4. isundelete: Wenn der Auslöser aufgrund eines ungeletteten DML -Ereignisses abgefeuert wird, wird isundelete wahr.
Beispiel: Die Kontoaufzeichnungen werden aus dem Salesforce Recycle Bin abgerufen.
Triggersyntax:
Wir können ein Apex -Skript erstellen, das basierend auf DML. Es fragt, welcher Salesforce -Objekt den Auslöser während der Erstellung des Apex -Skripts selbst erfolgen sollte. Alle Triggerereignisse werden nach dem Salesforce -Objekt angegeben.
Trigger Trigger_Name auf Salesforce_Object_api (Trigger_Events)Umgebungsaufbau
1. Gehen Sie zur "Developer Console" und gehen Sie zur Datei "Neue" aus. Wählen Sie dann "Apex Trigger" aus.
2. Es wird nach dem Skriptnamen und dem Salesforce -Objekt aufgefordert, dass der Auslöser auf dieses Objekt abgefeuert wird. Klicken Sie auf "Senden", um einen neuen Apex -Auslöser zu erstellen.
Szenario 1: Vor dem Einfügen
Wenn das Konto mit der „Bildungsbranche“ erstellt wird, entlassen wir einen Auslöser, der dem Feld „Typ“ dem „Technologiepartner“ [Objekt - Konto] zuweist.
Auslösen Sie vor dem Konto (vor dem Einfügen)„Erstens iterieren wir die Kontoaufzeichnungen und prüfen, ob die Branche„ Bildung “ist oder nicht. Wenn es sich um „Bildung“ handelt, weisen wir den „Technologiepartner“ dem Feld "Typ" zu.
Testfall:
Gehen Sie vom App -Launcher auf die Registerkarte "Konten" und erstellen Sie ein Konto bei der Industrie als "Bildung". Überprüfen Sie, ob das Feld "Typ" mit "Technologiepartner" besiedelt ist oder nicht.
Wenn Sie auf "Speichern" klicken, können Sie feststellen, dass "Typ" mit "Technologiepartner" erstellt wird, das erstellt wird.
Szenario 2: Nach dem Einfügen und nach dem Update
Wenn das Konto mit der Bewertung „warm“ erstellt wird, entlassen wir einen Auslöser, der einen Kontakt mit "Kontakt Lastname" als "LinuxHint-Account", "Titel" als "Manager" und "Abteilung" als "Verkauf" erstellt [Objekt " - Konto].
Auslösen von After_insert_trigger im Konto (nach dem Einfügen, nach dem Update)Zunächst erstellen wir eine Liste mit "Kontakt" -Typ und iterieren das "Konto" -Objekt. In der Schleife "für" überprüfen wir, ob die "Kontobewertung" "warm" ist oder nicht. Wenn es „warm“ ist, erstellen wir "Kontakt" und weisen den Werten drei Felder zu und fügen dieses Objekt der Kontaktliste hinzu (zuvor deklariert). Schließlich setzen wir diese drei Felder mit der DML -Einfügung in das „Kontakt“ -Objekt ein.
Testfall:
Gehen Sie vom App -Launcher auf die Registerkarte "Konten" und erstellen Sie ein Konto mit der Bewertung "Warm" als "Warm". Überprüfen Sie, ob der Kontaktdatensatz mit drei bestimmten Feldern erstellt wird.
Wenn Sie auf "Speichern" klicken, können Sie feststellen, dass "Kontakt" mit drei Feldern erstellt wird. Gehen Sie zur Registerkarte "Kontakte".
Wir können sehen, dass drei Felder erstellt werden. Gehen Sie zur Registerkarte "Details", um die Felder anzuzeigen.
Szenario 3: Vor dem Update
Wenn die Kampagne mit dem Typ „Konferenz“ aktualisiert wird, feuern wir einen Auslöser aus, der das Feld "Status" auf "Fertig" [Objekt - Kampagne] aktualisiert.
Trigger vor_update_trigger auf der Kampagne (vor dem Update)Erstens iterieren wir die Kampagnenaufzeichnungen und überprüfen, ob der Typ "Konferenz" ist oder nicht. Wenn es sich um "Konferenz" handelt, aktualisieren wir das Feld "Status" auf "Fertigstellung".
Testfall:
Gehen Sie vom App -Launcher auf die Registerkarte "Kampagnen" und öffnen Sie einen vorhandenen Datensatz.
Dieser Datensatz enthält "Webinar" -Typ und sein Status ist "geplant". Bearbeiten Sie diesen Datensatz nun, indem Sie den Typ auf "Konferenz" aktualisieren.
Wir können sehen, dass der „Status“ auf "Fertiger" aktualisiert wird.
Szenario 4: vor) löschen
Wenn wir versuchen, die Datensätze des Kampagnenobjekts zu löschen, wenn der Status „abgeschlossen“ oder der Typ „Konferenz“ ist, werfen wir einen Fehler, sodass wir die Datensätze nicht löschen können. Wir zeigen den Fehler mithilfe der AdderRor () -Methode [Objekt - Kampagne] an.
Trigger Delete_trigger auf Kampagne (vor dem Löschen)Testfall:
Gehen Sie aus dem App -Launcher zur Registerkarte "Kampagnen" und öffnen Sie alle vorhandenen Datensatz.
Klicken Sie auf der Dropdown rechts auf "Löschen".
Wir können sehen, dass ein Fehler geworfen wird und nicht gelöscht wird.
Abschluss
Trigger ist ein Apex -Skript, das vor oder nach den Datenmanipulationsinstanzen ausfeuert. Basierend auf dem Ereignis, das im Auslöser angegeben ist, füllt es auf bestimmte Objekte in Salesforce. Wir haben die vier verschiedenen Szenarien gelernt, um den Auslöser beim Einfügen, zu aktualisieren und mit verschiedenen Beispielen für verschiedene Objekte zu löschen. Hier haben wir die Objekte von Konto-, Kontakt- und Kampagnen zur Demonstration verwendet. Sie können dieselben Beispiele auf Ihren benutzerdefinierten Objekten befolgen.