上一次我们在创建了一个基本报表并且部署在SCOM的Report 服务器上
然后我们可以在控制台查看这个报表了,
今天我们来看看怎么把这个report 嵌入MP 随着你导入MP自动把报表部署到report服务上
好了 不再废话 还是那句话 要喷的出门左转不谢
今天你要准备的工具
一个VS 一个是System Center Visual Studio Authoring Extensions
VS 不用多说了全宇宙最NB的IDE
System Center Visual Studio Authoring Extensions 是VS的一个关于写MP的扩展
当然你安装好扩展后
打开VS 就可开始写MP了
好了 现在打开你的VS 创建新工程
如下图所示 至于你要创建那个版本的随便 我是选得12R2 这样12R2 16 都能用
然后选位置保存 这个你随意
然后注意下References 部分 要如下所示 引用这些
如果你没有这些引用 请去你的OM的安装镜像去找 .MP文件 文件名就是这下面显示的例如Microsoft.system.center.datawarhouse.library
然后在工程右键点添加 新建项 Empty ManagmentPack Fragment 选择如下图所示
然后把你做好的报表 XXXX.RDL文件 添加到工程 并且 右键选择属性
将Build Action 该成Embedded Resource 这样当VS 编译这个MP时候 会嵌入进MP
好了
大概准备好了
我们下面要做这么几个事情
1 改变原有报表的数据源 因为我们一开始是手动指定的数据源服务器 当我们要嵌入MP的时候 我们所指定的报表数据源是无效的 所以我们要改变一下
在VS里双机你刚才添加的rdl文件 会按照xml格式打开
找到 下面这部分 Name="DataSource1" 请注意 如果你是DataSource1 那么经过替换之后 这个名字不要换 不然你的数据集是找不到数据源的
并且替换
<DataSource Name="DataSource1">
</DataSource>
替换为
<DataSource Name="DataSource1">
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>Data Source=omsql;Initial Catalog=OperationsManagerDW</ConnectString>
<IntegratedSecurity>true</IntegratedSecurity>
</ConnectionProperties>
<rd:SecurityType>Integrated</rd:SecurityType>
<rd:DataSourceID>33604ba9-136e-48d9-a820-67e3dd0dcd22</rd:DataSourceID>
</DataSource>
这样我们就把自定义的数据源替换了 替换成om自己的默认报表数据源 这样在导入MP的时候OM会自己根据自己的report server进行连接
然后打开我们刚创建的 Fragment
清空内容 并且将下面内容加进去
<?xml version="1.0" encoding="utf-8"?>
<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TypeDefinitions />
<Monitoring />
<ConfigurationGroups />
<Templates />
<PresentationTypes />
<Presentation />
<Reporting>
<Reports>
<Report ID="rep.NewReport" Accessibility="Public" Visible="true">
<ReportDefinition>Res.rep.NewReport</ReportDefinition>
</Report>
</Reports>
</Reporting>
<Resources>
<ReportResource ID="Res.rep.NewReport" Accessibility="Internal" FileName="rep.NewReport.rdl" MIMEType="application/octet-stream" HasNullStream="false" />
</Resources>
</ManagementPackFragment>
我来解释下里面重要的地方
rep.NewReport 就是你打算把报表叫什么名字 跟你的报表文件的文件明一样就行
FileName="rep.NewReport.rdl" 这里rep.NewReport.rdl就是我们刚才加进来的rdl的文件名字 其他的地方如果你了解MP的结构可以随意改变 只要符合要求即可如果不了解就直接默认就好了 如果你有多个报表嵌入 那么请复制
<Report ID="rep.NewReport" Accessibility="Public" Visible="true">
<ReportDefinition>Res.rep.NewReport</ReportDefinition>
</Report>
以及下面的部分 更改名字即可
<ReportResource ID="Res.rep.NewReport" Accessibility="Internal" FileName="rep.NewReport.rdl" MIMEType="application/octet-stream" HasNullStream="false" />
此时报表我们已经嵌入完成了 然后让VS 重新生成就是了
最后我们在生成目录会找到mp 以及MPB文件 由于我们是嵌入式的 所以我们把mpb文件导入到scom即可 然后等待报表部署即可
本次博客结束 下次我们看看如何添加 报表参数
本文出自 “自动化世界” 博客,谢绝转载!
原文地址:http://strikene.blog.51cto.com/5877668/1925543