Возврат всех типов данных для таблицы в SOQL - PullRequest
0 голосов
/ 24 октября 2019

Есть ли простой способ запрашивать и возвращать список типов данных для всех столбцов в таблице SOQL?

Я пытаюсь перенести SOQL в PostgreSQL, но у меня есть 100 таблиц и 100 столбцов, а донне хочу выполнять запросы каждого типа данных или делать это вручную.

В PostgreSQL эквивалент того, что я ищу, будет:

SELECT table_name, data_type, columns.character_maximum_length, columns.udt_name
FROM information_schema.columns
WHERE table_schema = 'public';

Если посмотреть по сторонам, мне может понадобиться перейти в Apex? Но мне интересно, есть ли более простой способ. Я не думаю, что SOQL поддерживает information_schema и не могу найти, если есть simlar

1 Ответ

0 голосов
/ 05 ноября 2019

Нет способа проанализировать схему в самом SOQL. В то время как вы можете взаимодействовать с API Describe через Apex, проще, как внешний API-клиент, сделать это через Salesforce REST API.

В частности, вы захотите нажать Global Describe конечная точка для получения списка доступных sObjects.

Для каждого sObject нажмите sObject Describe . Тело ответа включает в себя подробности поля для этого объекта sObject под клавишей fields. Тип поля указывается в каждой записи fields как type, который является высокоуровневым типом, ориентированным на пользовательский интерфейс (см. DisplayType enum), и как нижний уровень soapType, который обычно больше подходит для хранения базы данных и взаимодействия API.

Обратите внимание, что в обоих случаях API будет применять FLS и CRUD на основе учетных данных аутентифицированной учетной записи пользователя. Если вошедший в систему пользователь с такими учетными данными не имеет разрешения на просмотр объекта или поля, ваше внешнее приложение также не сможет это сделать.

...