Salesforce Winter '24 リリースノート : Apexなど開発関連


# Apex

+ [ユーザーモードデータベース操作の権限セットを使用したカスタムアクセス権の指定 (開発者プレビュー)](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_User_Mode_PermSets.htm&release=246&type=5)
+ [チェーニングされたキュー可能ジョブの最大深度の設定 (正式リリース)](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_queueable_enhancements_ga.htm&release=246&type=5)
+ [重複するキュー可能ジョブのキューへの追加の回避](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_queueable_dupe_detection.htm&release=246&type=5)
+ [DataWeave in Apex を使用したさまざまな形式へのデータ変換の有効化 (正式リリース)](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_DataWeaveInApex_GA.htm&release=246&type=5)

DataWeave in Apex が正式リリースされました。DataWeave in Apex は、Mulesoft DataWeave ライブラリを Apex ランタイムに統合することで、ネイティブ Apex データ変換のサポートを強化します。これにより、データ変換のコーディングが簡単になり、データ変換の拡張性と効率性が向上します。この機能を使用すると、Apex 開発者はファイル形式の仕様に対応する時間を減らし、ビジネスの問題解決に集中する時間を増やすことができます。DataWeave スクリプトをメタデータとして作成し、Apex から直接呼び出すことができます。Apex と同様に、DataWeave スクリプトは Salesforce アプリケーションサーバー内で実行され、コードの実行に対して同じヒープおよび CPU 制限が適用されます。

[DataWeave の概要](https://docs.mulesoft.com/jp/mule-runtime/4.4/dataweave)

DataWeave は、Mule アプリケーションを通過するデータへのアクセスとデータの変換を行うための言語で、MuleSoft により設計されました。Mule Runtime Engine では、Transform や Set Payload など、いくつかのコアコンポーネントに DataWeave が組み込まれているため、Mule アプリケーションで DataWeave スクリプトや式を実行できます。

DataWeave スクリプトは、Mule イベントのデータに対して動作します。一般には、これを使用してメッセージペイロード内のデータにアクセスし、データを変換します。たとえば、Mule アプリケーション内のコンポーネントで 1 つのシステムからデータを取得した後、DataWeave を使用して、そのデータ内の選択した項目を新しいデータ形式に変更して出力します。次に、アプリケーション内の別のコンポーネントを使用してそのデータを別のシステムに渡すことができます。

+ [[設定] UI での DataWeave スクリプトの表示](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_DataWeaveResourcePage.htm&release=246&type=5)
+ [Comparator インターフェースと Collator クラスを使用した並び替え](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_comparator_collator_interface.htm&release=246&type=5)

List クラスで新しい Comparator インターフェースがサポートされるようになりました。これにより、List.sort() と Comparator パラメーターを使用してコードでさまざまな並び替え順を実装できます。ロケールを区別する比較および並び替えを実行するには、新しい Collator クラスで getInstance メソッドを使用します。ロケールを区別する並び替えでは、コードを実行するユーザーによって異なる結果が生成される可能性があるため、トリガーや、特定の並び替え順が想定されるコードでは使用しないでください。

+ [Iterable による For ループ内での反復処理の簡略化](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_iterator_foreach.htm&release=246&type=5)
+ [非同期 Apex ジョブの制限の使用状況の監視](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_asyncApexConsumption.htm&release=246&type=5)

Apex ジョブの [設定] ページで組織の非同期 Apex の使用状況を監視し、潜在的な制限の問題を発生前に軽減します。非同期 Apex の使用率や、組織の 24 時間の許容制限のうちどれぐらいの Apex 操作が使用されたのかを確認できます。

+ [Apex コンパイラーのメッセージ、設定、処理のその他の改善点](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_misc_updates.htm&release=246&type=5)

+ [Apex RestResponse ヘッダーの RFC 7230 に基づく検証の適用 (リリース更新)](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_enforce_RFC_header_validation.htm&release=246&type=5)

この更新を有効にすると、API のバージョンに関係なく、RestResponse.addHeader(name, value) メソッドを介して Apex で定義される REST 応答ヘッダーで、ヘッダー名が RFC 7230 に基づいて検証されるようになります。この更新は、Spring '23 以降で使用可能になります。


 RestResource.addHeader(name, value) メソッドを呼び出す Apex でヘッダー名が RFC 7230 に準拠していない場合、InvalidHeaderException 種別の実行例外が発生します。本番環境でこの更新を有効化する前に、すべてのインストール済みパッケージに互換性があることをパッケージプロバイダーに確認してください。次の確認を行って、Salesforce 組織への影響を評価します。


**これは関連するかもしれない**
 + [getSalesforceBaseUrl() メソッドの廃止](https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_baseurlmethod_deprecate.htm&release=246&type=5)

# API

+ [JWT ベースのアクセストークンを使用した REST API コールの認証](https://help.salesforce.com/s/articleView?id=release-notes.rn_api_jwt.htm&release=246&type=5)
+ [Salesforce Platform API バージョン 21.0 ～ 30.0 の廃止 (リリース更新)](https://help.salesforce.com/s/articleView?id=release-notes.rn_api_retirement_delay_246rn.htm&release=246&type=5)

Salesforce Platform API のバージョン 21.0 ～ 30.0 の廃止は、Summer '23 で最初に予定されていました。この廃止は Summer '25 に延期されました。これらの API バージョンは引き続き使用できますが、サポートされておらず、Summer '25 以降は使用できません。それらを使用しているアプリケーションは中断されます。要求は失敗し、エンドポイントが無効化されていることを示すエラーメッセージが表示されます。この重大な変更が実行される前に、従来の API バージョンを使用するすべてのアプリケーションを最新バージョンにアップグレードしてください。


[API 合計使用量](https://developer.salesforce.com/docs/atlas.ja-jp.246.0.object_reference.meta/object_reference/sforce_api_objects_eventlogfile_apitotalusage.htm)イベントを使用して、SOAP API、REST API、Bulk API の古いまたはサポートされていない API バージョンで実行された要求を識別します。


# 開発者コンソール

+ [開発者コンソールでの完全な Apex オートコンプリートの廃止](https://help.salesforce.com/s/articleView?id=release-notes.rn_dev_console_fullapex_sunset.htm&release=246&type=5)

開発者コンソールでの完全な Apex オートコンプリートは、リソースの負荷が大きく、維持が困難になったため、廃止されます。カスタム Apex クラスと SObject では引き続きオートコンプリートを使用できます。

このエラーになる？

+ [No symbols found. Attempting to retrieve symbols from Salesforce](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007SrA4z)


# モバイル

+ [モバイルの動的フォームの有効化 (正式リリース)](https://help.salesforce.com/s/articleView?id=release-notes.rn_mobile_dynamic_forms_mobile_ga.htm&release=246&type=5)