如何通过Salesforce各类API获取表与报表、报表与仪表板的血缘关联?
Salesforce 数据血缘关系检索可行方案
1. 表(对象)与报表的关联
通过Tooling API查询Report和ReportMetadata对象可获取这类关联:
- 先查询
Report对象拿到目标报表的Id,再关联ReportMetadata(通过ReportId字段),在ReportMetadata的aggregations、columns、filters字段中,能提取出报表引用的对象API名称(比如Account、Opportunity)。 - 示例SOQL查询:
SELECT Id, DeveloperName, (SELECT AggregateField, Columns, Filters FROM ReportMetadata) FROM Report WHERE DeveloperName = 'Target_Report_Name'
部分特殊报表(如联合报表)的数据源信息可直接查看Report对象的DataSource字段。
2. 报表与仪表板的关联
借助Tooling API或REST API查询DashboardComponent对象即可建立映射:
DashboardComponent的DashboardId对应仪表板ID,ReportId对应关联的报表ID,通过这个对象能直接关联两者。- 关联名称的示例SOQL查询:
SELECT dc.Id, d.DeveloperName AS DashboardName, r.DeveloperName AS ReportName FROM DashboardComponent dc JOIN Dashboard d ON dc.DashboardId = d.Id JOIN Report r ON dc.ReportId = r.Id WHERE dc.ReportId != null
关键提示
- 复杂报表的字段引用需要解析
ReportMetadata中的JSON结构来提取对象信息。 - 确保你的API权限包含
Report、Dashboard、DashboardComponent对象的查询权限。 - Metadata API侧重元数据部署/检索,不适合直接查询血缘关系,Tooling API是这类场景的首选。
内容的提问来源于stack exchange,提问作者Elie Ladias
相关产品推荐
相关产品推荐

