Loading
设置和维护 Salesforce 组织
采用 ICU 区域设置格式的注意事项

采用 ICU 区域设置格式的注意事项

了解 Salesforce 为何选择采用 Unicode 国际化组件 (ICU) 区域设置格式。了解我们建议在 Sandbox 中测试新格式,并在强制实施之前在生产中启用它们的原因。然后,查看关于处理已安装软件包、自定义代码和通知用户的推荐。

所需的 Edition

适用于 Salesforce Classic 和 Lightning Experience
在所有版本中可用

Salesforce 为何进行此更改?

在 Winter ’20 前,新 Salesforce 组织使用 Oracle Java Development Kit (JDK) 包含的区域设置格式。此解决方案效果良好,但存在一些问题。最重要的是,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 通常用于:

  • 创建 Web 服务。
  • 创建电子邮件服务。
  • 对多个对象执行复杂的验证。
  • 创建工作流不支持的复杂业务流程。
  • 创建自定义事务逻辑,它发生在整个事务中,而不仅仅是单个记录或对象。
  • 将自定义逻辑附加到其他操作。例如,将自定义逻辑附加到保存记录中,这样无论操作在用户界面中的什么位置执行,记录都会发生。

还要考虑公式字段和可以自定义筛选器的区域,例如对象查找。要搜索 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