Dynamics 365 POA表记录的查询

微软动态CRM专家罗勇 ,回复313或者20190311可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。

PrincipalObjectAccess表是用于共享记录,这个表如果记录太多,会导致系统整体性能下降,最好能控制下记录数量。

如果部署的是Dynamics 365 Customer Engagement On-Premise版本,直接上数据库查询可以,执行如下T-SQL即可。

select count(*) from PrincipalObjectAccess with (nolock)

如果估计返回记录不超过5000行记录,也可以直接用Web API来查看,带上$count=true即可,实例代码如下:

https://demo.luoyong.me/api/data/v9.0/principalobjectaccessset?$select=principalobjectaccessid&$count=true

https://demo.luoyong.me/api/data/v9.0/principalobjectaccessset?$select=principalobjectaccessid&$filter=objecttypecode eq 'template'&$count=true

执行效果类似如下,如果返回的 @odata.count 元素值等于5000,请不要相信这是准确数据,请用后面的方法查看。

 如果前面返回的记录数为5000,但是估计在5万条下,也可以执行使用类似如下的URL进行查询,当然如果超过5万行会报错。

https://demo.luoyong.me/api/data/v8.2/principalobjectaccessset?fetchXml=%3Cfetch%20aggregate=%27true%27%20version=%271.0%27%20mapping=%27logical%27%20distinct=%27false%27%3E%0A%C2%A0%3Centity%20name=%27principalobjectaccess%27%3E%0A%C2%A0%C2%A0%3Cattribute%20aggregate=%27count%27%20alias=%27recordscount%27%20name=%27principalobjectaccessid%27%20/%3E%0A%C2%A0%3C/entity%3E%0A%3C/fetch%3E%0A%20%20%20%20

这其实是用Web API执行如下的聚合FetchXml:

<fetch aggregate='true' version='1.0' mapping='logical' distinct='false'>
   <entity name='principalobjectaccess'>
      <attribute aggregate='count' alias='recordscount' name='principalobjectaccessid' />
  </entity>
</fetch>

如果超过5万行的话怎么计数?当然我不会阻拦你自己写程序来做,但是我已经有工具了,建议你不要重复造轮子。参考我的博文:无依赖简单易用的Dynamics 365实体记录数计数器并能计算出FetchXml返回的记录数 。直接执行如下的FetchXml即可:

<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
   <entity name='principalobjectaccess'>
      <attribute name='principalobjectaccessid' />
  </entity>
</fetch>

也可以对这个实体做筛选,类似如下的FetchXml:

<fetch version='1.0' mapping='logical' distinct='false'>
   <entity name='principalobjectaccess'>
      <attribute name='principalobjectaccessid' />
      <filter type='and'>
         <condition attribute='objecttypecode' operator='eq' value='2010' />
    </filter>
  </entity>
</fetch>

执行效果如下图所示:

你可能会有疑问,怎么看一个实体的ObjectTypeCode的值,根据实体的逻辑名称来查看实体的ObjectTypeCode用类似如下的URL:

https://demo.luoyong.me/api/data/v9.0/EntityDefinitions(LogicalName='account')?$select=EntitySetName,ObjectTypeCode

你可能还会问,如果根据ObjectTypeCode来看是哪个实体,用如下的URL即可:

https://demo.luoyong.me/api/data/v9.0/EntityDefinitions?$select=EntitySetName,LogicalName&$filter=ObjectTypeCode eq 2010

 

转载于:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Query_POA_principalobjectaccess.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值