Frühling 2018 und das Recht auf Vergessen

Am 25. Mai 2018 wird GDPR in Kraft treten. Mit Spring 18 hat Salesforce alle nötigen Bausteine geliefert - und auch nicht mehr als Bausteine. Force.com wird in Lightning Platform umbenannt. Es gibt neue Lightning Base Components und Flows sind ab dem Frühling nicht mehr zu ignorieren.

Überblick

  1. GPR
  2. Flows
  3. Lightning Platform
  4. Features
    • Favoriten
    • Dev
    • Admin
    • User

General Data Protection Regulation

Folgendes faßt im Grunde schon alles zusammen, was zum Thema GDPR und Salesforce gesagt werden kann:

it’s up to you to determine how to honor [data privacy] preferences

Wenige Monate vor dem Inkrafttreten ist es also an uns, alles, was die neue Verordnung und auch Verbraucher einfordern, in unseren Orgs umzusetzen (hier ein englischer Trail zu GDPR). Bisher war auf Grund von technischen Limitierungen - zum Beispiel im Bereich des Löschens von Daten - ein Umsetzen der Richtlininen zum Scheitern verurteilt.
Mein Eindruck ist, daß Salesforce in diesem Release sehr viel Energie investiert hat, um die fehlenden Bausteine zu liefern. Die Änderungen sind so zahlreich, daß ich noch einige Bugs erwarte. Nichtsdestotrotz: Mir scheint an alles gedacht und, besser noch, durchdacht: Im neuen sObject Individual kann alles zusammenlaufen.
Wenn man's denn selbst hinbaut.
Es bleibt der Eindruck, kurz vor knapp allein gelassen zu werden. Die Bausteine sind zwar da aber darüber hinaus bietet Salesforce lediglich ein paar "Guidelines" an.
Ich kann das schon verstehen - auf Grund von Customisation kann es kein "GDPR und Hopp - alle glücklich"-Paket von Salesforce geben, so sehr ich mir das wünschen würde. Wir müssen da schon selbst ran.

Rund um Data Privacy (Auswahl)

  • Neues Objekt Individual (alle Editionen)

    Represents a customer’s data privacy and protection preferences. Data privacy records based on the Individual object store customers’ privacy preferences and are associated with a lead or a contact.
    Individuals können sind mit Leads und Contacts verknüpft. Ab hier sind wir dann auf uns gestellt.

  • Löschen von Big Objects und Field History (alle Editionen). deleteByExample() heißt der zugehörige SOAP Call für Big Objects. Ein ähnliches Bild zeichnet sich für IoT Daten - nunmehr exportier - und löschbar allerdings nur über REST - diese neue API kann auch noch mehr. Ditto für Event Logs / Shield Data (Beta).
  • Externe User - lies: Community Mitglieder undsoweiter - können sich selbst deaktivieren. Das sollte eventuell weitere Schritte nach sich ziehen.
  • Daten versteckt in Flow Interviews handeln und löschen
  • keine UK oder Irland Daten mehr in Data.com
  • RecentlyViewed Daten werden für 90 Tage aufgehoben, danach periodisch gelöscht. Wer es länger aufheben muß/möchte, sollte die Daten exportieren.
  • Einstein Inbox : Lesebestätigung abschalten
  • Ein "Ruf mich nicht an" Feld auf Contact
  • Failure Emails von Email-2-Case ohne persönliche Daten
  • Ich fürchte ja, daß Dev Orgs auch ein Ablaufdatum brauchen, weil sie persönliche Daten (nämlich mindestens meine) enthalten. Dev Orgs sind nun deaktivierbar und werden nach Deaktivierung nach 90 Tagen endgültig gelöscht.

Flows

Ich empfehle, die Änderungen selbst durchzugehen. Obwohl ich persönlich keine Sympathien für Flows hege - Loops und Ifs mit der Maus zu schaffen ist mir nicht geheuer, eine Unzahl von Flows sind schwer zu managen - sind Flows auf bestem Wege zu First Citizens der Force.com Platform zu werden. Sie drängen sich regelrecht auf in Lightning Experience, da sie sich sehr gut in die Nutzerführung der neuen Oberfläche einbetten lassen. Daß Lightning Components jetzt eingebunden werden können, eröffnet viele Möglichkeiten und Javascript Execution aus Flows heraus ist im Pilot.

Lightning Platform

Habe ich Force.com gesagt? Force.com als Name der Platform, die Salesforce.com anbietet, ist Geschichte. Der neue Name lautet: Lightning Platform. Die macht, finde ich, viel richtig in ihrem ersten Release. Neue URLs, natürlich neue Base Components, Mass Actions - Details sind weiter unten. Das ist aber nicht die Hauptsache. Die Hauptsache ist, daß diese neuen Feature API-first gebaut sind. Und damit stehen die Funktionen auch Entwicklern und Admins zur Vefügung. Beispiel: Case Path wird als neues Feature der Service Cloud in den Release Notes erwähnt. Tatsächlich steht Path nun fast allen Standard und Custom Objekten zur Verfügung - das steht nur viel weiter unten.
Besonders ans Herz gelegt seien lightning:input und lightning:recordEditForm - mehr dazu auf dem Salesforce Developer Blog.

Lieblingsfeatures

  • Die neuen Lightning Base Components sind ein Muss. lightning:inputField hat es ins Release geschafft und wird viel Apex Code einsparen. lightning:datatable hat neue Funktionen, u. a. infinite loading. Ich hoffe datatable bekommt noch einen Trail oder ähnliches, da gibts viel zu lernen.
  • Ich bin so glücklich. Listen in Apex können jetzt contains(listElement) und indexOf(listElement). Letzteres returned -1, wenn es nichts findet (alle Editionen). Die Änderungen sind API unabhängig. Auch ein 'switch' Statement ist in der Mache.
  • Action Overrides - also statt der Standard Funktion 'neuer Kontakt' zum Beispiel was Eigenentwickeltes verwenden - haben sich der Realität angepaßt: Es gibt Classic, Lightning Experience und Salesforce App. Statt es dem Entwickler zu überlassen, in einer Visualforce Page alle drei erwähnten Kontexte hineinzustopfen, ist das nun konfigurierbar. Die Visualforce Page war das Mittel der Wahl, mußte man alle drei Formate unterstützen. Toll, daß man in LEX entweder eine Record Page oder eine Lightning Component einbinden kann. Ganz traue ich dem allerdings erst, wenn ich die Considerations lesen darf - die Release Notes sind etwas knapp gehalten. (alle Editionen).
  • neues, besser lesbares/erstellbares URL Format, aktivierbar via Critical Update - ab Sommer 18 soll es für jede Org gelten. Ich erwarte Ärger mit installierten Anwendungen.
    • Aktuelles Format: https://<lightning.domain.com>/one/one.app/#/sObject/Account/home
    • Neues Format: https://<lightning.domain.com>/lightning/o/Account/home
      Bitte prüft Euren Code, sofern ihr Euch auf die URL mittels window.location oder des Events aura:locationChange bezieht. (Lightning). Gerade bei letzterem gilt aufzupassen:

[The] new URL format for Lightning Experience and the Salesforce mobile app changes how URLs impact navigation in an app. Changes to the hash fragment in a URL are central for navigation in the old URL format. The hash fragment is not as central for navigation with the new URL format.
The aura:locationChange tracks changes to the hash fragment in a URL. The event hasn’t changed, but it’s not useful for tracking navigation with the new URL format.

  • Die Freude steckt im Detail: Für ISV-Partner und andere Päckle-Pusher, deren Pakete 1000 Komponenten übersteigen, war das Öffnen der entsprechenden Visualforce Seite keine Freude. Warten, warten, warten. Ab dem Frühling werden nicht immer alle Komponenten bei Aufruf der Seite gespidert, sondern nur noch auf Knopfdruck neugeladen. Für kleine Päckle ändert sich nix. (alle Editionen)
  • Nach einem Jahr wieder abgeschafft: das dämliche Cookie, das man seit Winter 17 manuell setzen musste, um Public Site Guest User via Debug Logs analysieren zu können. (alle Editionen)
  • LEX Mass Quick Actions für Cases, Leads und Custom Objects. Wohooo!

    To enable your agents to use mass quick actions, go to the Search Layout for the appropriate object and edit the List View Search Layout.

  • In diesem Frühling wird's einfacher, Encryption grosso modo wieder abzuschalten. Das meiste wird automatisch gemacht, für Long Text und Files/Attachment muß allerdings der Support kontaktiert werden.
  • Visualforce ist nicht tot. Es ist ein extrem starker Tandem Partner in Kombination mit Lightning und außerdem haben wir doch alle massiv in VF investiert. Der Lightning Readiness Check zollt dem Tribut und analysiert bestehende Visualforce Pages und ihren Verwendungsort (Override, Page Layout) und gibt sinnvolle Vorschläge. (alle Editionen)
  • Die (meist) bessere Alternative zu auradocs/reference.app ist /componentReference/suite.app. Empfehlenswert, sich stets beides anzusehen. Letztere erhält im Frühling viele Updates.
  • Der Feldtyp Zeit ist in der Public Beta. Wird viele Zeitzonen Probleme endlich aus der Welt schaffen. Wird gegenwärtig noch nicht in Lightning unterstützt und andere Einschränkungen:
    • Cannot be added to records in automated flows created in Cloud Flow Designer or processes designed in Process Builder.
    • Is not supported in Schema Builder.
    • Does not have an Aura UI component.
    • Does not support Lightning UI components. If you declare a component with input type "time", then you receive a parsing error at runtime.
    • Cannot be converted to the text or number types.
    • Doesn’t support the creation of custom indexes for SOQL queries.
    • Is not available for standard lookup relationships in external objects.
    • Requires the entire time value, including milliseconds, for filtering in reports. For example, use CustomTimeOnly equals 10:00:00.000 to filter a report for 10:00 AM
  • Sharing für Flows für Admins, nicht nur via API. Ja, richtig gehört. In der Praxis heißt das: Benutzer A kann damit die Arbeit von Benutzerin B fortsetzen. (alle Editionen). Dazu paßt, daß pausierte Interviews auch in Lightning wiederaufgenommen werden können.
  • Salesforce als öffentlicher Datei-Server? Wird möglich, weil Downloads für nicht-authentifzierte Nutzer eingestellt werden kann (alle Editionen).
  • Makros überall. Die Lightning Console App unterstützt nun alle Standard- und Custom Objekte. Lesenswert, denn von einigen Objekten wird abgeraten.
  • Die Lightning Console kann auch externe Webseiten/Apps als (Sub)Tab öffnen, CSP vorausgesetzt (Lightning Experience). Ditto für Visualforce Pages.
  • Globale Suche nach Emails und Inhalt (Anhänge nicht mitinbegriffen) in Lightning Experience Service Cloud.
  • Ein komplettes Theme für Eure Lightning Experience custom theme
  • Personalisierte Navigation. (Lightning Experience). navigation
    Auch Visualforce Pages (bei Action Overrides beispielsweise) gehen in so einem neuen Tab auf. Das wirkt etwas befremdlich. Wird vielleicht noch gefixt.

Für Devs

  • Lightning hat offiziell keinen Zugriff auf die Salesforce APIs. Daher müssen API Calls Apex-seitig behandelt werden. Wer sich mittels eines lightning:container von dieser Limitierung befreit hat, muss aufpassen: Salesforce schließt die Lücke am 10. Februar 2018 via Critical Update. (Alle Editionen.)
  • Wenn die Authentifikation mal ausläuft, meldet die Streaming API das nun deutlich (alle Editionen)
  • Einstein Services bekommen einheitlichen Endpoint: https://api.einstein.ai
  • Für Freunde der Data Replication API und Anverwandte gibt es einen neuen Piloten: Change Data Capture - für jede Veränderung an den Salesforce Daten wird ein entsprechendes Event rausgehauen. Praktisch, um externe Datenquellen auf dem Salesforce-Stand zu halten.
  • Visualforce hat über [$User.UITheme](https://developer.salesforce.com/docs/atlas.en-us.212.0.pages.meta/pages/pages_variables_global_useruitheme.htm) den Wert Theme4u dazubekommen, womit eine Lightning Console App UI identifiziert werden kann.
  • Und für Freunde von massig vielen Events, gibt es ebenfalls einen Piloten, der Millionen Events am Tag zuläßt.
  • Massig weniger Müll in Debug Logs - adios ENTERING_MANAGED_PACKAGE, wo es niemandem hilft. (Alle Editionen)
  • Besseres Callout to External Oject Debugging (alle Editionen)
  • Encryption hat Auswirkungen darauf, wie eine Query geschrieben wird und bringt an sich schon höheren Ressourcenverbrauch mit sich. Um dem abzuhelfen, sind Skinny Tables mit Shield jetzt generally available (Salesforce Shield).
  • In der Lightning Console werden jetzt Lightning Component Actions unterstützt.
  • Chat Snap-Ins mit Lightning Components verbessern
  • Die Lightning Console API bekommt viel Liebe mit neuen Events und allen Methoden GA (Lightning) und im gleichen Atemzug werden einige der Methoden aus dem Classic Toolkit automagically in Lightning unterstützt. Eine Übersicht aller Methoden hier. An mehr wird gearbeitet.
  • Die Console in Lightning erhält auch besseren Support für Action Overrides und Visualforce Seiten können erkennen, ob sie im Kontext der Console oder mit Standard Navigation laufen.
  • Salesforce räumt auf, dahinter steckt sicher auch DX. Einiges an Re-Organisation in den Metadaten. Selbiges gilt auch für Reports und die zugehörige REST API.
  • Zahlreiche durchdachte Weiterentwicklungen und Vereinfachungen in der User Interface API.
  • Mit Collections sind weniger Servertrips nötig, um eine Liste an Records via Rest zu updaten - dafür gibt es den neuen Endpoint /vXX.X/composite/sobjects
  • Die Flow.Interview Klasse bekommt ein neues Override und damit werden Flows mit Namespace aufrubar. (alle Editionen)
  • Ein Pilot ermöglicht Ausführen von Javascript aus Flows heraus (Lightning). Abgefahren!
  • Nach Login Flows nun auch dasselbe für Visualforce (alle Editionen)
  • Nicht jede braucht denselben Login Flow. Wenn meine Benutzerin nur katalanisch spricht, bringt ein englischer Login Flow nur Verwirrung. Klar, Sprache umstellen ist ein Schritt. Das geht mit Frühling 18. Sprache ist nur ein Beispiel von vielen - Entwickler wollen entscheiden können, welche Kontextinformationen sie heranziehen wollen. Das geht nun auch sowohl für Single-Sign-On als auch Community mittels Expererience Id (ExpId) (alle Editionen).
  • Apropos Login Flow - besseres Branding geht nun auch auch ist die ExpId anzutreffen.
  • Granularere Sicherheit: In Apex Triggern abfragen, ob die aktuelle Session den nötigen Sicherheitsstandards entspricht. (alle Editionen)
trigger testTrigger on Account (before insert) {
    Map<String, String> sessionMap = auth.SessionManagement.getCurrentSession();
    if(!sessionMap.get('SessionSecurityLevel').equals('HIGH_ASSURANCE')) {
        throw new Auth.VerificationException(Auth.VerificationPolicy.HIGH_ASSURANCE, 'Insert Account');
    }
}
  • Bessere Debug Optionen für Externe Objekte (alle Editionen)
  • Orgs, die mit Spring 18 erstellt werden, verhalten sich in ODATA Dingen etwas anders. Wer das für die eigene Org braucht, kontaktiert den Support. (alle Editionen)
  • Beim dynamischen Erstellen von Lightning Komponenten ab API 42.0 läßt sich kein style Tag mehr verwenden
  • Einstein auf Reports loslassen (Einstein Data Insights, Pilot). Guter Schachzug, Kompliment.
  • Last but not least: ´component.find()´ funktioniert nun angeblich auch mit dynamisch erzeugten Lightning Components.

Für Admins

  • Bisher konnte man Lightning Components nur anhand des Records aber nicht dessen Relationen ausblenden. Im Frühling geht nun auch Contact.Account.Name (Lightning). Komponentensichtbarkeit wurde auf Home Page und App Pages erweitert.
  • Alles hat Salesforce für Entitlement Management in Lightning nicht hinbekommen. Aber einiges.
  • Custom Metadata Types in Formeln für Validierungen (Pilot)
    Beispiel:

    Discount > $CustomMetadata.DiscountLimits__mdt.FoodDiscount.maxDiscount__c

  • Custom Settings vom Typ List sind abschaltbar (alle Editionen)
  • Keine Legacy (d.h. Classic) Charts für die Salesforce App (ehemals Salesforce1) mehr.
  • Der Lightning App Builder kann nun auch Pages und Apps verwalten. App Builder
  • Ausnahmen bestätigen die Regel: Für Files können alle Validierungen und Trigger abgeschaltet werden (alle Editionen).
  • Salesforce Shield verschlüsselt Euch jetzt auch Activities, Email Messages, Email-to-Case messages und Custom Object Name (Pilot)
  • Eine Sicherheitsoption für Content Sniffing und andere, kleine Sicherheitsupdates (alle Editionen). Hervorhebenswert die optionale Warnung, wenn ein Benutzer von Salesforce wegnavigieren möchte.
  • 'Local friendly address format' - Aha. Hier erfährt man mehr. (alle Editionen)
  • Compact Layouts nun auch für Externe Objekte, jedoch ausschließlich via Metadata API (alle Editionen)
  • Fragen zu Limits? Was Euch in Eurer Version (Enterprise, Unlimited, etc) zur Verfügung steht, wird schnell auffindbar. Die Begriffe #Limits# und #Allocation# bei der Suche in der Hilfe führen direkt zum Ziel. (alle Editionen) Hinweis: Bei mir hat's nicht funktioniert.
  • Willkommen im Process Builder und in Workflows: group,group membership,topic und topic assignment (alle Editionen). Für Workflow und Trigger: Agent Work und User Service Presence (alle Editonen).
  • Besseres Konvertieren, wenn ihr von einer Picklist auf Multiselect Picklist migrieren wollt. RecordType Einstellungen bleiben erhalten. (alle Editionen)
  • Goodbye Instance-URLs, Salesforce schmeißt na1, cs4, eu6 und dergleichen aus URLs
    (alle Editionen). Wichtig:

    We recommend that you test this update in a sandbox to ensure that the new URLs work with firewalls and proxy servers in the network path between your users and Salesforce.

  • Flow verhält sich im Bewältigen von vielen Datensätzen anders als Trigger. Ein Critical Update glättet diese Wogen etwas - es wird nun für Teil der Bulkification ein Interview gestartet. Das Update ist mit Vorsicht zu genießen, es besteht das Risiko für Limit Probleme und Rollbacks, die man bisher nicht hatte. (alle Editionen)
  • Search Engine Optimierung kann für Lightning Communities nun auch auf sObjekte zurückgreifen.
  • Webex-Meetings finden zu Events in der Lightning Experience
  • Im Pilot: In Lightning Console Apps Flows als Subtabs starten. Außerdem generally available: Flows als objektspezifische Aktion starten (Lightning). Außerdem endlich, endlich bessere Funktionen für Übersetzungen der Flows (alle Editionen). Und zu guter L__etzt, eine __Beta: {!$Flow.CurrentStage} zum Anzeigen von 'Wo bin ich gerade' für User.
  • Das Routen von Social Customer Service Cases geht nun auch ohne Apex (alle Editionen). Der Social Customer Service ist ab Professional Edition dabei.
  • Ein neues Feld auf den ActivitySettings autoRelateEventAttendees erlaubt Admins, automatisch 50 Kontakte oder einen Lead verknüpfen, wenn der Nutzer Kontakte oder einen Lead zum Event hinzufügt (alle Editionen).
  • Ein Einstein Sentiment Dashboard für Communities (Pilot). Bei einer großen Community wie zum Beispiel die der Telekom kann ich mir das ziemlich gut vorstellen. Allerdings funtkioniert Sentiment aktuell nur auf deutsch. Könnte sich bald ändern, denn der Community Builder erlaubt das Erstellen mehrsprachiger Communities. Ergibt sicher eine gute Kombo mit der neuen Survey Component für Communities. Einziger Haken: Das Feature Salesforce Surveys kostet extra.
  • Salesforce Campaigns mit Pardot Campaigns verknüpfen (Beta).
  • Nur noch ein Setup für Lightning Sync (inkl. Micorsoft und Gmail) und auch Microsoft / Google Contacts und Person Accounts können jetzt miteinander.
  • Empfänger in Email Actions vorbelegen (alle Editionen). Klappt automagisch bei Person Accounts.
  • Yes! Custom Actions auf Produkten (alle Editionen). Hier paßt auch dazu, daß in LEX 50 Produkte auf einmal in ein Preisbuch geballert werden können. Auch erwähnenswert, daß die Auswahl von Opportunity Produkten in LEX endlich Spaltenbreiten, etc anpassen läßt.
  • Auch Kunden haben einen Zyklus. Path auch für Accounts (Lightning Experience), Cases und überhaupt, wie erwähnt, Path für alle Standard/Custom Objects.
  • Auch etwas, auf das ich lange gewartet habe: Mehr Optionen zum Einstellen der Lead Konvertierung (Lightning Experience).
  • External Routing (Lightning) und Skill Based Routing (alle Editionen, beides Beta)

Für User

Show Comments

Get the latest posts delivered right to your inbox.