Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Verwenden von Schnellaktionen, benutzerdefinierten Schaltflächen oder Apex

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Erstellen von Schnellaktionen (anstelle von JavaScript) zum Überprüfen von Feldern, Erstellen von Datensätzen mit vorab aufgefüllten Werten und Umleiten des Benutzers zu einer Visualforce-Seite
  • Beschreiben, wie Sie mithilfe benutzerdefinierter URL-Schaltflächen dieselben Navigations- und Umleitungsfunktionen wie mit JavaScript-Schaltflächen erhalten
  • Verwenden einer benutzerdefinierten Visualforce-Schaltfläche anstelle einer JavaScript-Schaltfläche, um mit mehreren Datensätzen in Listen arbeiten

Sie haben Schaltflächen? Wir haben Alternativen

Zuvor haben wir erläutert, warum es Zeit ist, zu Lightning Experience zu migrieren, denn dank der überzeugenden neuen Features dieser Umgebung können Sie JavaScript-Schaltflächen hinter sich lassen. Als Nächstes erklären wir, wie Sie Ihre benutzerdefinierte JavaScript-Schaltflächenfunktionalität mithilfe von Lösungen einfach migrieren können, die sowohl in Salesforce Classic als auch Lightning Experience funktionieren.

Diese Tabelle zeigt eine Zuordnung von Anwendungsfällen für JavaScript-Schaltflächen zu alternativen (und in den meisten Fällen) besseren Lösungen in Lightning.

Wichtigste Anwendungsfälle für JavaScript-Schaltflächen Lightning-Alternativen Deklarativ/Programmgesteuert
Überprüfen von Feldern (vor dem Speichern) Schnellaktionen (unter Verwendung von Standardwerten und/oder Formeln) D
Apex-Auslöser P
Erstellen von Datensätzen mit vorab aufgefüllten Werten Schnellaktionen (unter Verwendung von Standardwerten und/oder Formeln) D
Umleiten zu einer Datensatzseite Benutzerdefinierte URL-Schaltflächen D
Umleiten zu einer Visualforce-Seite Visualforce-Schnellaktionen P
Lightning-Aktionen P
Vorabausfüllen von Werten basierend auf Eingaben Lightning-Aktionen P
Anzeigen von Bestätigungsfenstern Lightning-Aktionen P
API-Aufrufe (Salesforce und andere Anbieter) Lightning-Aktionen P
Feedbackfenster Lightning-Aktionen P
Integration mit anderen Anbietern Lightning-Aktionen P
Massenaktionen für Datensätze in der Listenansicht Benutzerdefinierte Visualforce-Schaltflächen für Listenansichten P

Wie Sie sehen, bietet Salesforce mehrere deklarative Tools zum Konvertieren der Funktionalität Ihrer benutzerdefinierten JavaScript-Schaltflächen.

Schnellaktionen

Schnellaktionen unterstützen viele der gängigen Anwendungsfälle von JavaScript-Schaltflächen. Schnellaktionen können auf einem bestimmten Objekt basieren oder global sein, was bedeutet, dass sie allgemeiner sind und auf sie aus beliebigen Datensätzen oder dem Chatter-Feed zugegriffen werden kann. In Salesforce gibt es für praktisch alles eine Schnellaktion. Hier sind einige Beispiele.

Überprüfen von Feldwerten

Mitunter möchten Sie sicherstellen, dass bestimmte Felder ausgefüllt oder mit bestimmten Kriterien aufgefüllt sind, wenn Benutzer Datensätze erstellen oder aktualisieren.

Angenommen, Sie möchte eine Aktion zum Abschließen einer Aufgabe erstellen, ohne dass der Benutzer zur vollständigen Bearbeitungsseite navigieren muss. Sie möchten aber auch, dass die Aufgabe ein Fälligkeitsdatum hat, ehe sie abgeschlossen werden kann.

Alle diese Anforderungen können Sie erfüllen, indem Sie eine Schnellaktion für das Objekt "Aufgabe" erstellen.
  1. Klicken Sie in Setup im Objekt-Manager auf Aufgabe und anschließend auf Schaltflächen, Links und Aktionen.
  2. Klicken Sie auf Neue Aktion.
  3. Wählen Sie für "Aktionstyp" Datensatz aktualisieren aus.
  4. Geben Sie für "Bezeichnung" Aufgabe abschließen ein.
  5. Klicken Sie auf Speichern.

Nun wählen wird die Felder aus, die für die Schnellaktion "Aufgabe abschließen" angezeigt werden sollen. Über seine Feldeigenschaften können Sie ein Feld ganz einfach als Pflichtfeld oder schreibgeschütztes Feld definieren.

Eigenschaften des Felds 'Aktion'

Nachdem Sie die Felder im Aktionslayout festgelegt haben, können Sie vordefinierte Feldwerte für alle Felder im Aufgabendatensatz hinzufügen. In diesem Beispiel haben wir das Feld "Due Date" (Fälligkeitsdatum) als Pflichtfeld markiert. Wir haben auch einen vordefinierten Wert für das Feld "Status" hinzugefügt, das in "Completed" (Abgeschlossen) geändert werden soll.

Festlegen vordefinierter Feldwerte für 'Status'

Nachdem wir die Aktion konfiguriert haben, fügen wir sie dem Seitenlayout "Aufgabe" hinzu. Benutzer können dann sowohl in Lightning Experience als auch der mobilen Salesforce-Anwendung auf einer Datensatzseite des Typs "Aufgabe" darauf zugreifen. Es folgt ein Beispiel der Aktion "Aufgabe abschließen" auf der Seite "Aufgaben".

Aktion 'Aufgabe abschließen' auf der Seite 'Aufgaben'

Durch Klicken auf Aufgabe abschließen wird die Aktion angezeigt, die der Benutzer rasch verarbeiten und speichern kann.

Aufgabe abschließen, Aktions-Overlay

So sieht das Ganze in der mobilen Salesforce-Anwendung aus.

Aktion 'Aufgabe abschließen' in der Salesforce-Anwendung

Vorabauffüllen von Feldern mit Werten

Ein komplexerer Anwendungsfall liegt vor, wenn Sie Benutzer einen Datensatz erstellen lassen möchten, aber zugleich wollen, dass eines oder mehrere der Felder basierend auf Werten in einem abhängigen Feld automatisch aufgefüllt werden.

Angenommen, die typische Quartalsquote Ihres internen Vertriebsteams beträgt ein Viertel des Umsatzes seiner Kunden im letzten Jahr plus 10 %. Da diese einfache Formel nicht immer gilt, möchten Sie den Opportunity-Betrag vorab mit dem Wert auffüllen, aber dem Benutzer dessen Änderung ermöglichen. Erstellen Sie eine Aktion, damit Ihre Benutzer das Feld rasch und effizient ändern können, ohne zur vollständigen Opportunity-Datensatzseite zu navigieren.

Zum Erstellen dieser Beispielaktion führen Sie dieselben Schritte wie zuvor beim Erstellen der Opportunity-Schnellaktion aus.
  1. Klicken Sie in Setup im Objekt-Manager auf Account und anschließend auf Schaltflächen, Links und Aktionen.
  2. Klicken Sie auf Neue Aktion.
  3. Stellen Sie "Aktionstyp" auf Datensatz erstellen ein.
  4. Wählen Sie für "Zielobjekt" Opportunity aus.
  5. Wählen Sie den entsprechenden Datensatztyp.
  6. Geben Sie für "Bezeichnung" Neue Oppty ein.
  7. Klicken Sie auf Speichern.
Nachdem Sie die Felder für das Aktionslayout ausgewählt haben, können Sie vordefinierte Feldwerte für das Feld "Betrag" hinzufügen. In unserem Beispiel haben wir diese Formel verwendet:
Account.Last_Year_Revenue_Generated__c  * 1.10  / 4

Fügen Sie diese Aktion zum Seitenlayout "Account" hinzu. Wenn Benutzer sie aufrufen, wird das Feld mit einem vorab aufgefüllten Wert angezeigt, den sie akzeptieren oder überschreiben können.

Neue Opportunity, Aktions-Overlay

Das Tolle an dieser Aktion ist, dass Sie beim Erstellen der Opportunity Daten aus dem Account der Opportunity abrufen können. Salesforce unterstützt auch das sog. Record Traversal. Wenn Sie also über hierarchische Accounts verfügen, können Sie die Umsätze aus dem übergeordneten Account wie folgt abrufen:
Account.Parent.Last_Year_Revenue_Generated__c

Machen Sie sich keine Gedanken über das Erinnern der Formelformate. Schnellaktionen sind deklarativ und arbeiten mit dem Salesforce-Formelgenerator.

Umleiten zu einer Visualforce-Seite basierend auf Eingabewerten

Sie können Visualforce-Seiten zum Verbessern Ihrer Geschäftsprozesse erstellen. Benutzer können auf verschiedene Weisen zu diesen Visualforce-Seiten navigieren, z. B. über benutzerdefinierte Schaltflächen, Aktionsüberschreibungen oder Registerkarten.

Ein Vorteil von Visualforce-Seiten ist, dass Sie durch Verwenden des Standardcontrollers angepasste Datensatzseiten erstellen und eine Vorabprüfung, vorab ausgefüllte Felder, Formeln u.v.m. hinzufügen können.

JavaScript-Schaltflächen dienen in Salesforce Classic zum Lesen und Übergeben von Werten aus einem Datensatz in einen URL, der Benutzer anschließend zu einer Visualforce-Seite umleitet. Sie können Ihren Benutzern auch über Schnellaktionen einen Zugriff auf Visualforce-Seiten gewähren. Das Erstellen von Visualforce-Schnellaktionen ist einfach und erfolgt ähnlich wie bereits behandelte Prozesse. Der einzige Unterschied ist, dass Sie "Benutzerdefinierte Visualforce-Seite" als Aktionstyp auswählen.

Erstellen einer Visualforce-Aktion

Für objektspezifische Visualforce-Schnellaktionen müssen Sie den standardController des Objekts Ihrer Visualforce-Seite hinzufügen, um Zugriff auf die Datensatzdaten zu erhalten und die Visualforce-Seite in der Auswahlliste der Schnellaktionen anzuzeigen.

Benutzerdefinierte URL-Schaltflächen und Links

Sie nutzen JavaScript-Schaltflächen ggf. für die Navigation, zum Umleiten von Benutzern zu einer anderen Seite mit dem Befehl window.open(URL) und für einige Variablen. In den meisten Fällen können Sie stattdessen benutzerdefinierte URL-Schaltflächen oder Links in Lightning Experience verwenden.

Hier sehen Sie eine Liste diverser URL-Schaltflächen und Links und ihr Umleitungsverhalten in Lightning Experience.

Benutzerdefinierte URL-Schaltflächen oder Links Lightning Experience-Verhalten
Externer URL
www.google.com
URL wird auf neuer Registerkarte geöffnet
Relativer Salesforce-URL, Ansicht
/{!Account.Id}
Startseite des Datensatzes wird auf vorhandener Registerkarte geöffnet
Relativer Salesforce-URL, Bearbeiten
/{!Account.Id}/e
Bearbeitungs-Overlay wird auf der vorhandenen Seite eingeblendet
Relativer Salesforce-URL, Liste
/001/o
Startseite des Objekts wird auf vorhandener Registerkarte geöffnet
$Action-URL, Ansicht
{!URLFOR($Action.Account.View, Account.Id)}
Startseite des Datensatzes wird auf vorhandener Registerkarte geöffnet
$Action-URL, Bearbeiten
{!URLFOR($Action.Account.Edit, Account.Id)}
Bearbeitungs-Overlay wird auf der vorhandenen Seite eingeblendet

Apex-Auslöser

Sie sind ggf. schon mit Apex-Auslösern vertraut, die seit Jahren auf unserer Plattform unterstützt werden. Apex-Auslöser können für eine Ausführung vor oder nach dem Klicken auf "Speichern" für einen Datensatz durch den Benutzer konfiguriert werden.

Wenn Sie die Überprüfung, Berechnung und Auffüllung von Feldern vorab speichern müssen, erwägen Sie Apex-Auslöser. Sie eignen sich besonders für die Integration von Lösungen anderer Anbieter, da die Regeln über die Salesforce-API in Salesforce Classic, Lightning Experience und der mobilen Salesforce-Anwendung erzwungen werden.

Weitere Informationen zu Apex-Auslösern finden Sie im Apex Developer Guide oder verdienen Sie sich den Badge "Apex-Auslöser".

Benutzerdefinierte Visualforce-Schaltflächen

Eine weitere tolle Funktion in Lightning Experience ist die Unterstützung von Visualforce-Schaltflächen in Listenansichten. Mithilfe dieser Funktion können Sie vorhandene Visualforce-Aktionen in Lightning nutzen und mit mehreren Datensätzen in Listen arbeiten. Dies geschieht folgendermaßen:
  1. Erstellen Sie Ihre Visualforce-Seite.
    Hier sehen Sie Beispielcode zum Bearbeiten der Phase und des Schlusstermins mehrerer Opportunities:
    <apex:page standardController="Opportunity" recordSetVar="opportunities" extensions="tenPageSizeExt">
       <apex:form>
          <apex:pageBlock title="Edit Stage and Close Date" mode="edit">
             <apex:pageMessages />
             <apex:pageBlockButtons location="top">
                <apex:commandButton value="Save" action="{!save}"/>
                <apex:commandButton value="Cancel" action="{!cancel}"/>
             </apex:pageBlockButtons>
             <apex:pageBlockTable value="{!selected}" var="opp">
                <apex:column value="{!opp.name}"/>
                <apex:column headerValue="Stage">
                   <apex:inputField value="{!opp.stageName}"/>
                </apex:column>
                <apex:column headerValue="Close Date">
                   <apex:inputField value="{!opp.closeDate}"/>
                </apex:column>
             </apex:pageBlockTable>
          </apex:pageBlock>
       </apex:form>
    </apex:page>
  2. Erstellen Sie eine benutzerdefinierte Schaltfläche, die auf Ihre Visualforce-Seite verweist.
  3. Fügen Sie die Aktion Ihrer Listenansicht hinzu.
    Hinweis

    Hinweis

    Für die Liste mit den zuletzt angezeigten Datensätzen werden keine Massenaktionen unterstützt. Sie sind nur für Listenansichten verfügbar.

Beispiel

Hier sehen Sie, wie diese Aktion in Lightning Experience angezeigt wird.

Benutzerdefinierte Visualforce-Schaltfläche in Lightning Experience

Wie Sie anhand unserer Beispiele erkennen können, bietet Salesforce viele Möglichkeiten zum Migrieren und Verlagern Ihrer JavaScript-Schaltflächenfunktionalität zu Lightning Experience.

Möglicherweise haben sich in Ihrer Organisation mit den Jahren viele JavaScript-Schaltflächen angesammelt. Sie erwarten jetzt vielleicht, dass der Migrations- oder Konvertierungsprozess lange dauern wird. Doch die Aufgabe ist womöglich nicht so schwierig, wie Sie meinen. Wir haben JavaScript-Schaltfläche in der internen Salesforce-Organisation analysiert, die alle unsere Mitarbeiter nutzen. Wir fanden heraus, dass viele Schaltflächen veraltet waren oder nur selten von den Benutzern aufgerufen wurden. Andere waren schlicht Duplikate, d. h. dieselbe Schaltfläche, aber für verschiedene Objekte. Nach Durchsicht der Liste fanden wir heraus, dass viele der JavaScript-Schaltflächen in Lösungen umgewandelt werden konnten, die wir bislang behandelt haben. Einige konnten wir mithilfe der neuen Lightning-Aktionen umwandeln.

In der Liste der programmgesteuerten Lösungen haben Sie vielleicht bemerkt, dass Lightning-Aktionen als gängiger Ersatz für viele der Anwendungsfälle von JavaScript-Schaltflächen fungieren. Lightning-Aktionen lassen sich einfach entwickeln, da sie auf dem Schnellaktions-Framework basieren. Sie richten sie ähnlich wie Visualforce-Schnellaktionen ein. Im nächsten Schritt beschäftigen wir uns eingehender mit Lightning-Aktionen.