查询 Salesforce 对象列名称 w/SOQL

Querying Salesforce Object Column Names w/SOQL

我在 Salesforce 实例和 S3 存储桶之间的 SnapLogic 集成中使用 Salesforce SOQL 快照。

我正在尝试在 Salesforce SOQL 快照字段中使用 SOQL 查询 "SOQL query*" 到 return 对象的列名称。例如,我想 运行 SOQL 查询 return "Account" 对象的列名。

我这样做是因为 SOQL 不允许 "Select *"。我已经在 Apex 中看到了代码解决方案,但我正在寻找一种仅使用 SOQL 查询的方法。

您想查询元数据吗?可用 table 的名称,您可以在每个 table 中看到的列的名称,可能是类型而不是真实的 Account/Contact/... 数据,正确吗?

您可能需要将 API 的版本提高一点,当前为 47 / 48,因此某些对象在您当前的版本中可能不可见。另外 - 您有哪些 API 选项?肥皂,休息? "Tooling API" 是一个选项吗?因为官方有很好的FieldDefinitiontable来拉这个

它并不完美,但这可以帮助您入门:

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

我在 REST API 参考中没有看到 table,但它似乎在 Workbench 中查询正常,所以还有希望。

通常尝试 Google 围绕 EntityDefinition、FieldDefinition、EntityParticle...例如,这是学习哪些 table 对您可见的不错的机会:

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

或者在紧要关头,您可以尝试查看您的用户有权查询哪些字段。这有点迂回,但我不知道你的连接器 table 可以 "see".