Rosig - Spring 23

Rosig - Spring 23

In Puncto Entwicklung gibt es was zu jubeln: Mehr als 2000 Elemente in einem Flow und Flow Tests depoyable via Change Sets. Statt CPU Time auf Field Describes zu verbraten, um für jedes Feld exakt herauszufinden, ob man es überhaupt lesen oder schreiben darf, lieber Apex in User Mode verwenden. Nach zwei langen Releases in der Beta endlich GA. Das wird vornehmlich das Leben von ISVs einfacher machen, aber auch alle anderen haben nun keine Ausrede mehr, sich nicht um Feldebenensicherheit in Apex zu scheren.

Mit dem ApexTypeImplementor kommt die Möglichkeit dazu, alle Klassen via SOQL zu identifizieren, die ein bestimmtes Interface implementieren. Das klingt nerdig, macht aber einige Sachen eleganter oder überhaupt erst möglich - auch das besonders im ISV Space.

Die neuen dynamischen Binds für SOQL sind ebenfalls hilfreich, ich freu mich richtig, weil es praktisch ist und das Problem mit dem Scope für Bind Variablen löst. Besonders hübsch mit dem oben erwähnten User Mode.

Map<String, Object> acctBinds = new Map<String, Object>{'acctName' => 'Acme'};

List<Account> accts = 
    Database.queryWithBinds('SELECT Id FROM Account 
                            WHERE Name = :acctName',
                            acctBinds, 
                            AccessLevel.USER_MODE);

Security

Es wird weiter daran gearbeitet, den Zugriff auf und die Verwendung von API Enabled SessionIds einzuschränken. Hier wird an allen Ecken und Enden technisch oder vertraglich dicht gemacht, auch AppExchange Packages sind betroffen. Das neue Mantra lautet: Wer SessionId will, muß Connected App nutzen.

Die singuläre Run Flow Permission wird durch Sharing abgelöst, das heißt nur wer Zugriff auf den Flow hat, darf ihn auch ausführen. Gilt auch für Orchestrator. Damit werden Berechtigungen für Flows ebenfalls granular.

Execute Anonymous für Apex gibt es nur noch für vollwertige Salesforce Nutzer/Lizenzen, nicht mehr via Experiences oder anderweitig.

Industries oder Platform - FlexCard oder FlowScreen

In diesem Release gibt es eine Beta für Reactive Flow Components als auch die Möglichkeit Http Callouts via Flow ohne Code zu bewerkstelligen. Damit haben Flow Screen in etwa das Level von FlexCards in puncto Connectivity und Reactivity erreicht und hübscher, weil sie sich nahtlos ins SLDS einfügen, sind sie auch noch.

Lohnt es sich in beides zu investieren, wenn man nicht gezwungen ist? Nein. Ich hab lange Zeit ein wenig neidisch auf FlexCards geschielt - Deployments und Entwicklung mal außen vor gelassen - aber das ist jetzt vorbei.

Ein Schelm, der...

Salesforce hat viele Stellen abgebaut. Im November hat das HR Center von Work.com die Funktion "Employee Transitions" eingeführt, die "Work-Life Events" abbilden und Mitarbeiterinnen bei wichtigen Ereignissen an die Hand nehmen soll - darunter "Termination" und "Offboarding".

Bret Taylor hat Salesforce verlassen. Ohne Kausalität zu suggerieren, möchte ich darauf hinweisen, daß fast alle Salesforce <=> Slack Features von 2 monatlichen Releases im Anfang von 2022 auf unregelmäßige gewechselt sind. Kurzum, Releases sind rar geworden und bei manchen Apps passiert wenig, bei Trailhead für Slack passiert seit Februar letzten Jahres gar nix.

MuleSoft Composer für Salesforce heißt nun Flow Integration - damit es zu keinen Verwechslungen kommt - und ganz hot off the press: Automotive Cloud. So neu, daß in den Demo Bildern noch Widgets vorkommen.

Automotive Experience

The sorry state of service

Kunden können ungeduldig sein, keine Frage. "Wieso geht da keiner sofort ran?" "Warum muß ich auf eine Chat Antwort so lange warten, ich muß doch gleich los?" "Ist denn da keiner?" "HALLO?!"

Salesforce hat im Piloten eine Antwort darauf, die ich uncharmant finde.

To reduce wait times and provide more responsive service, focus your agents on time-sensitive work items such as chats or voice calls. Designate longer duration work items such as cases as interruptible so that agents can accept time-sensitive work instead.

Erzwingbare Interruptionen für Service Agentinnen und Agenten, damit die Quengelnden schneller bedient werden als die Email To Case Queue? Das klingt für mich nach der Einladung zur Unzufriedenheit.

Diesmal müssen wir verzichten auf

  • Create Custom Notifications Enabled Across Delivery Channels
  • Send Notification Actions Now Support Desktop and Mobile Notification Types
  • Add a Notifications Component to Your LWR Site (Beta)
  • Get Accessibility Changes to Lightning Design System Icons
  • Minimize Service Disruptions with the Flow Automation Pack for Incident Management

Release Updates

Acht Release Updates gehen live mit dem kommenden Release. Sieben davon könnten meiner Meinung nach dazu führen, daß etwas nicht mehr funktioniert wie vorher, bitte prüfen falls noch nicht passiert.

Auch MFA wird mit Spring 23 aktiviert für einen Teil der Orgs, die anderen folgen im Sommer, aber MFA wird nicht erzwungen. Das heißt, es ist abschaltbar. Vertraglich ist man jedoch zu einer Multi Factor Authentication verpflichtet. Gleiches gilt für Enhanced Domains.

Ich wußte nicht, daß man per Setup Klick unendliche viele inaktive Picklist Werte speichern konnte. Das macht Salesforce via Release Update rückgängig.

Drei Release Updates hat Salesforce gegenwärtig ins Nirvana geschickt. Ich darf mir auf die Schulter klopfen, bei Visualforce habe ich eine Wette mit mir selbst gewonnen.

"Don’t enable this update. Wait for the update to be automatically enabled on the enforcement date. If you enable this update before the enforcement date, third-party pages can behave unexpectedly."

Bis auf weiteres hat Salesforce den schon seit Jahren in Entwicklung befindlichen Nachfahren der refId verschoben und auch das alte Release Update zum neuen Case Email Threading Verhalten gecancelt, das heißt im Klartext: Niemand wird gezwungen aufs (neue) neue Threading umzusteigen. Allerdings kann es durchaus mehr als das alte. Durch Threading im Body und Header der Email kommt es zu weniger unnötig erstellten Cases, was eigentlich eine gute Sache ist. Leider hat Salesforce das Thema schon sehr lange auf dem Tisch und das Vertrauen ist gesunken, daß das neue Threading wirklich kommt und gut wird.

Breaking Changes

LWC rendert in Spring 23 schneller, aber unter Umständen sind in HTML Attributen, wie zum Beispiel class, Spaces dazugekommen oder andere Zeichen. Das könnte Ärger geben mit Selektoren wie

this.template.querySelector('[class="highlight yellow"]')

Denn das Attribut könnte einen zusätzlichen Space nach dem Update haben:

<div class=" highlight yellow">

Wie in den Release Notes beschrieben, lieber querySelector('.highlight yellow') verwenden.

Async SOQL wird beendet, in dem Link wird unter anderem Batch(!) vorgeschlagen, um es abzulösen.

Die MethoderecalculateFormulas() unter System.SObject gibt es nicht mehr ab API 57, bitte System.Formula.recalculateFormulas() nutzen.

Lieblingsfeatures

Descriptions in Flow Builder

Forecast UI

Experience Metadata Bundles

Dynamic Filters

Für Entwickler

Network.createRecordAsync('GENERIC', new Case(Subject='Help!');

Für Admins

Choice Component

Survey Modal

Datatable Multiselect

  • Einstein Case Classification unterstützt verschlüsselte Felder
  • Limits wurden erhöht - doppelt so viel Offline Support auf mobilen Geräten via Briefcase
  • Bausteine vorkonfigurieren (Bild und Text, ein Umfragelink), die dann in Chats schnell wiederverwendet werden können: Messaging Components
  • Dynamic Forms auf Lead und Case angekommen und Dynamic Actions (unterstützt alle Standard Objekte) für alle und jede.
  • Pardot/Marketing Cloud Engagement entfernt einige Connectoren wie WebEx
  • "Hide Personal Information user management setting is now retired". Es gibt stattdessen "Enhanced Personal Information Management". Das kommt mit dem Fieldset PersonalInfo_EPIM und Felder, die da drin sind, werden Experience und Guest Site Usern nicht mehr angezeigt. Umfängliche, weitere Details hier.

Für Nutzer

Activity Composer

  • Die Todo Liste ist in der Sales Cloud Teil der Utility Bar und man kann sie sogar umsortieren. Wahnsinn.