Доступ к метаданным CustomFieldDefinition через API инструментов
Итак, я пытался собрать зависимости раскрывающегося списка для каждого типа записи Opportunity для моих компонентов Lightning. Мне удалось получить зависимости стандартного поля с помощью RecordType, но API инструментов не вернет зависимости настраиваемого поля. Стандартные вызовы и запросы также не будут работать, поскольку в них указано, что поле не имеет управляющего значения или зависимости.
Учитывая эту информацию, я подозревал, что где-то спрятана таблица, содержащая ключи для RecordType и FieldDefinition, надеюсь, с вложенным объектом метаданных.
Я нашел идентификатор в одном из параметров в меню настройки для типа записи и Id.getSObjectType()
в теме. Имя таблицыCustomFieldDefinition
. Однако он недоступен через SOQL или Tooling API.
Кто-нибудь обращался к этой таблице? Или кто-нибудь смог получить зависимости раскрывающегося списка типа записи поля от настраиваемых полей И стандартных полей?Журнал отладки отклика Tooling API с именем SObject
1 ответ
Я думаю, вы делаете это неправильно.
"Управляющим полем" может быть другой список выбора или флажок, например, что-то, что вы изменяете во время того же действия редактирования. Если у вас есть зависимость от типа записи - в этом смысле это не управляющее поле. Конечно, вы меняете тип записи и изменения в раскрывающемся списке, но на самом деле все должно измениться, это должен быть другой макет страницы (показаны разные поля, помечены только для чтения / обязательные и т. Д.). Есть причина, по которой изменение типа записи не выполняется на обычном экране редактирования, вы делаете это, щелкая специальную ссылку в подробном просмотре, и тогда все "взрывается".
- Посмотрите на "User Interface API" - (? Мобильный рабочий стол) набор инструментов, предназначенных, чтобы помочь вашим пользовательским приложениям
украстьвосстановить нормальный макет страницы. Это может быть особенно полезно: https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_resources_picklist_values_collection.htm - Есть даже Trailhead: https://trailhead.salesforce.com/en/content/learn/modules/user-interface-api (просмотреть весь набор, но особенно прочитать последний модуль)
- А поскольку вы упомянули компоненты Lightning - знаете ли вы об этих готовых инструментах:
- https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_ui_api
- getPicklistValuesByRecordType
- https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_generate_record_input_create
- или, может быть, вам не нужно все это кодировать и тому подобное
<lightning-record-edit-form>
с переданным recordtypeid решит все ваши проблемы
Посмотрите, если я не дал вам рабочего решения, то, по крайней мере, у вас есть несколько ключевых слов для Google. Если вы все еще застряли - попробуйте опубликовать образец кода в качестве нового вопроса?