Я заметил, что метаданные пользовательских объектов (полей, объектов), которые я извлекаю из своей организации разработчиков с помощью браузера организации (код VS), содержат элемент <deprecated>false</deprecated>. Документация для CustomField просто говорит deprecated / boolean / Reserved for future use. То же самое для Пользовательский объект.

То есть, теперь, когда SFDX: Diff File Against Org не работает почти месяц, это еще один шаг к ситуации, когда я фактически не могу сравнить то, что у меня есть в моем проекте, с тем, что есть в Org. До этой новой разработки я все еще мог делать такое сравнение, используя Beyond Compare; но теперь, когда файл помечен как другой, я не знаю, является ли он просто элементом <deprecated> или нет...

Вопросов:

  • Могу ли я просто удалить элементы <deprecated>?
  • Могу ли я что-нибудь сделать, чтобы предотвратить распространение элементов <deprecated> в моем коде?
  • Кто-нибудь может дать полезный совет, как справиться с этой ситуацией?

Кажется, подобное произошло почти восемь лет назад: см. -pa?r=SearchResults&s=24%7C33.9730">этот пост.

2
willeg 5 Дек 2021 в 02:16

1 ответ

Лучший ответ

<deprecated>false</deprecated> Где это задокументировано, Откуда это берется?

Насколько я могу судить, на данный момент он не используется, но намерение состоит в том, что если вы обновите разблокированный или управляемый пакет, для этого поля будет установлено значение true, что означает, что компонент больше не «используется». Я не уверен, используется ли он для этой цели прямо сейчас, но, похоже, это его будущий вариант использования.

Могу ли я просто удалить элементы <deprecated>?

Да, вы можете смело игнорировать эти элементы.

Могу ли я что-нибудь сделать, чтобы предотвратить распространение элементов <deprecated> в моем коде?

Кто-нибудь может дать полезный совет, как справиться с этой ситуацией?

Они должны зависеть от версии. Убедитесь, что вы используете одну и ту же версию API для всех исходных метаданных (находится в sfdx-project.json). Если у вас есть привычка повышать версию, но не обновлять файлы, это может быть причиной. Установка его обратно примерно на 50,0 или около того должна предотвратить появление этого поля.

(Примечание: я проведу собственное тестирование, но не стесняйтесь, дайте мне знать, если вы найдете подходящую версию для этого атрибута).

Вы можете безопасно массово удалить эти атрибуты (например, VS Code Find in Files/Replace All) или убедитесь, что вы обновили все свои метаданные с помощью нового force:source:pull или force:source:retrieve, чтобы привести все в соответствие.

3
sfdcfox 5 Дек 2021 в 02:53
Я работаю с проектом, использующим версию 52.0, с начала этого года и никогда не видел атрибут deprecated до прошлой недели; Недавно я добавил несколько потоков, инициируемых записью, которые показывают версию 53.0 (я думаю, нельзя выбрать версию API потоков в инструменте построения потоков), и потому что я не знаю, в чем будет разница , я не изменил этот параметр в метаданных.
 – 
willeg
5 Дек 2021 в 18:37