Запрос имен столбцов объекта Salesforce с SOQL - PullRequest
2 голосов
/ 05 февраля 2020

Я использую оснастку Salesforce SOQL в интеграции SnapLogi c между нашим экземпляром Salesforce и корзиной S3.

Я пытаюсь использовать запрос SOQL в поле привязки SOQL Salesforce «Запрос SOQL *», чтобы вернуть имена столбцов объекта. Например, я хочу выполнить запрос SOQL, чтобы вернуть имена столбцов объекта «Account».

Я делаю это, потому что SOQL не разрешает «Select *». Я видел решения для кода в Apex для этого, но я ищу способ сделать это, используя только запрос SOQL.

Salesforce SOQL Snap

1 Ответ

3 голосов
/ 05 февраля 2020

Вы хотите запросить метаданные? Имена доступных таблиц, имена столбцов, которые вы можете видеть в каждой таблице, возможно, типы вместо реальных данных Account / Contact / ..., правильно?

Возможно, вам придется немного увеличить версию API. текущий - 47/48, поэтому некоторые объекты могут быть не видны в текущем. Кроме того - какие параметры API у вас есть? SOAP, ОТДЫХ? Является ли «Tooling API» опцией? Потому что у него есть очень хорошая официальная таблица FieldDefinition для этого.

Она не идеальна, но это может помочь вам начать:

SELECT EntityDefinition.QualifiedApiName, QualifiedApiName, DataType
FROM FieldDefinition
WHERE EntityDefinition.QualifiedApiName IN ('Account', 'Contact', 'myNamespace__myCustomObject__c')

screenshot of sample results showing Account standard fields' API names, common in most SF instances in the world

Я не вижу таблицу в справочнике по REST API, но кажется, что в Workbench она запрашивает «ОК», поэтому есть надежда. EntityParticle ... Например, это хороший способ узнать, какие таблицы видны вам:

SELECT KeyPrefix, QualifiedApiName, Label, IsQueryable, IsDeprecatedAndHidden, IsCustomSetting
FROM EntityDefinition
WHERE IsCustomizable = true AND IsCustomSetting = false

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

...