プログラマ38の日記

主にプログラムメモです。

Salesforce : バージョンアップの変更点を確認する (Spring'20 ~ Spring'23)

最新の情報に追い付いていなかったのであらためて記載する。

 

Spring'20
API 要求の日次上限 (1,000,000) が削除されました。
[API数の計算]
100,000 + (ライセンス数 x ライセンスの種類ごとのコール数) + 購入した API コールアドオン数

API数が増えてるのが嬉しいです。

 

Summer'20
プッシュ通知の制限が緩和されました
iOS プッシュ通知は組織ごとに 1 時間あたり最大 20,000 件、Android プッシュ通知は組織ごとに 1 時間あたり最大 10,000 件送信できます。

利用する機会がなかった機能ですが、制限あるということを覚えておこうと思います。

 

Winter'21
安全なナビゲーション演算子を使用した Null ポインタ例外の回避 ( ?. )

 

これは嬉しいです。これでApexとLWCでNullセールナビゲーションが使えるようになりました。

これで、NullPointerExceptionとはおさらばできると思いますが、むやみに使うと、今までエラーが発生して気づけたバグに気づけなくなるので注意です。
Auraでは使えないのがもどかしいです。


Apex からのカスタム通知の送信
Messaging.CustomNotification クラスを使用して、トリガなどの Apex コードから直接カスタム通知を作成、設定、送信します。

カスタム通知を使った仕組みを作りやすくなりました。テストクラスからは通知しないようにしないとエラーになるようでした。


Winter'23
同時に開くクエリカーソルの制限の削除
ユーザごとに同時に開くクエリカーソル数が制限されなくなりました。Apex 一括処理の start、execute、finish メソッドの結果セットも含まれます。

 

Visualforce画面で、StandardSetControllerをたくさん使っても安心です。(といっても、Lightning Componentを採用することがほとんどになってしまいましたが)

今まではカーソルが10まで、カーソルは15分以上放置するとエラーになるので使いづらかったです。


Spring'23

System.enqueueJob メソッドを使用したキュー可能ジョブのスケジュール遅延の指定
Integer delayInMinutes = 5;
ID jobID = System.enqueueJob(new MyQueueableClass(), delayInMinutes);

 

遅延実行は、今まではSystem.scheduleBatch しかなかったですが、Queueableでも遅延実行ができて便利になりました。System.scheduleBatchでは、同時にスケジュールされる Apex クラスの最大数100の制限、Queueableでは、Apex Flex キューに入っている Holding 状況の Apex 一括処理ジョブの最大数100の制限。

そして、24 時間あたりの非同期 Apex メソッド実行 (Apex 一括処理、future メソッド、キュー可能 Apex、およびスケジュール済み Apex) の最大数250000(組織内のユーザライセンス数 × 200 の大きい方の値)の制限は気を付ける必要があります。