Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Verwenden einfacher Logik in Kontrollkästchenformeln

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Beschreiben des Typs der Rückgabe von Kontrollkästchenformeln
  • Sicheres Verwenden der Funktionen IF(), AND(), NOT() und OR()
  • Beschreiben von Anwendungsfällen für Formeln des Typs "Kontrollkästchen"
  • Erstellen einer Formel mithilfe des Typs "Kontrollkästchen"

Einführung in Formelfelder

Formeln sind leistungsstarke Instrumente, mit denen Sie Berechnungen und andere Operationen auf die Daten Ihres Unternehmens anwenden können. Mithilfe von Formeln können Sie Hyperlinks einbetten, mit vorhandenen Feldern eine Berechnung durchführen oder mittels bedingter Logik einen Betrag anzeigen. Wenn Sie noch nie mit Formeln gearbeitet haben, steigen Sie mit Verwenden von Formelfeldern ein, ehe Sie mit dieser Lektion fortfahren.

Einführung in den Typ "Kontrollkästchen" in Formeln

Wenn es um Kontrollkästchen geht, gibt es nur zwei Optionen: aktiviert oder nicht aktiviert. Was bedeutet dies für Ihre Formel? Nun, eine Kontrollkästchenformel ist nichts weiter als eine logische Aussage, die entweder wahr oder falsch ist. Wenn Sie sofort wissen wollen, ob ein Account beispielsweise mindestens 500 Mitarbeiter hat, können Sie eine einfache Kontrollkästchenformel verwenden.

NumberOfEmployees >= 500

Wenn ein Account mindestens 500 Mitarbeiter hat, wird das Kontrollkästchen Großer Account auf der Seite dieses Accounts aktiviert. Andernfalls wird Großer Account nicht aktiviert.

Meistens sind die logischen Anweisungen in Ihrer Formel weitaus komplizierter. Um den Datentyp "Kontrollkästchenformel" voll nutzen zu können, benötigen Sie einige einfache logische Hilfsmittel.

Einfache logische Operatoren

Logische Funktionen sind starrere Adaptierungen von Wörtern, die Sie bereits in fast jedem Gespräch verwenden: AND (und), OR (oder) NOT (nicht) und IF (wenn). Sie wissen beispielsweise, dass eine Apfel eine rote Frucht ist, während eine Banane eine gelbe Frucht ist. Wenn Sie im Lebensmittelgeschäft nach etwas Rotem und einer Frucht suchen, werden Sie zu einem Apfel greifen. Wenn Sie nach etwas Rotem oder einer Frucht suchen, bietet sich ein Apfel oder eine Banane an.

Dieselbe Art von Logik können Sie in Formeln mit diesen Funktionen verwenden: NOT(), AND(), OR() und IF().

AND()

Die integrierte Funktion AND() benötigt mindestens zwei Argumente. Sie gibt TRUE zurück, nur wenn beide Argumente wahr sind. Es ist einfach, diese Logik zu visualisieren, wenn wir sie in einer Tabelle betrachten.

Erstes Argument = TRUE Erstes Argument = FALSE
Zweites Argument = TRUE Wahr Falsch
Zweites Argument = FALSE Falsch Falsch

Angenommen, Sie möchten, dass, wenn Ihre Benutzer einen Kontakt anzeigen, sie sofort wissen, ob es in Ordnung ist, ihn per E-Mail oder Telefon zu kontaktieren. Wenn bei dem betreffenden Kontakt die Optionen Keine Anrufe und Keine E-Mails aktiviert sind, sollten Sie ein anderes Kontrollkästchen aktivieren: Nicht kontaktieren. Da wir möchten, dass dieses Kontrollkästchen nur aktiviert wird, wenn der ausgewählte Kontakt Keine Anrufe und Keine E-Mails ausgewählt hat, verwenden wir die Funktion AND().

Sie können eine Kontrollkästchenformel so erstellen, wie Sie es von anderen Formelfeldern in Salesforce kennen.

  1. Geben Sie unter "Setup" im Feld "Schnellsuche" den Text "Kontakte" ein und wählen Sie dann Kontakte | Felder aus.
  2. Blättern Sie zum Abschnitt "Benutzerdefinierte Kontaktfelder & Beziehungen" und klicken Sie auf Neu.
  3. Wählen Sie Formel aus und klicken Sie auf Weiter.
  4. Geben Sie in Feldbezeichnung den Text "Nicht kontaktieren" ein. "Feldname" wird automatisch ausgefüllt.
  5. Wählen Sie Kontrollkästchen aus und klicken Sie auf Weiter.
  6. Kopieren Sie den folgenden Codeausschnitt und fügen Sie sie in den Formel-Editor ein.
    AND(DoNotCall, HasOptedOutOfEmail)
    Wenn Sie fertig sind, sieht das Ganze im Formel-Editor so aus: Die Kontrollkästchenformel 'Nicht kontaktieren'

Kurzer Hinweis: Unsere Formelbeispiele in diesem Modul reichen von relativ einfachen bis zu sehr komplexen Formeln. Um es Ihnen leichter zu machen, präsentieren wir Ihnen alle Formelbeispiele als Codeausschnitte und nicht als Screenshots, wie sie im Formeleditor aussehen. Auf diese Weise können Sie den Codeausschnitt kopieren und direkt in den Formel-Editor einfügen. Um den Codeausschnitt zu kopieren, bewegen Sie den Mauszeiger einfach über dem Codeausschnitt, bis rechts oben drei Symbole eingeblendet werden. Klicken Sie dann auf das Symbol, "In die Zwischenablage kopieren", um den Codeausschnitt zu kopieren.

Vergewissern Sie sich wie immer, dass Sie zum Eingeben der Formel den Editor für erweiterte Formeln verwenden. Auf diesen Editor können Sie zugreifen, indem Sie im Formel-Editor die Registerkarte Erweiterte Formel auswählen. Der Editor für erweiterte Formeln bietet Ihnen einfachen Zugriff auf eine Vielzahl von Funktionen und Operatoren, die Sie in diesem Modul benötigen.
Hinweis

Hinweis

Beachten Sie, dass Sie ein Formelfeld als benutzerdefiniertes Feld anlegen können. Sie können es aber auch als Validierungsregel anlegen. Mit einer Validierungsregel können Sie verhindern, dass Benutzer Datensätze mit gemäß Ihrer Formel ungültigen Daten speichern. Validierungsregeln können ein wirksames Mittel zur Gewährleistung der Datenqualität sein, aber mit großer Wirksamkeit geht große Verantwortung einher. Das Letzte, was Sie wollen, sind unzufriedene Benutzer, die keine Datensätze speichern können. Setzen Sie daher dieses Instrument überlegt ein. Hier erfahren Sie mehr über Validierungsregeln.

Wenn bei Verwendung dieser Formel jemand Keine Anrufe und Keine E-Mails ausgewählt hat, zeigt die Kontaktkarte ein weiteres aktiviertes Kontrollkästchen: Nicht kontaktieren. Wenn die Person nur eine der beiden Optionen ausgewählt hat, ist das Kontrollkästchen Nicht kontaktieren nicht aktiviert.

Hinweis

Hinweis

Es gibt mehrere Möglichkeiten, die AND()-Funktion zu schreiben. Sie können sie als Funktion mit AND() oder als Operator schreiben, indem Sie zwei Anweisungen mit && verknüpfen. In diesem Fall sind AND(DoNotCall, HasOptedOutOfEmail) und DoNotCall && HasOptedOutOfEmail äquivalent. Achten Sie darauf, dass Sie && zum Ersetzen von AND() nicht mit & verwechseln, das zwei Textzeichenfolgen verkettet.

Wenn Sie mehr als nur zwei Bedingungen überprüfen möchten, machen Sie sich keine Sorgen, denn der Operator AND() ist nicht auf zwei beschränkt. Einen Kontakt anzuzeigen, bei dem das Kontrollkästchen Nicht kontaktieren unter der Bedingung aktiviert ist, dass die Person Keine Anrufe, Keine E-Mails und Kein Fax ausgewählt hat, ist für den Operator AND() kein Problem.
AND(DoNotCall, HasOptedOutOfEmail, HasOptedOutOfFax)

Bei Verwendung dieser Formel wird das Kontrollkästchen Nicht kontaktieren nur dann aktiviert, wenn alle drei Kontrollkästchen – Keine Anrufe, Keine E-Mails und Kein Fax – aktiviert sind. Wenn eine (oder zwei oder alle drei) Optionen nicht aktiviert sind, wird Nicht kontaktieren auf der Seite des Kontakts nicht aktiviert.

OR()

Die OR()-Funktion ist der AND()-Funktion ähnlich. Auch sie benötigt mindestens zwei Argumente. Aber im Gegensatz zu AND() gibt OR() TRUE zurück, wenn mindestens eine der Bedingungen wahr ist, und nur dann FALSE zurück, wenn alle Argumente falsch sind.


Erstes Argument = TRUE Erstes Argument = FALSE
Zweites Argument = TRUE Wahr Wahr
Zweites Argument = FALSE Wahr Falsch

Sehen wir uns ein weiteres Beispiel mit dem Kontaktobjekt an. Angenommen, Sie möchten ein Kontrollkästchen anzeigen, das aktiviert ist, wenn ein Kontakt zur Führungsebene eines Unternehmens gehört. Wir wissen, dass jemand in den USA zur Führungsebene gehört, wenn sein Titel mit "Chief" beginnt (wie Chief Executive Officer, Chief Operating Officer usw.) oder das Wort "President" enthält (wie President, Vice President usw.). Beachten Sie, wie wir das Wort oder bereits verwenden, um das Problem zu beschreiben. Dies ist ein guter Hinweis darauf, dass Sie den Operator OR() in dieser Formel benötigen.

Damit diese Formel funktioniert, werden wir einige Textfunktionen verwenden, über die Sie unter "Verwenden von Textformeln" mehr erfahren können:

  • BEGINS(text, compare_text) sagt Ihnen, ob eine Zeichenfolge (text) mit einer anderen Zeichenfolge (compare_text) beginnt.
  • CONTAINS(text, compare_text) sagt Ihnen, ob eine Zeichenfolge (text) an beliebiger Stelle eine andere Zeichenfolge (compare_text) enthält.
Erstellen Sie ein Formelfeld mit dem Typ "Kontrollkästchen" und dem Namen Is Executive (Führungskraft). Geben Sie die folgende Formel ein.
OR(Begins(Title, "Chief"), CONTAINS(Title, "President"))

Ähnlich wie bei der AND()-Funktion können Sie OR() auf mehrere Arten schreiben. Sie können BEGINS(Title , "Chief") || CONTAINS(Title , "President") schreiben.

OR() kann wie AND() mit mehreren Argumenten arbeiten. Um auch zu prüfen, ob der Title (Titel) eines Kontakts das Wort "Executive" enthält, probieren Sie:
BEGINS(Title, "Chief") ||
CONTAINS(Title, "President") ||
CONTAINS(Title, "Executive")

NOT()

Die NOT()-Funktion tut genau das, was Sie von ihr erwarten: Sie ändert alles, was wahr ist, in falsch, und alles, was falsch ist, in wahr. Angenommen, Sie möchten ein Kontrollkästchen auf der Seite eines Kontakts einblenden, das anzeigt, ob der Kontaktkarte wesentliche Informationen fehlen. Für dieses Beispiel erachten wir einen Kontakt als vollständig, wenn er einen Vornamen, Nachnamen, eine Telefonnummer, eine E-Mail-Adresse und eine Postanschrift aufweist. Die Formel wird nur dann als TRUE ausgewertet, wenn keines dieser Felder leer ist.

Um zu prüfen, ob der Kontakt die Informationen hat, die wir suchen, verwenden Sie die Funktion ISBLANK(). ISBLANK() verwendet ein Feld als Argument und gibt TRUE zurück, wenn es leer ist, und FALSE, wenn es ausgefüllt ist.
NOT(
  ISBLANK(FirstName) ||
  ISBLANK(LastName) ||
  ISBLANK(Phone) ||
  ISBLANK(Email) ||
  ISBLANK(MailingAddress)
)
Hinweis

Hinweis

Da Leerzeichen und Zeilenumbrüche zwischen Funktionen und Operatoren in Formeln keine Rolle spielen, sind die hier gezeigten Zeilenumbrüche und Leerzeichen nicht erforderlich. Allerdings lässt sich die Formel durch Zeilenumbrüche und Leerzeichen besser lesen. Das hilft auch allen anderen, die die Formel später verstehen oder aktualisieren müssen.

Das war's auch schon! Sie können diese Formel ausprobieren, indem Sie sich einen Kontakt in Ihrem Unternehmen ansehen. Wenn alle relevanten Kontaktinformationen vollständig sind, wird der Kontakt als vollständig markiert und das von Ihnen erstellte Kontrollkästchen Kontakt vollständig aktiviert. Wenn eines oder mehrere der von uns geprüften Felder leer sind, ist das Kontrollkästchen nicht aktiviert.

Beachten Sie, dass NOT() auch als einfaches Ausrufezeichen geschrieben werden kann. Bei dieser Notation würde unsere Formel etwas anders aussehen, aber den gleichen Effekt haben.
!(ISBLANK(FirstName) ||
ISBLANK(LastName) ||
ISBLANK(Phone) ||
ISBLANK(Email) ||
ISBLANK(MailingAddress))

IF()

Anstatt logische Operatoren wie AND() und OR() zu verketten, können Sie IF()-Anweisungen verwenden. IF() verwendet drei Argumente im Format IF(test, result, alternate). Laienhaft ausgedrückt: Wenn "test" TRUE ist, "result" auswerten. Andernfalls "alternate" auswerten.

Sie sind zurück im Lebensmittelgeschäft und suchen wieder einmal nach einer roten Frucht. Sie wissen, wie Sie dieses Szenario mit AND() und OR() schreiben können, aber Sie können das Ganze auch mit IF()-Anweisungen angehen. Zuerst wählen Sie ein Produkt aus und prüfen, ob es sich um eine Frucht handelt. Falls ja, prüfen Sie, ob sie rot ist. Wenn Sie eine Formel zur Produktauswahl mit IF()-Anweisungen schreiben, sieht Ihr Entscheidungsprozess so aus:

IF(Mystery_Produce = "Fruit", Mystery_Produce_Color = "Red", false)
Sie können dieselbe auf IF basierende Logik in Ihren Formeln anwenden. Angenommen, Sie möchten wissen, ob es sich bei einem Kontakt um einen Hauptansprechpartner handelt. Wir definieren einen Hauptansprechpartner als eine Person, die (gemäß dem von uns zuvor erstellten Formelfeld Is Executive) eine Führungskraft ist und zur Marketingabteilung gehört. Sie wissen bereits, wie Sie dies mit der AND- und OR-Funktion umsetzen.
Is_Executive__c && Department = "Marketing"
Bei Verwenden der IF()-Anweisung sieht die Formel wie folgt aus:
IF(Is_Executive__c, Department = "Marketing", false)

Sie können IF()-Anweisungen schachteln. Jedes Argument innerhalb einer IF()-Anweisung kann eine andere logische Anweisung sein, einschließlich einer anderen IF()-Anweisung. Für dieses Beispiel definieren wir einen Hauptansprechpartner als Person, die eine Führungskraft ist und darüber hinaus entweder in der Marketingabteilung in San Francisco oder in der Vertriebsabteilung in New York tätig ist. Wir erstellen ein Kontrollkästchen, das nur dann aktiviert wird, wenn diese Bedingungen erfüllt sind.

Wir ermitteln, in welcher Stadt der Kontakt ansässig ist, indem wir uns die Vorwahl der Telefonnummer ansehen, wobei 415 San Francisco und 212 New York entspricht. Bei Verwenden der AND- und OR-Funktion sieht die Formel wie folgt aus:
Department = "Marketing" &&
Is_Executive__c &&
BEGINS(Phone, "(415)") ||
Department = "Sales" &&
Is_Executive__c &&
BEGINS(Phone, "(212)")
Hinweis

Hinweis

Bei logischen Operatoren gibt es, genau wie bei mathematischen Operatoren, eine Ablaufreihenfolge. AND() wird stets vor OR() ausgewertet. Sie können logische Operatoren auch in Klammern gruppieren, um sie in einer bestimmten Reihenfolge auszuwerten.

Wir wünschen uns eine Formel, die wahr ist, wenn ein Kontakt alle Anforderungen an einen Hauptansprechpartner erfüllt. Zuerst möchten wir überprüfen, ob es sich bei dem Kontakt um eine Führungskraft handelt. Dazu verwenden wir das von uns zuvor erstellte Kontrollkästchen Is Executive. Wenn der Kontakt eine Führungskraft ist, überprüfen wir anschließend, ob seine Abteilung "Sales" (Vertrieb) ist. Wenn auch das wahr ist, prüfen wir als Letztes die Vorwahl der Telefonnummer. Wenn der Kontakt zwar eine Führungskraft ist, seine Abteilung aber nicht "Sales" (Vertrieb) ist, prüfen wir, ob er zu "Marketing" gehört. Wenn das der Fall ist, prüfen wir, ob die Telefonnummer die Vorwahl von San Francisco hat. Es ist oft einfacher, eine Reihe von IF()-Anweisungen mithilfe eines Entscheidungsbaums zu visualisieren. Das Zeichnen eines solchen Baums bietet sich als erster Schritt an, wenn Sie eine Formel mit IF() schreiben.


Jeder Zweig des Baums entspricht einer Bedingung in einer IF()-Anweisung unserer Formel.
IF(Is_Executive__c,
  IF(Department = "Sales", BEGINS(Phone, "(212)"), False),
  IF(Department = "Marketing", BEGINS(Phone, "(415)"), False))

In Formeln wie dieser ist es besonders wichtig, klare Zeilenumbrüche und Leerzeichen einzufügen. Wer dann später Ihre Formel liest, weiß, wie Ihre IF()-Anweisungen geschachtelt sind.

Beispiele für Kontrollkästchenformeln

  1. Diese Kontrollkästchenformel definiert eine Opportunity als klein, wenn die Wahrscheinlichkeit weniger als 50 % (0,5) beträgt und der erwartete Umsatz unter 10.000 liegt.
    AND(Probability < 0.5, ExpectedRevenue < 10000)
  2. Diese Formel markiert einen Kundenvorgang mit höchster Priorität, wenn die Priorität als "Hoch" eingestuft ist, der Kundenvorgang nicht abgeschlossen ist und er entweder eskaliert oder seit mehr als einer Woche nicht aktualisiert wurde. Diese Formel verhält sich unterschiedlich, je nachdem, wo sich die Klammern befinden.
    ISPICKVAL(Priority, "High") &&
    NOT(IsClosed) &&
    (IsEscalated || Days_Since_Last_Update__c > 7)
    In dieser Formel wird beispielsweise in leicht unterschiedlich gesetzten Klammern geprüft, ob ein Kundenvorgang eine hohe Priorität hat, geschlossen und eskaliert wurde oder ob seit der letzten Aktualisierung des Kundenvorgangs mehr als sieben Tage vergangen sind.
    (ISPICKVAL(Priority, "High") &&
    NOT(IsClosed) && IsEscalated)||
    Days_Since_Last_Update__c > 7
  3. Diese Formel zeigt ein Kontrollkästchen, "Anrufen erlaubt", das aktiviert ist, wenn es in Ordnung ist, einen Kontakt anzurufen. Die Formel prüft, ob der Kontakt die Option "Keine Anrufe" ausgewählt hat. Wenn der Kontakt dies nicht getan hat, stellt die Formel sicher, dass das Feld "Telefonnummer" nicht leer ist.
    IF(NOT(DoNotcall), NOT(ISBLANK(Phone)), false)