見出し画像

Salesforce Spring ’23 リリースノートから気になったリリースまとめ

こんにちは。遠藤です。
先日1月11日(水)に開催した「ゆるっとSalesforceトーク #13」ではSpring '23リリースノートの輪読会をしました。

「Salesforce Spring '23 リリースノート」はこちらです。記事執筆時点では日本語も公開されています。

前回はリリース直前でしたが、今回はリリースまで余裕を持って開催できました。ちなみに日本のSpring '23のリリース日は日本時間2月12日(日)のことです。

では、イベントで話題にしたSpring '23の新機能についてまとめて行きます。リリースノートを読んだだけで触っていない機能もありますので、一言解説はかなりざっくりですのでご了承ください。
また、今回早めに開催したので、もしかすると延期されたものもあるかもしれません。

カスタマイズ

項目

無効な選択リスト値のクリーンアップ (正式リリース)

未使用の選択リストの値をクリーンアップする機能がGA。

無効な値のセクションに「未使用の値を削除」ボタンが追加されています。

無効な選択値でかつ使われていない値の一括削除なので、選択値を洗替えしたい場合などに使うのでしょうか?

選択リスト値の一括管理 (正式リリース)

こちらも同じく選択リスト関連です。関連リストの値を一括管理できる仕組みがGA。

Lightning アプリケーションビルダー

動的フォームを使用したケースおよびリードレコードページの機能強化

動的フォームがケースとリードでも利用可能になります。

標準オブジェクトの動的アクションの利用 (正式リリース)

動的アクションがすべての標準オブジェクトで利用可能になります。

動的関連リストに表示できるレコードの増加

最大表示件数が30だった動的関連リストに「すべて表示」リンクが追加されます。

共有

レコードにアクセスできるユーザとその理由の確認

誰がどうしてそのレコードにアクセスできるのかを確認できるようになりました。制限ルールでブロックされているなども確認できて便利そう。

アクションの「共有階層」から辿って確認します。例えば、私が商談「Dickenson plc」にアクセスできるのは管理者だからというのがわかります。

権限

Choose the Permission Sets Display When Setting Field-Level Security (Beta)

こちらはベータで日本語のリリースノートには掲載されていない機能です。

Winter ‘23でリリースされた項目作成時にプロファイルではなく権限セットに権限を付与できる機能の改善で、API名と説明が表示されるようになりました。

この辺りの変更は、将来的に項目レベルセキュリティなどの権限がプロファイルから権限セットに移行することを見越したもののようですね。

外部サービス

変更および拡張された制限による登録できる API 仕様の増加

外部サービスの利用制限が緩和されます。

外部サービスの制限の追跡

外部サービスの利用状況が可視化するビューが追加されます。

コードを使用しない、Web ベースサービスから Flow Builder への外部データの取り込み (ベータ)

フロービルダーのアクション追加の画面から簡単に外部サービスを登録できるようになったようです。

参考: Spring ’23 Sneak Preview – Flow Builder, Orchestrator, Slack, Integrations – UnofficialSF

一般設定

活動の項目履歴の追跡

今まで項目履歴管理ができなかった行動とToDoの項目履歴管理が可能になります。

開発

Apex

ユーザモードデータベース操作による Apex コードの保護 (正式リリース)

例えばレコードの取得の場合は、SOQLに「WITH USER_MODE」句を追加するとシステムモードではなくユーザーモードで実行されます。

List<Account> acc = [SELECT Id, AccountNumber FROM Account WITH USER_MODE];

もし「AccountNumber」にFLSがなければ例外がスローされます。参照できない項目があってもうっかり使ってしまうというバグが無くなりそうですね。

AppExchangeベンダー的には、Code Analyzerやセキュリティレビューで使用するコードスキャナーも早めに対応してほしいところです。

インターフェースを実装する Apex クラスの検索 (正式リリース)

ApexTypeImplementorオブジェクトが追加され、ApexクラスをSOQLで検索できるようになります。

パッケージで名前空間外の実装を検索して実行するような想定しているのでしょうか。

DataWeave in Apex を使用したさまざまな形式へのデータ変換の有効化 (ベータ)

Mulesoft DataWeave ライブラリをApexで使用可能になるらしいです。ベータになるので試しやすくなります。

具体的には、CSVの読み込みなどいままで独自に実装していたものをこちらに置き換えることができそうです。

System.enqueueJob メソッドを使用したキュー可能ジョブのスケジュール遅延の指定

以下のように、5分後にQueueableを実行するとかができるようになります。

System.enqueueJob(new MyQueueableClass(), 5);

変な使い方としては、処理をsleepしたくなるようなケースにも使えるかもしれません。

キュー可能ジョブの組織全体のデフォルトのスケジュール遅延の指定

上記の機能の組織のデフォルトを設定できるようになるらしいですが、こちらはあまり利用用途が思いつかないですね。

SOQL クエリにバインド変数を動的に渡す

SOQLにバインドする変数をMapで渡せるようになります。

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

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

なんか便利そうです。Mapに変数ない場合はエラーになってしまうのだろうか。

DescribeFieldResult インスタンスのソース SObject の検出

DescribeFieldResultのインスタンスでgetSObjectTypeメソッドを呼び出すと、項目が定義されているオブジェクトが取得できるようになります。

リリースノートの例だと、今まで以下のようにsObjectTypeとsObjectFieldを渡すような操作をするメソッドの引数が減るくらいでしょうか。

public static sObject createAndSet(Schema.sObjectType sObjectType, Schema.sObjectField field, object fieldValue) {

Salesforceフロー

フローだけで大項目があります。

Flow Builder

フロー画面への参照項目の簡単な追加

画面フローにルックアップ項目を簡単に追加できるようになったようです。

フローの動的フォームでの複数オプションの選択

複数オプション選択できる仕組みが前より簡単にできるようになったようです。

フローキャンバスでの要素説明の確認

説明に記載していたメッセージがより簡単に確認できるようになりました。これは地味だが便利。

フローランタイム

フロー画面のテーブルからの複数のレコードの選択 (正式リリース)

データテーブルフロー画面コンポーネントでレコードを選択できるようになります。

API バージョン 57.0 でのフローおよびプロセス実行時の変更

フロー要素数2000の制限が撤廃されます。実行時の要素数なのでループがネストしてたりすると割りと簡単に突破してしまっていた問題が解消されそうです。

フロー管理

[フローに移行] ツールを使用したプロセスからフローへの変換

プロセスをフローへ移行するツールが提供されます。

プロセスビルダーはもともとの計画ではSummer '23には新規作成ができなくなります。移行ツールがどこまで使えるのか気になるところです。

フロー拡張

Slackとの連携機能がそれぞれGAになっています。

Slack のフローにおけるフロー画面コンポーネントの使用 (正式リリース)

Flow in SlackがGAになりました。

アクションを使用した Slack への画面フローの送信 (正式リリース)

Flow in Slackには重要なフローコアアクションの機能もGA。

Run Screen Flows from Slack (Beta)

こちらは日本語リリースノートには掲載されていない機能になります。

Slackのショートカットメニューから画面フローを実行できるようになるようです。

この機能とは関係ないですが、リリースノートページの関連リンクでApex SDK for Slackがベータになることも確認できます。
SlackアプリをSalesforceのみで開発してホスティングできるようになるということなので熱いですね。

セキュリティ、ID、プライバシー

ID とアクセス管理

MFA の自動有効化: お客様の組織に適用されるタイミングと方法の確認 (リリース更新)

MFAが自動有効化されます。Spring '23では第1フェーズに該当する組織が対象になります。詳しくはリリースノートの説明をご確認ください。

認証プロバイダのコンシューマの秘密をすべての変更セットとパッケージに手動で挿入

変更セットやパッケージに含まれる認証プロバイダのシークレットが対象組織にコピーされなくなりました。
変更セット適用後に本番組織でシークレットを手動で設定することになります。

おわりに

以上が、今回のリリースノート輪読会でピックアップした内容になります。

遠藤的には、DataWeave in ApexとApex SDK for Slack、Queueableを遅延実行可能になるあたりが注目ポイントです。

まとめていて、よくわからない機能もあったのでリリースまでにキャッチアップしておこうと思いました。

次回のゆるっとはかなり開発よりな濃い内容ですが、ご興味がある方はぜひご参加ください。