Winter 18 Release - Hallo neuer Look, Service Cloud und SuperListViews

Kurz-Übersicht

Die Lightning Experience kommt im überarbeiteten Look, statt Weiß gibt es dezenten Astro- und Trailhead Hintergrund - wem das nicht gefällt, hat als Alternative: Hellgrau.

Wichtig ist mir dabei, daß die Lightning Experience wesentlich aufgeräumter und schärfer rüberkommt - egal mit welchem Hintergrund. Überhaupt ist in diesem Release viel passiert, um Menschen, die mit vielen verschiedenen Daten in Listen zu tun haben, besser unter die Arme zu greifen. Wenn ich tippen müßte, glaube ich, hat das was mit der Service Cloud zu tun - ohne kluge Listen, ist man da schnell aufgeschmissen. Kein Wunder also, daß mit Winter 18 alle wichtigen Service Cloud Feature vorhanden sind - Console und Makros inklusive! Das beinhaltete sogar Unterstützung für Cases im Lightning Data Service. Das wird Console Components richtig boosten.

Support und Service finden weltweit nicht nur in Englisch statt, insofern sind alle Verbesserungen 1) überfällig und 2) sehr willkommen, die sich rund um besseren Multi Language Support drehen - sowohl customer-facing als auch was das Importieren von Daten nach Salesforce in verschiedenen internationalen Formaten betrifft. Dennoch ist nicht alles komplett in Lightning angekommen (z.B. Knowledge Übersetzungen).

Classic Email Templates erhalten ein Revival - HTML, Text und 'custom formats' (Anfrage, ob damit VF gemeint ist, läuft. Antwort: VF wird nicht unterstützt.) können nun auch wieder zum Einsatz kommen. Zu haben in Sales und Service Cloud und in Gmail und Microsoft Integrationen.

Klar steckt auch viel Einstein in dem Release - zum Beispiel Einstein Analytics (formerly known as Wave) und Updates zu Discovery. Und ein Einstein Tool in der Beta, das automatisch Kontakte pflegt. Und Opportunity Roles automatisch anpaßt. o_O ? Ja, war auch meine Reaktion. Kein Schmäh.

Nicht gut genug? Die besten 3 Sachen zum Schluß, Details weiter unten oder in diesem Blog.

  1. Visualforce kann jetzt out of the box dynamisch, wo nötig, Lightning Styling setzen. Es gibt keine Gründe gegen Lightning mehr. Selbst nicht für die, die viel in Visualforce investiert haben.

  2. Wer schon immer mal sowas wie dynamische Page Layouts haben wollte und das Aussehen von Lightning Apps völlig frei bestimmen, der wird mit Winter 18 besonders glücklich.

  3. Salesforce DX - die 180° Wende in Sachen Entwickeln auf der Salesforce Platform - ist jetzt generally available. Herzlichen Glückwunsch, Wade Wagener, das ist ein großer Erfolg und ich bin totaler Fanboy.

Lieblingsfeatures

  • Ja, das hat mich echt überrascht: Kontakte werden automatisch von der Einstein AI selektiert und synchronisiert, also angelegt (Beta Feature). Ihre Rollen auf Opportunities werden dabei ebenfalls automatisch aktualisiert. Woher kommen die Daten? Einstein Contact AI
  • Einer der coolsten Sachen ist sicher das dynamische Einblenden von Components anhand von Filterkriterien auf der Record Home Page. Damit haben wir von Daten abhängige dynamische Page Layouts. AWESOME! Dynamic Display of Components
  • Dicht gefolgt von: <apex:page lightningStylesheets="{!$User.UIThemeDisplayed == 'Theme4d'}"> sorgt für SLDS in Lightning und Classic Charme in Classic. Zur Erinnerung: <apex:slds> lädt im Grunde nur die Styles und ist Ersatz für die statische Resource. Bitte beachten:

    some components differ slightly in style from Lightning Experience. For example, <apex:selectOptions>, <apex:selectRadio>, <apex:inputFile>, and some <apex:inputField> elements use the browser’s default styling

    Meine Meinung: Selbst denen, die viel in Visualforce Pages investiert haben, gehen langsam die Argumente gegen Lightning aus.

  • Das Vorhalten größerer Mengen historischer Daten auf der Platform konnte bisher nicht empfohlen werden. Mit dem Custom Big Objects Preview könnte das bald Geschichte sein. Sämtliche UI muß man sich allerdings dazu gerade selbst bauen und 'actionable' sind die Daten auch noch nicht.

    To support the scale of data in a big object, features like triggers, flows, processes, and Salesforce1, are not available.

  • Es gibt den Report Builder nun auch in Lightning (Beta) - an sich eine Nachricht, aber er kann noch zu wenig. Folgendes kann die Beta nicht:

    • Joined reports
    • Bucketing
    • Custom summary formulas
    • Cross filters
    • Row limit filters
    • Role hierarchy filters
    • Dashboard Settings menu
    • Report Properties menu
  • Die Lightning Console JavaScript API ist live und bringt eine Beta für OmniChannel in Lightning mit! Damit ist auch die Service Cloud vollständig in Lightning angekommen. Ein Meilenstein. Achtung:

    The generally available Lightning Console JavaScript API has significant differences from the pilot version. The API syntax has changed. Methods now use promises instead of callbacks to return responses. Also, methods in the Utility Bar API, like methods in the Workspace API, take a JSON array of arguments.

    The Lightning components associated with the API have also changed. To use the Workspace API or the Utility Bar API, add <force:workspaceAPI /> and <force:utilityBarAPI />, respectively, to your Lightning component.

    The API has several new methods and events, and some methods take different arguments. Check the Salesforce Console Developer Guide reference to see the arguments for a method.

    Wäre nur halb so schön ohne die Makros in Lightning und allem anderen bezüglich Service und Cases in Lightning.

  • Die Bulk API 2 ist GA und unterstützt Semikolon. Außerdem insgesamt 150 MB an Daten (base64) pro Request und 1 Million Zeilen pro 24h! Mittels unprocessedrecords finden wir heraus, welche Daten nicht bearbeitet worden sind.

  • Wer sich im enterprise Maßstab im Microsoft Exchange Universum bewegt, für den hat Einstein Activity Capture eine Menge nützlicher Optionen zu bieten. Reicht von Kontakten zu Angeboten zu Verträgen und natürlich Ereignisse für Kalender.
  • Eine Hierachie Ansicht für Assets ist im Lightning Standard jetzt enthalten. Assets halte ich für eines der vielseitigisten Standard Objekte, die es gibt.
  • Es sind zahlreiche neue Base Lightning Components veröffentlicht worden, darunter lightning:combobox und lightning:datatable - zwei random picks aus der langen Liste der vielen neuen UI Components. Combobox Table
    Auch einige neue Service Components, die Zugriff auf Notifications und Overlays geben sind dabei. Hab ich aber noch nicht getestet. Als besonderes Schmankerl: lightning:flexipageRegionInfo. Damit können Components herausfinden, wie breit sie im AppBuilder sind. lightning:flexipageRegionInfo ist nicht pixelgenau, sondern liefert folgende Werte zurück: Small,Medium,Large, Xlarge. Entsprechend kann zusätzliches CSS für bestimmte Werte angegeben werden. Beispiel aus den Docs:
<aura:component implements="flexipage:availableForAllPageTypes">  
    <aura:attribute name="width" type="String"/>
    <lightning:flexipageRegionInfo width="{!v.width}"/>
    <div class="{! 'container' + (v.width=='SMALL'?' narrowRegion':'')}">
        <div class="{! 'eachField f1' + (v.width=='SMALL'?' narrowRegion':'')}">
            <lightning:input name="field1" label="First Name"/>
        </div>
        <div class="{! 'eachField f2' + (v.width=='SMALL'?' narrowRegion':'')}">
            <lightning:input name="field2" label="Last Name"/>
        </div>
    </div>
</aura:component>  

Spannendes für Entwickler

  • Lightning Data Service GA und er kann jetzt auch Cases!

  • Saubere Daten sind wertvolle Daten. FindDuplicates Class ermöglicht Entwickler vor dem Einfügen neuer Daten zu prüfen, ob es eventuell Duplikate sind. Schreit nach neuer best practice

  • SOSL kann nun innerhalb von ListViews suchen: FIND {Acme} IN ALL FIELDS RETURNING Account(Id, Name USING ListView=MVPCustomers) Bitte darauf achten, daß verschiedene ListViews mit selbem Namen in einer Org existieren können.
  • Die Federated Search unterstützt RSS als Rückgabe Format.
  • notifyInitializationComplete() verfügbar für Softphones in Lightning Open CTI API.
  • Mehr Debug Info in den Logs über Platform Events
  • Tooling API unterstützt nun CRUD in aktiven Orgs. Ausnahme bilden die üblichen Verdächtigen wie CustomObject oder ApexClass
  • Die User Interface API ist auch GA und ich halte sie für einen klugen Schachzug. 100%ige Kontrolle über die UI bei 100%iger Aufrechterhaltung der Konfigurationsmöglichkeiten von Salesforce. Ob wohl schon jemand an einem node wrapper dafür arbeitet?
  • aura:dependency unterstützt ab API 41 keine Wildcards * mehr.
  • Lightning als auch JS Remoting erhalten ein Payload Data Limit von nun 4 MB (statt 1 MB).
  • Lightning Linter (na, gut, ESLint mit Fokus auf Locker) nun auch in der Dev Console. Höchste Zeit. Außerdem sagt Salesforce:

    However, the validation service enforces only a tight, focused set of rules, and doesn’t prevent bugs or poor software design. Treat the validation service as a starting point for ensuring that your code is well written, not proof that you’ve achieved that goal.

  • Sofern ihr Named Credentials verwendet bitte prüfen, ob sie mit https:// beginnen (Ausnahme: Type Anonymous). Sonst geht gar nix mehr ab Winter 18.

  • External Objects verstehen Database.QueryLocator und eine App hilft, Probleme zu identifizieren.

Admins und Poweruser

Anwender und allgemeine Verbesserungen

Zu guter letzt: Meine Wunschliste

  • lightning:inputField - war auf der Roadmap, hats nicht geschafft
  • API First auch für related Lists: Zwar können User viele Einträge auf einmal in Listen editieren, wir Entwickler können dieses Feature aber noch nicht für uns fruchtbar machen.
  • Ditto in diesem Zusammenhang für das Lightning DataService Pendant des StandardSetControllers
  • Kürzere Release Notes. 560 Seiten....
Show Comments