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),到底该输入什么呢?
解答: CRM Report Connector 安全认证的方式是使用CrmUserID作为login name, 把该用户所在的组织organizationid作为password. 所以这里你要找到当前访问报表的用户ID和所在的组织ID。GUID的格式可以包括大括号{}也可以不含大括号{}.
具体步骤和解释请参看如下KB文章
需要说明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安全组
2) 如果你不喜欢使用CRM Connector这种认证方式,或者你的ISV程序需要使用集成安全验证(Windows Integrated security)你可以通过publish reports for external use这种方式创建单独的报表。
下面是一些screenshots。当你从Report Manager里访问这些报表时候就会使用你的Windows帐号验证,完全绕过CRM Connector了。
FAQ3. 我怎么才能验证执行报表是当前登录的帐户?报表里的数据是根据当前用户来取得?
解答: 一个简单快速的办法是运行User Summary这张报表,看看表尾的Prepared By栏目写的是谁。
FAQ4. 我不小心删除了系统报表,请问有什么办法批量恢复?
解答: 4.0当中系统报表存储有3个地方:
a) 文件系统(c:\program files\Microsoft Dynamics CRM\Reports),如下图所示
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