我在 Salesforce 实例和 S3 存储桶之间的 SnapLogic 集成中使用 Salesforce SOQL snap。
我正在尝试在 Salesforce SOQL 快照字段“SOQL 查询*”中使用 SOQL 查询来返回对象的列名。例如,我想运行 SOQL 查询以返回“Account”对象的列名。
我这样做是因为 SOQL 不允许“选择 *”。我已经在 Apex 中看到了代码解决方案,但我正在寻找一种仅使用 SOQL 查询的方法。
我在 Salesforce 实例和 S3 存储桶之间的 SnapLogic 集成中使用 Salesforce SOQL snap。
我正在尝试在 Salesforce SOQL 快照字段“SOQL 查询*”中使用 SOQL 查询来返回对象的列名。例如,我想运行 SOQL 查询以返回“Account”对象的列名。
我这样做是因为 SOQL 不允许“选择 *”。我已经在 Apex 中看到了代码解决方案,但我正在寻找一种仅使用 SOQL 查询的方法。
您想查询元数据吗?可用表的名称,您可以在每个表中看到的列的名称,可能是类型而不是真实的 Account/Contact/... 数据,对吗?
您可能需要稍微提高 API 的版本,当前为 47 / 48,因此某些对象可能在您当前的版本中不可见。另外 - 你有什么 API 选项?肥皂,休息?“工具 API”是一种选择吗?因为它有非常好的官方FieldDefinition
表来拉这个。
它并不完美,但这可以让你开始:
SELECT EntityDefinition.QualifiedApiName, QualifiedApiName, DataType
FROM FieldDefinition
WHERE EntityDefinition.QualifiedApiName IN ('Account', 'Contact', 'myNamespace__myCustomObject__c')
我在 REST API 参考中没有看到该表,但它似乎在 Workbench 中查询 OK,所以有希望。
通常尝试在 Google 上搜索有关 EntityDefinition、FieldDefinition、EntityParticle 的信息……例如,这是一个很好的了解哪些表对您可见的方法:
SELECT KeyPrefix, QualifiedApiName, Label, IsQueryable, IsDeprecatedAndHidden, IsCustomSetting
FROM EntityDefinition
WHERE IsCustomizable = true AND IsCustomSetting = false
或者在紧要关头,您可以尝试查看您的用户有权查询哪些字段。这样做有点迂回,但我不知道您的连接器可以“看到”哪些表。