Verwenden von Schnellaktionen, benutzerdefinierten Schaltflächen oder Apex
Lernziele
- 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
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
Ü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.
- Klicken Sie in Setup im Objekt-Manager auf Aufgabe und anschließend auf Schaltflächen, Links und Aktionen.
- Klicken Sie auf Neue Aktion.
- Wählen Sie für "Aktionstyp" die Option Datensatz aktualisieren aus.
- Geben Sie für "Bezeichnung" die Angabe "Aufgabe abschließen" ein.
- 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.
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.
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".
Durch Klicken auf Aufgabe abschließen wird die Aktion angezeigt, die der Benutzer rasch verarbeiten und speichern kann.
So sieht das Ganze in der mobilen Salesforce-Anwendung aus.
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.
- Klicken Sie in Setup im Objekt-Manager auf Account und anschließend auf Schaltflächen, Links und Aktionen.
- Klicken Sie auf Neue Aktion.
- Stellen Sie "Aktionstyp" auf Datensatz erstellen ein.
- Wählen Sie für "Zielobjekt" Opportunity aus.
- Wählen Sie den entsprechenden Datensatztyp.
- Geben Sie für "Bezeichnung" die Angabe "Neue Oppty" ein.
- Klicken Sie auf Speichern.
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.
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.
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
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 URLwww.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
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
- 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>
- Erstellen Sie eine benutzerdefinierte Schaltfläche, die auf Ihre Visualforce-Seite verweist.
- Fügen Sie die Aktion Ihrer Listenansicht hinzu.
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.
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.