Loading
設定並維護您的 Salesforce 組織
採用 ICU 地區設定格式的考量事項

採用 ICU 地區設定格式的考量事項

瞭解 Salesforce 為何選擇採用 International Components for Unicode (ICU) 地區設定格式。瞭解我們為何建議在 Sandbox 中測試新格式,並在強制執行之前在生產中啟用這些格式。然後檢閱關於處理已安裝封裝、自訂程式碼以及通知使用者的建議。

必要版本

提供版本:Salesforce Classic 與 Lightning Experience
提供版本:所有版本

為什麼 Salesforce 要進行此項變更?

在 Winter ‘20 之前,新建立的 Salesforce 組織也同樣使用 Oracle 之 Java Development Kit (JDK) 的地區設定格式 。此解決方案運作良好,但仍然有些問題。最重要的是,這些 JDK 地區設定格式與國際化最佳作法不一致,且無法定期更新。

ICU 是一種國際標準,由全球社群負責維護與管理。新格式可提供 Salesforce 平台中一致的體驗,並改善與全球 ICU 相容之應用程式的整合。透過採用 ICU 地區設定格式,我們可使用這些國際標準確保 Salesforce 與您在 Salesforce 上的業務保持在最新狀態。

請勿等待 Salesforce 啟用

在 Winter ’20 或更新版本中建立的 Salesforce 組織依預設會啟用 ICU 地區設定格式。建議尚未切換至 ICU 地區設定格式的組織手動更新。

在所有 Apex 類別、Apex 觸發和 Visualforce 頁面皆使用 API 45 版或更新版本的組織上,使用「啟用 ICU 地區設定格式」版本更新。地區設定控制日期、時間、貨幣、地址、名稱和數值的格式。從 JDK 移至 ICU 地區設定格式可能會影響使用者,並導致資料錯誤輸入。因此,我們建議使用 JDK 地區設定格式的客戶在強制執行此變更之前,先測試並啟用此變更。

在 Sandbox 中進行測試

在生產組織中啟用 ICU 地區設定格式之前,請先使用 API 45.0 版及更新版本在 Sandbox 組織中進行測試。在 Sandbox 中進行測試可發現任何與自訂程式碼和第三方整合有關的問題。

採用新 API 版本的影響

如需取得 ICU 地區設定格式、Apex 類別、Apex 觸發和參照地區設定格式的 Visualforce 頁面的最佳結果,請使用 API 45.0 版或更新版本。如果您的組織包含 API 44.0 版或更早版本的項目,請更新 API 版本,以免造成資料整合問題及一般使用者混淆。

更新 API 版本可能會包含物件的結構與行為變更,以及其他程式碼元件。例如,更新可包含物件上的新欄位、移除欄位,以及變更的行為。我們建議您升級 API 版本,並在更新生產之前,先完成 Sandbox 中所有相關功能的徹底測試。

Visualforce 頁面上的 ICU 和內嵌編輯

Visualforce 頁面上的內嵌編輯一律使用最新的 API 版本。由於此行為,因此當啟用 ICU 時,Visualforce 頁面上的內嵌編輯會一律使用 ICU 地區設定格式,無論頁面的 API 版本為何。當使用者在 API 44.0 版或更早版本的 Visualforce 頁面上進行內嵌編輯並儲存其變更時,會收到 ParseException 錯誤。例如「無效日期和時間」。這些錯誤不會導致資料整合問題,但會讓使用者感到混亂。

若要避免啟用 ICU 時發生這些錯誤,請確保您的自訂 Visualforce 頁面使用 API 45.0 版或更新版本。

已安裝的封裝

在您開始測試之前,請先與您的封裝提供者確認所有已安裝的封裝都與 ICU 地區設定格式相容。如果您的封裝提供者指出其中一個已安裝封裝的修正在等待處理,請將該問題納入您的測試和啟用時程表中。

如果您是封裝提供者,請將封裝中的 Apex 類別、Apex 觸發和 Visualforce 頁面更新為 API 45.0 版或更新版本。更新任何需要或傳送特定地區設定格式的自訂程式碼。然後在啟用 ICU 的組織中測試您的封裝。請確認所有變更的格式都如預期顯示,並視需要更新您的程式碼。

自訂程式碼

許多組織包含自訂程式碼。Lightning 元件可讓您自訂 Lightning Experience、Salesforce 行動應用程式,或建立您自己的獨立應用程式。透過 Apex,選項範圍更廣。

Apex 通常用於:

  • 建立網路服務。
  • 建立電子郵件服務。
  • 透過多重物件執行複雜驗證。
  • 建立工作流程不支援的複雜業務流程。
  • 建立自訂交易邏輯,其會在整個交易中發生,而不只是對單一記錄或物件。
  • 將自訂邏輯附加至另一個作業。例如,將自訂邏輯附加到儲存記錄,使其每當執行作業時便會發生,無論作業源自使用者介面的何處。

另請考慮公式欄位及您可以自訂篩選條件的區域,例如物件對應。若要搜尋您的 Salesforce 程式碼,請下載中繼資料。然後使用指令行介面,例如 Salesforce CLI

如需有關檢閱和更新自訂程式碼的步驟詳細資訊,請參閱 Salesforce 說明中的〈自訂程式碼和地區設定格式變更〉。此區段也提供當自訂程式碼依賴特定日期、時間與貨幣格式時可能發生的錯誤範例。使用此資訊瞭解如何測試自訂功能。

如果外部開發人員或顧問已建立自訂程式碼,而您沒有可執行評估的開發人員,請從測試自訂功能開始。如果發現問題,請考慮與外部開發人員或顧問契約,以協助評估您組織中的自訂程式碼。

通知您的使用者和合作夥伴

讓您的使用者知道您何時計畫在生產環境中啟用 ICU,以及新地區設定會對他們造成什麼影響。否則,JDK 與 ICU 地區設定格式之間的差異可能造成混淆。

例如,若是使用西班牙文 (宏都拉斯) 地區設定,當您啟用 ICU 地區設定格式時,系統便會將簡短日期格式從 MM-dd-yyyy 變更為 dd-MM-yyyy。請確保您的使用者知道此變更,否則他們可能誤將 01-11-2021 解譯為 2021 年 1 月 11 日,而非 2021 年 11 月 1 日。

在生產環境中啟用 ICU 之前和之後,可能需要多次提醒才能接觸到每個使用者。

請考慮通知您的合作夥伴,特別是當這些合作夥伴與 Salesforce 傳送資訊或從 Salesforce 擷取資訊時。可能需要他們協助解決與整合相關的問題。

使用地區設定格式

我們提供所有可能地區設定格式的清單,但並非所有格式都會用於 Salesforce 中。例如,標準 Salesforce 畫面幾乎所有的日期皆使用簡短日期格式,這無法在標準畫面上修改。

同樣地,並非所有格式都可用於自訂程式碼中。具體而言,目前的中型日期格式無法在 Apex 中使用。

 
正在載入
Salesforce Help | Article