Lasst uns ehrlich sein, wer hat diese Anforderungen nicht schon zig Mal gehört?
- „Das muss doch auch automatisch möglich sein?“
- „Wenn ich hier klicke und speichere, soll sich dort etwas tun.“
- „Da sitz ich doch noch bis morgen früh dran, wenn ich das manuell pflegen soll.“
- „Nach einer Woche will ich automatisch benachrichtigt werden, wenn sich der Status nicht geändert hat.“
Die Automatisierung von Geschäftsprozessen in Unternehmensstrukturen ist aus unserem Alltag praktisch nicht mehr wegzudenken, man könnte schon fast behaupten – ein selbstverständliches Gut. Prozessautomatisierungen und Workflows gehören zu den beliebtesten „quick wins“, um Systembenutzern mühselige und stupide Arbeit abzunehmen. Salesforce bietet an dieser Stelle zahlreiche Möglichkeiten um dies zu erreichen, eines davon ist der Prozessgenerator (engl. Process Builder), ein integriertes Werkzeug mit einer Vielzahl an Möglichkeiten von automatischen Aktionen:
- Aktualisierung von Objektfeldern (auch objektübergreifend)
- Erstellen von Datensätzen
- Versenden von eMail Benachrichtigungen
- Zeitabhängige Aktionen (bspw. Benachrichtigung nach 7 Tagen)
- Aufgaben und- Eventerstellung für Benutzer
- und und und ....
Doch was ist zu tun, wenn das mächtige Werkzeug, das einst dafür verwendet wurde um Benutzern unter die Arme zu greifen, sich plötzlich mit unerklärlichen Fehlermeldungen zurückmeldet?
In diesem Teil widmen wir uns einer typischen Fehlermeldungen des Lightining Prozessgenerators, die mit Hilfe eines hands-on Beispiels reproduziert, identifiziert und anschließend behoben werden kann.
1. Validierungsregeln vs. Workflow Updates
Beginnen wir mit dem Klassiker aller Fehlermeldungen, der FIELD_CUSTOM_VALIDATION_EXCEPTION. Diese entsteht, sobald eine aktive Validierungsregel mit einer Datensatzaktualisierung vom Prozessgenerator kollidiert. Salesforce meldet sich hierzu mit einer Fehlermeldung beim Speichern, mit der ein Benutzer in erster Linie wenig anfangen kann.
Abb. 1: Fehlermeldung beim Abspeichern des Datensatzes
Hintergrund dieser Fehlermeldung: Der Lightning Prozessgenerator versucht automatisch ein Feld zu aktualisieren, was jedoch von einer Validierungsregel verweigert wird. Da Datenbank-Validierungen vor dem Abspeichern immer vor Workflows ausgeführt werden, wird die Aktualisierung blockiert wodurch der Fehler FIELD_CUSTOM_VALIDATION_EXCEPTION entsteht. Mehr zum Thema in welcher Reihenfolge Salesforce Prozesse und Datensatzänderungen ausführt, gibt es hier.
Wie lässt sich diese Fehlermeldung also reproduzieren?
Es folgt eine hands-on Anleitung um die Fehlermeldung besser zu verstehen. Diese kann auf dem Objekt „Account“ einfach nachgebaut werden. Was wird also benötigt?
- Ein aktiver Prozess über den Lightning Prozessgenerator mit folgender Funktion → „Wird ein Account der Branche „Banking“ zugeordnet, setze automatisch die „Bewertung“ auf „Hot“. (Setup → Prozessautomatisierung → Prozessgenerator). Der Prozessgenerator ist sowohl über das Classic, als auch über das Lighting Setup erreichbar und steht den Benutzern ab der Professional Edition zur Verfügung.
Abb. 2: Setup → Prozessautomatisierung → Prozessgenerator
Abb. 3: Neuen Prozess erstellen
Abb. 4: Prozess mit Datensatzaktualisierung
Abb. 5: Kriterien für die Automatisierung
Abb. 6: Workflow Aktion des Prozesses
- Eine aktive Validierungsregel auf dem Account mit folgender Logik → „Das Auswahllistenfeld „Bewertung“ darf nur auf „Hot“ gesetzt werden, wenn das Feld „Typ“ davor ausgefüllt wurde. (Navigation über Lightning: Setup → Objekt-Manager → Account → Validierungen → Neu)
Abb. 7: Account Setup
Abb. 8: Validierungsregel erstellen
Abb. 9: Validierungsregel auf dem Account
Mit diesem Setup und der Aktivierung des Prozesses und der Validierungsregel erzeugen wir eine Fehlermeldung, wenn das Feld “Industrie” auf “Banking” gesetzt wird, aber das Feld “Typ” leer bleibt.
Mögliche Reaktion des Benutzers – Verwirrung und Frustration, da dieser beim Abspeichern nicht im Prozess weiterkommt, einzig und allein die mit einer Der zuständige Systemadministrator wird kontaktiert um Abhilfe zu schaffen.
Welche Möglichkeiten hat ein Administrator in diesem Fall um das Problem zu identifizieren?
1. FlowApplication eMail-Benachrichtigung
Der erste Schritt führt ins Postfach des Administrators. Hat dieser den Prozess für die Automatisierung erstellt, bekommt er standardmäßig eine „sehr technische“ Fehlermeldungs-eMail von Salesforce, die folgendermaßen aussieht:
Abb. 10: Flowfehler-eMail Benachrichtigung
Anhand dieser Informationen kann das Problem auf den jeweiligen Prozess und die Ursache eingegrenzt werden. Zu sehen ist, dass der betroffene Prozess „Update Industry“ und eine Validierungsregel mit der Fehlermeldung „Um die Bewertung auf "Hot" zu setzen, müssen Sie zuvor einen Account Typ festlegen.“ betroffen sind. Diese Anhaltspunkte dürften für den Administrator ausreichen, um den Fehler zu beheben.
Hinweis: Die eMail-Fehlermeldung bekommt automatisch die Person, die den Prozess erstellt hat. bzw. zuletzt modifiziert hat.
Best Practise: Damit die Verantwortung bei Fehlermeldungen nicht nur bei einer Person liegt, empfiehlt es sich diese Nachrichten an einen Verteiler weiterzuleiten. So kann beispielsweise im Fall von einer Krankheit, Abwesenheit oder Urlaub die Reaktionszeit bei Fehlermeldungen deutlich optimiert werden.
2. Suche über die Fehler-ID
Doch was ist, wenn die zuständige Person nicht der Ersteller des Prozesses war und dementsprechend auch keine Fehler-eMail bekommt? Auch hier gibt es eine Methode für Fortgeschrittene, um doch an die Informationen heranzukommen, die man benötigt.
Ausgangsbasis: Der Administrator bekommt vom Benutzer nur einen Screenshot mit der jeweiligen Fehlermeldung weitergeleitet.
Abb. 11: Nutzung der Fehler ID
Selbst der Admin kann zum jetzigen Zeitpunkt nur vermuten um was es sich handelt, da diese Meldung im Grunde keine brauchbaren Informationen zur Behebung des Fehlers beinhaltet.
Doch mit einem kleinen Trick kann man sich hier behelfen.
Lösung - Salesforce Workbench:
Über die Salesforce Workbench ist man in der Lage sich auf die betroffene Salesforce Instanz einzuloggen und nach der Fehler-ID zu suchen:
1. Login in der Workbench mit seinen Salesforce Benutzerdaten auf der betroffenen Instanz.Abb. 11: Salesforce Workbench Login
2. Nach dem Login auf Utilities → REST Explorer klicken.
Abb. 12: REST Explorer Abfrage
3. Über die GET-Methode folgende Abfrage in die Leiste kopieren: /services/data/v39.0/tooling/sobjects/flow/ und die Fehler ID hinten ergänzen und auf Execute klicken.
Abb. 13: Anwendung GET-Methode
4. Nun werden die Informationen zum betroffenen Prozess ausgegeben und der Administrator kann mit der Ursachenforschung starten.
Abb.14: Ausgabe des betroffenen Prozesses
Da Salesforce bislang keine “benutzerfreundliche” Lösung für die Ausgabe einer Flow-Fehlermeldung dieser Art bereitstellen kann, ist dies eine hilfreiche Methode um schnell an Informationen heranzukommen.
Haben Sie ebenfalls negative Erfahrungen mit den Fehlermeldung
„Too many SOQL queries 101“ gemacht?
Kein Grund zur Panik, auch hierfür gibt es im kommenden Teil 2 hilfreiche Tipps und Lösungen mit hands-on Beispielen. Seien Sie also gespannt, welche Möglichkeiten dem Administrator hier geboten werden.