Loading
Настройка и обслуживание организации Salesforce
Версии API для классов Apex, триггеров Apex и страниц Visualforce

Версии API для классов Apex, триггеров Apex и страниц Visualforce

Региональные форматы международных компонентов Юникода (ICU) доступны в версии API 45.0 или более поздней. Чтобы использовать региональные форматы ICU в настройках, обновите классы Apex, триггеры Apex и страницы Visualforce к последней версии API..

Требуемые версии

Доступно в версиях: Salesforce Classic и Lightning Experience
Доступно в версиях: все версии
Необходимые полномочия пользователя
Для определения, редактирования, удаления, настройки параметров безопасности и настройки версий для классов Apex: Автор Apex
Для выполнения тестов Apex: Просмотр настройки и конфигурации
Для просмотра триггеров Apex: Просмотр настройки и конфигурации
Для редактирования триггеров Apex: Автор Apex

Salesforce добавил региональные форматы ICU в выпуске Spring ’19, которые соответствовали версии API 45.0. Когда региональные форматы ICU включены, все предоставленные функции Salesforce используют форматы ICU. Однако, классы Apex, триггеры Apex и страницы Visualforce используют региональные форматы только в том случае, если ICU включен, а версия API страницы Apex или Visualforce — 45.0 или более поздняя.

Настраиваемый код и компоненты, использующие версию API 44.0 или более раннюю, не могут ссылаться на региональные форматы ICU, поскольку они не существуют в этой версии API. В этом случае настраиваемый код и компоненты возвращают региональные форматы JDK, даже если в организации включены регионы ICU.

Каждая страница Visualforce, класс Apex и триггер Apex имеют версию API. Исходная версия API всегда является версией API организации Salesforce при создании компонента.

Новая версия API доступна в каждом выпуске Salesforce. Однако, Salesforce не обновляет версию API классов Apex, триггеров Apex и страниц Visualforce, поскольку мы не можем протестировать их на наличие потенциальных проблем. В идеале, вы обновляете версию API для компонентов и проверяете код в каждом выпуске, но иногда этого не происходит. Поэтому, например, класс Apex может использовать API версии 41.0 в организации с версией API 63.0.

Независимые поставщики ПО (ISV) также используют классы Apex, триггеры Apex и страницы Visualforce для предоставления функций в пакетах. ISV отвечают за обновление версий API компонентов пакета.

Пример сценария и потенциальных ошибок

Каким ожидаемым эффектом для организации являются включенные региональные форматы ICU, а также классы Apex, триггеры Apex и страницы Visualforce, не соответствующие минимально требуемой версии API 45.0?

Рассмотрим регион «Испанский (США) [es_US]» в качестве примера. Форматы коротких дат JDK и ICU отличаются порядком отображения месяца и дня.

  • Короткий формат даты JDK для es_US: ММ/дд/ггг (пример: 2/11/2021)
  • Короткий форматы даты ICU для es_US: дд/ММ/гггг (пример: 11/2/2021)

В организации с включенными региональными форматами ICU все стандартные и настраиваемые компоненты пользовательского интерфейса, независимо от версии API, будут отображать даты в формате ICU как дд/ММ/ггг. Настраиваемые компоненты, использующие версию 44.0 или ниже, отобразят неправильную дату. Например, дата JDK 11 февраля 2021 года (2/11/2021) отобразится в региональном формате ICU как 2 ноября 2021 года (2/11/2021).

В других сценариях несоответствие месяца и дня приводит к недопустимой дате. Например, дата JDK 28.11.2021 (ММ/дд/ггг) приводит к ошибке ParseException "Недопустимые дата и время", когда региональный формат ICU пытается отобразить его как (дд/ММ/ггг). Ошибка возникает из-за отсутствия 28-го месяца.

Настраиваемые поля даты/времени, редактируемые в Salesforce Classic и посредством встроенного редактирования на страницах Visualforce, всегда используют текущую версию Salesforce API. Из-за этого алгоритма, если ICU включен, эти настраиваемые поля и встроенные правки всегда используют региональные форматы ICU, вне зависимости от версии API страницы Visualforce. Ваши пользователи могут столкнуться с ошибкой ParseException в двух ситуациях:

  • Пользователь выполняет встроенное редактирование на странице Visualforce в API версии 44.0 или более ранней и сохраняет изменения с недопустимой датой в региональном формате ICU (например, 28.11.2021 в регионе es_US).
  • Пользователь вводит дату/время в настраиваемое поле в Salesforce Classic.

Во избежание этих проблем при включении ICU, убедитесь, что классы Apex, триггеры Apex и настраиваемые страницы Visualforce используют API версии 45.0 или более позднюю.

Компоненты в управляемых пакетах

В вашей организации есть два источника для классов Apex, триггеров Apex и страниц Visualforce. Либо кто-то создал их напрямую в вашей организации, либо они были добавлены в управляемый пакет, который был установлен.

Только ответственные за пакет могут редактировать компоненты, добавленные в управляемый пакет. Элементы, установленные управляемым пакетом, отображаются в списках, но не могут быть изменены. Чтобы получить обновления для этих элементов, необходимо установить новую версию пакета, содержащую обновления.

Если вы являетесь ответственным за пакет, обновите пакет, чтобы использовать последнюю версию API в классах Apex, триггерах Apex и страницах Visualforce, ссылающихся на даты, время, целые числа и валюты.

  • Проверка версий API
    Не уверены, есть ли в вашей организации классы Apex, триггеры Apex и страницы Visualforce? У каждого есть список в настройках, содержащий номер версии.
  • Обновление версии API
    Версия API 45.0 является минимальной обязательной версией для ICU.
 
Загрузка
Salesforce Help | Article