CRM 4.0 报表FAQ (1)

FAQ1. CRM Report Connector有什么作用?访问报表我一定需要安装Report Connector吗?

解答: 不一定。通常你可以用下面的表格根据你客户的需求来决定是否需要安装Report Connector,毕竟安装的组件越多维护成本越高。

4.0里增加了Report Connector主要是为了解决3.0当中不能从internet上看报表的问题,同时绕过3.0里繁复的配置kerberos认证工作。

How it Works: SQL Server Reporting Services and Dynamics CRM

Capability

SQL Server Reporting Services Data Connector

Kerberos Authentication

                          注释

Works with Internet Facing Deployments

Yes

No

在IFD模式下我们使用ASP.NET Form认证

Schedule reports using the Report Scheduling wizard in CRM

Yes

No

在CRM中建立的计划报表(schedule reports)是使用CRM认证方式

Uses NT credentials to connect to SQL Views

No

Yes

Report Connector只能使用CRM认证方式 (参看FAQ2)

Access CRM reports outside of CRM

No

Yes

CRM认证方式只有CRM程序能认知

Use the CRM Report Wizard

Yes

Yes

 

Keeps CRM data secure

Yes!

Yes!

 

 

FAQ2. 安装了CRM Report Connector后我从SQL Server Report Manager里直接察看报表,总是提示我输入用户名(log in Name)和密码(Password),到底该输入什么呢?

image

解答: CRM Report Connector 安全认证的方式是使用CrmUserID作为login name, 把该用户所在的组织organizationid作为password. 所以这里你要找到当前访问报表的用户ID和所在的组织ID。GUID的格式可以包括大括号{}也可以不含大括号{}.

 

具体步骤和解释请参看如下KB文章

KB2006869 Cannot create a connection to data source 'CRM' error occurs when you run a Microsoft Dynamics CRM report in the SRS Report Manager or SRS Report Server

需要说明2点:

1) 比如你当前AD login为Bob,但是你输入的login id为另外一个用户Jack的CrmUserId,那么你要保证Bob的AD帐户属于PrivUserGroup安全组- 因为Bob需要有权限来模仿(impersonate)Jack访问报表数据。否则你会收到错误信息 “insufficient privilege to run report as user”。同样可以解释其它几个场景:

a) 通过CRM页面访问报表. 安装了CRM Report Connector后CrmAppPool的帐号会跟SQL RS 服务认证后模仿某个CRM user执行报表 ----CRMAppPool的帐号要加到PrivUserGroup安全组

b) 计划报表执行 (schedule reports).此时可能没有用户登录,所以SQL RS的帐号会用于模仿某个CRM user执行报表 ---SQL RS的帐号要加入PrivUserGroup安全组

image

 

2) 如果你不喜欢使用CRM Connector这种认证方式,或者你的ISV程序需要使用集成安全验证(Windows Integrated security)你可以通过publish reports for external use这种方式创建单独的报表。

下面是一些screenshots。当你从Report Manager里访问这些报表时候就会使用你的Windows帐号验证,完全绕过CRM Connector了。

image image

 

FAQ3. 我怎么才能验证执行报表是当前登录的帐户?报表里的数据是根据当前用户来取得?

解答: 一个简单快速的办法是运行User Summary这张报表,看看表尾的Prepared By栏目写的是谁。

image

 

FAQ4. 我不小心删除了系统报表,请问有什么办法批量恢复?

解答:   4.0当中系统报表存储有3个地方:

a) 文件系统(c:\program files\Microsoft Dynamics CRM\Reports),如下图所示

image

b) SQL report server database

c) CRM DBs (有几个库表,比如ReportBase)

 

场景1: 从CRM界面上误删了

b) 和 c)都会自动删除。解决办法是从CRM界面上选择文件系统a)的报表,重新一个一个加入报表-- 比较繁琐!

 

场景2: 从CRM 的SQL数据库表ReportBase上误删了

c)被删除了。解决办法是手动从SQL Report Mananager里把那个报表删除,然后同场景1, 从CRM界面上选择文件系统a)的报表,重新一个一个加入报表-- 比较繁琐!

 

场景3: 从SQL Report Manager界面上误删了

b)被删除了。解决办法是可以使用CRM 4.0的命令行工具PublishReports.exe (c:\program files\microsoft dynamics CRM\tools).注意,该工具和3.0不同,它不再读取文件系统a)而只是从CRM的库表ReportBase里读取报表,然后发布到(b) SQL Report Server DB. 该场景步骤同样适用于重新安装SQL Reporting Service.

谢谢 祝各位新年快乐!

Thanks

Clifford