JDK ロケール形式の廃止と ICU ロケール形式の有効化リリース更新でのエラー通知


+ [今後の対応](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KDWns)

:::note
Salesforce 開発者サポートにサポートケースを提出したところ、次のような回答が返ってきました。 

「Summer '25 でこの変更を延期することを選択した場合、Salesforce は組織で ICU ロケールを強制的に有効にしません。JDK ロケール形式を引き続き使用し、Winter '26 までに Apex クラス、トリガー、および Visualforce のメタデータ バージョンをバージョン 45 にアップグレードするオプションがあります。つまり、Salesforce は今後のリリースで組織の変更を展開しようとしますが、組織の Apex クラスとトリガーのバージョンが 45 未満の場合、展開は失敗し、API バージョンの更新を要求するメールが届きます。 


JDK ロケール形式を引き続き使用しても、Salesforce 組織の動作は変更されません。日付、時刻、通貨、その他のロケールに依存する情報の機能と表示は、現在使用しているものと一貫性を保ちます。" 
:::

------------------
+ [API Version and ICU Impact for Salesforce Labs Package](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000PYTXg)

:::note
開発者環境にでも、調べたいパッケージをインストールしてみるとAPIのバージョンは確認可能です。  

インストール済みのパッケージのコンポーネントの中でApexクラス等があれば、詳細を開いてみてください。 
ちょっと面倒ですが... 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/4bd1a173-9766-41c0-8d0d-4f186f5ce357.png)
:::


--------------

:::note alert
お客様の Sandbox 組織 00D9D00000xxxxx は、組織で使用されている API バージョンが 45 を下回るため、通知したとおりに ICU ロケール形式で有効化されませんでした。

Apex クラス、Apex トリガー、およびカスタム Visualforce ページを API バージョン 45 以上にアップグレードしてください。詳細は、ヘルプ記事「Apex クラス、Apex トリガー、および Visualforce ページの API バージョン」を参照してください。

この更新は数週間後に本番組織にも行われます。変更が完了したら、フォローアップの確認メールがお客様宛てに送信されます。

この段階的リリースについてご不明な点がある場合は、ナレッジ記事「JDK ロケール形式の廃止と ICU ロケール形式の有効化リリース更新」を参照してください。
:::

ここでも同じ通知があったようです

+ [API Version 23.0 Visualforce pages in npe4 (Relationships) 3.15](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000Ke4qQ)
+ [NPSP バージョンと ICU 有効化基準](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KBO9S0AX)


+ [【ヘルプ】Apex クラス、Apex トリガー、および Visualforce ページの API バージョン](https://help.salesforce.com/s/articleView?id=sf.admin_locales_update_api.htm&type=5)

>International Components for Unicode (ICU) ロケール形式は、API バージョン 45.0 以降で使用できます。カスタマイズで ICU ロケール形式を使用するには、Apex クラス、Apex トリガー、および Visualforce ページを最新の API バージョンに更新します。これらのコンポーネントが API バージョン 44.0 以前を使用している場合、Oracle の Java Development Kit (JDK) ロケール形式が返されるため、データの整合性の問題やエンドユーザーの困惑が発生する可能性があります。

>新しい API バージョンは、各 Salesforce リリースで使用できます。ただし、Salesforce が Apex クラス、Apex トリガー、および Visualforce ページの API バージョンを更新することはありません。これは、潜在的な問題についてテストできないためです。各自がコンポーネントの API バージョンを更新し、各リリースでコードを検証することが理想的ですが、それはできない場合があります。したがって、たとえば API バージョン 53.0 の組織で API バージョン 21.0 の Apex クラスを使用できます。

### 可能性のあるエラー
Apex クラス、Apex トリガー、およびカスタム Visualforce ページを API バージョン 45.0 以上にアップグレードしない場合、ユーザーに ParseException エラーが表示される可能性があります。たとえば、「無効な日付と時間です」のエラーが表示されます。このエラーによりデータ整合性の問題は発生しませんが、ユーザーがストレスを感じる可能性があります。

Salesforce Classic で編集されたカスタム日付/時間項目と、Visualforce ページのインライン編集では、常に最新の API バージョンが使用されます。この動作のため、ICU が有効になっている場合、このカスタム項目とインライン編集では、ページの API バージョンにかかわらず、常に ICU ロケール形式が使用されます。ユーザーには、次の 2 つの状況で ParseException エラーが表示される可能性があります。

+ API バージョン 44.0 以前の Visualforce ページでユーザーがインライン編集を行い、変更を保存する。
+ ユーザーが Salesforce Classic でカスタム項目に日付/時間を入力する。

ICU が有効になっている場合にこの問題を回避するには、Apex クラス、Apex トリガー、およびカスタム Visualforce ページで必ず API バージョン 45.0 以降を使用するようにします。

+ [API バージョンの確認](https://help.salesforce.com/s/articleView?id=sf.admin_locales_check_version.htm&type=5)

困ったなぁ。自分で作ったApexクラス、Apexトリガーは全てver 45以上になっていたんですが... ベンダーさんのパッケージが... もうアンインストールしようかな

+ [API バージョンの更新](https://help.salesforce.com/s/articleView?id=sf.admin_locales_update_apis.htm&type=5)

このヘルプに記載されている方法でもパッケージは更新できませんね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/641964c8-32ee-da39-2100-ad12d4c12878.png)

編集ボタンが機能しているけど、保存してもバージョンは変わらない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/4f7ec007-e548-8994-1b23-c7e72f0487b7.png)

画面を再描画しても変わってない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/4e0ac08c-67fc-abb5-d7cd-3bb744997ce2.png)

開発者コンソールからでもできないです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/9c3409b5-fe4d-6d06-547b-77de12ac107b.png)

+ [Apex クラスを手動で更新したり、SFDX を使用したりせずに、Apex クラスの API バージョンを一括で更新する方法はありますか?](https://www.reddit.com/r/salesforce/comments/kvk962/is_there_a_way_to_update_api_version_of_apex/?rdt=58773)

# 今回のは自動でのアップデートが失敗しただけで、手動でアップデートできるそうです。

+ [テクサポ 日本](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KBOst)

>管理パッケージに含まれる Apex クラス等はバージョンを上げることができませんため、その場合にはお手数をおかけしますが手動で有効化をいただく必要がございます。

>※該当のメールを受け取った環境 (Visualforce / Apex クラス・トリガーにおいて API バージョンが 45.0 未満のものが存在する組織) は自動での有効化はされていませんが、手動での有効化は可能でございます。


>最終的にはすべての組織で ICU ロケールを有効化することが予定されています。お手数をおかけしますが、有効化されることに備えて、手動で有効化をいただき動作確認を行うことをご検討いただけますと幸いです。

+ [簡単な質問です。API バージョン 45.0 未満の Apex クラス、トリガー、VF ページ (カスタムまたはパッケージ経由) がある場合、組織で ICU ロケールが強制されますか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KfQhB0AV)

:::note
Salesforce は Summer '25 では ICU ロケール形式を強制しません。 
:::




# 同様の質問

+ [API Version 23.0 Visualforce pages in npe4 (Relationships) 3.15](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000Ke4qQ)
+ [NPSP Version and ICU Enablement Critaria](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KBO9S)

:::note
API バージョン 34 の多数のコンポーネントを含む Pardot パッケージに関して、Salesforce にケースを開きました。サポートがこれを調査中です。

また、バージョン要件を満たしていないサードパーティベンダーにも連絡しました。API バージョンが低い非アクティブなコンポーネントは ICU ローカル形式の更新に失敗しないと言われました。これを確認できますか?
:::

:::note
**Potential Errors**

If you don’t upgrade your Apex classes, Apex triggers, and custom Visualforce pages to API version 45.0 or higher, your users can receive a ParseException error. For example, "Invalid Date and Time." These errors don't cause data integrity issues, but the errors can frustrate users.

Custom date/time fields edited in Salesforce Classic and inline edits on Visualforce pages always use the latest API version. Because of that behavior, when ICU is enabled, these custom fields and inline edits always use the ICU locale formats, regardless of the page's API version. Your users can experience a ParseException error in two situations:

+ The user makes an inline edit on a Visualforce page on API version 44.0 or earlier and saves their changes.
+ The user enters a date/time in a custom field in Salesforce Classic.

To avoid these issues when ICU is enabled, ensure that your Apex classes, Apex triggers, and custom Visualforce pages use API version 45.0 or later.

https://help.salesforce.com/s/articleView?id=sf.admin_locales_update_api.htm&type=5
:::

:::note
for those of you using NPSP packages, it looks like we are getting the version updated.

Relationships will be updated to 53.0 yay - feature coming soon.

https://github.com/SalesforceFoundation/Relationships/commits/feature/updateApiVersion

+ [If we don't upgrade the ICU, what's the impact](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000Kf9oD)
:::

+ [バージョンが 45.0 以上に更新されていない場合、salesforce が Summer'25 以降に組織で更新を強制しないことを記載したドキュメントがあれば共有してください。 ](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KC8ii0AD)

:::note
[ナレッジ記事](https://help.salesforce.com/s/articleView?id=000380618&type=1)を参照してください 。  

組織にこれらのコンポーネントの下位バージョンの API が含まれている場合、Salesforce は組織で ICU ロケール形式を有効にしません。ICU ロケール形式を手動で有効にするまで、組織は JDK のままになります。 
:::

+ [Do we need to change API version for Apex Test Class as well if version is below 45?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KDkhR)

+ [I need to update my Apex Class API Version for the ICU locale format change.Do you guys have any  recommended API version for the update.    Thank you In Advance   ](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000Mabtt)

:::note
In my case, I don't want to change the API version multiple times, so I update it to the latest version. 

However, I think it's a good idea to try using the sandbox to see if there are any problems.
:::

+ [I need to get the update for  'Salesforce Channel Order App' manage package as it is using some components below API version 45 which is blocking our migration from JDK to ICU Locale format ](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000PYc7w)

+ [Had trouble upgrading API Version past 45.0?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000SWT0C)


# NPSPに関する情報

+ [API version in managed packages for Spring 25](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KDaw00AD)

:::note
And I did find this good news about Volunteers for Salesforce - looks like this one will be resolved by Summer 25: 

https://issues.salesforce.com/issue/a028c00000zketzAAA/unable-to-enable-icu-locale-formats-in-an-org-with-volunteer-for-salesforce-v4s-nonprofit-success-pack-npsp-installed-due-to-low-api-versions
:::

# ListEditor

+ [ListEditorのバージョンによる影響について](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000TR7u)