MSD CRM:获取 CRM 中所有实体的记录数

MSD CRM: Get the count of records of all entities in CRM

我正在努力获取 CRM 中可用的每个实体的记录数。我已经看到互联网上有很多可用的解决方案但是我在数据库中进行了搜索(正如我们在本地部署的那样)并找到了一个名为 'RecordCountSnapshot' 的 table有计数(并回答我的问题)。我想知道我们能否以某种方式查询 table 并获取计数。

我尝试过使用 OData 查询生成器,我能够准备查询但无法获得结果。

查询:

结果:

我们正在使用 CRM 2015 本地版本。

获取所有实体计数的一个选项是运行针对 MSCRM 数据库的SQL查询:

SELECT SO.Name, SI.rows 
FROM sysindexes SI, SysObjects SO 
WHERE SI.id = SO.ID AND SO.Type = 'U' AND SI.indid < 2 
order by rows DESC

我还构建了一个处于 Beta 测试中的命令行应用程序,运行s 是所有实体的计数。有兴趣可以聊聊

转到Settings -> Customizations -> Developer Resources -> Service Endpoints -> Organization Data Service

点击 /XRMServices/2011/OrganizationData.svc/ 打开,缺少 RecordCountSnapshot 的定义。这意味着该实体不可由 OData 提供服务。即使您修改其他 OData 查询 url 以使用 RecordCountSnapshotSet,您也会收到 'Not found' 错误。 (我在 CRM REST 构建器中试过)

1) 由于您在 Onpremise 中,您可以使用此查询:

SELECT TOP 1000 [Count]
,[RecordCountSnapshotId]
,entityview.ObjectTypeCode, Name
FROM [YOURCRM_MSCRM].[dbo].[RecordCountSnapshot] , EntityView 
where entityview.ObjectTypeCode = RecordCountSnapshot.ObjectTypeCode
and count > 0 order by count desc

2) 在 Odata 查询设计器 中,您有 统计数据 选项卡。用它来获取记录数。