使用FetchXML制作Dynamics CRM Online 高级报表
Posted Jeff Xiong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用FetchXML制作Dynamics CRM Online 高级报表相关的知识,希望对你有一定的参考价值。
今天给大家分享一篇关于制作报表的文章,今天我们不用SQL来做报表,我们用FetchXML来做。这次我们的测试环境是Dynamics CRM Online,大家应该知道,Dynamics CRM Online只能部署基于FetchXML制作的SSRS报表。
既然说到了高级报表,那肯定是有它的卖点:这里的高级是指,我们的报表可以通过CRM 高级查找界面去定义数据源,不像普通的SSRS报表,数据源都是固定的不能变更。
下面给大家说下我们这个报表的应用场景:
客户和销售记录是1对多关系,但是很多情况下,客户记录下面却是了销售记录,这样的脏数据会导致很多系统问题,所以我们想要找一个办法把所有缺少销售数据的客户记录列出来。
解决思路也是很简单的,我们只需要对客户和销售数据做一个左连接,就可以轻松的把缺少销售数据的客户记录拉出来了。既然思路确定了,我们就开始制作高级报表吧:
首先是要SQL Server Tool创建一个报表项目,然后添加一个空白报表,并为其添加数据源
为其添加一个parameter,这个参数主要用来实现的‘高级’功能--是要高级查找界面定义数据源
为Parameter命令,这里的命名规则是固定的,需要遵从CRM_FilteredXXXXX规律,例如:CRM_FilteredAccount,后面需要接主记录的视图名称,这里我们的主记录是Acount,主要Account的首字母要大写。
为Parameter指定默认值,我们这里默认为所有客户记录,大家可以根据自己的情况而定
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="account">
<all-attributes/>
</entity>
</fetch>
配置数据集合,我们这里使用了如下的FetchXML:
<fetch distinct="true" >
<entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
<attribute name="accountid"/>
<attribute name="accountnumber"/>
<attribute name="name"/>
<link-entity name="p_csd" from="p_customer" to="accountid" alias="csd" link-type="outer">
<attribute name="p_csdid"/>
</link-entity>
<filter type="and">
<condition entityname="csd" attribute="po_csdid" operator="null"></condition>
</filter>
</entity>
</fetch>
一起完事后,预览报表,没问题的话,将其上传至CRM中,它的运行效果如下:
以上是关于使用FetchXML制作Dynamics CRM Online 高级报表的主要内容,如果未能解决你的问题,请参考以下文章
Dynamics CRM2016 Web API之Use custom FetchXML
Dynamics CRM 2015/2016 Web API:聚合查询
Dynamics CRM 2015/2016 Web API:聚合查询
Dynamics CRM 2015/2016 Web API:聚合查询