为SCOM创建自定义报表3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为SCOM创建自定义报表3相关的知识,希望对你有一定的参考价值。

为SCOM创建自定义报表3


上一次我们在创建了一个基本报表并且部署在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即可 然后等待报表部署即可

本次博客结束 下次我们看看如何添加 报表参数

本文出自 “自动化世界” 博客,谢绝转载!

以上是关于为SCOM创建自定义报表3的主要内容,如果未能解决你的问题,请参考以下文章

事件日志如何创建自定义报表

什么报表需要通过自定义报表实现的

会计啥报表需要通过自定义报表实现

什么报表需要通过自定义报表实现

自定义报表开发(HTML/XML)

哪个报表需要通过自定义报表实现