在新建团队项目的过程中,TFS的“新建团队项目向导”会根据用户选择的过程模板类型(CMMI, Scrum,Agile等)自动为团队项目创建一个SSRS(SQL Server Reporting Service)报表站点。在大多数情况下,这些开箱即用的报表可以满足用户的基本需求。但是也有许多企业会根据自己的管理流程特点,开发和定制许多报表。用户可以在创建团队项目以后,手动将这些定制的报表发布到每个团队项目中。但是如果团队项目比较多,每次手动发布报表就比较耗时耗力,还容易出现错误。实际上TFS的过程模板支持自定义的报表,只需要通过修改过程模板,并将自己新建的报表包含在过程模板中,在新建团队项目的时,系统会自动将这些报表发布到TFS的报表站点中。下面我就来介绍如何修改过程模板,实现自定义报表的自动化部署。

过程模板结构

首先将现有的过程模板下载到本地,这里以CMMI过程模板为列。

建流程模板的所有文件添加到一个空的项目中(如下图),这样可以方便的通过Visual Studio来修改流程模板文件。

通过分析,我们发现TFS的报表文件保存在一个叫做Reports的文件夹中,其中所有的.rdl文件是报表文件,ReportsTasks.xml文件是在创建团队项目过程中,TFS执行的任务文件,用来自动创建报表站点和报表。

增加报表文件(.rdl)

将我们自定义的报表复制到Reports目录中即可。这里,用于测试,我把自己自定义开发的一个用于统计团队项目任务的报表复制到Reports目录中。

修改报表任务

在Visual Studio中打开报表任务的文件ReportsTask.xml:

1. 需要增加新的报表节点:reports,最简单的方法就是复制之前已经存在的节点。但是需要注意,如果你的报表中不需要参数ExplicitProject,应该将这个节点删除(我的示例报表就不需要这个参数)。

2. 需要指定报表的目录,如果打算放在报表站点的根目录中,保持folder属性的值为空就可以。

3. 需要指定数据源datasources,name是指报表系统中的已经存在的数据源,dsname是指报表中的数据源名称。

更新流程模板,并新建团队项目

通过团队资源管理器上传流程模板,以更新模板(如下图)。更新流程模板以后,可以使用新建的模板创建一个团队项目。在创建团队项目的过程中,如果所必须的配置没有完成,可能会出现错误,这时可以通过错误详细信息排查问题。

验证新增报表

团队项目创建成功以后,在报表站点中会看到自己定制的报表(如下图1),这是你就可以验证自己的报表了(如图2)

图1

图2

常见问题

1. 报表文件的XML版本不正确

在创建团队项目的过程中提示下面的错误,原因是使用Visual Studio 2015编辑或者开发报表,报表文件的Schemal自动被修改成了2016,而TFS 2013不支持这种格式。

异常消息:  System.Web.Services.Protocols.SoapException: 此报表的定义无效或不受此版本的 Reporting Services 支持。该报表定义可能是使用以前版本的 Reporting Services 创建的,或包含格式不符合 Reporting Services 架构或无效的内容。

2. 必须的数据源不存在

需要在创建团队项目前,将报表的数据源创建好,并配置好数据库连接。

如何在TFS的过程模板中添加报表的更多相关文章

  1. 如何在ChemDraw 15.1 Pro中添加模板

    ChemDraw化学绘图工具为了方便用户的使用,特地开发了众多的各种类型模板.用户在绘制一些简单或复杂的化学结构式时,可以直接从ChemDraw模板库里直接调用使用,虽然ChemDraw模板非常的丰富 ...

  2. 如何在github的README.md中添加图片

    如何在github的README.md中添加图片 总结: 链接引用:![Image text](图片的链接地址) 简介: 1.在github上的仓库建立一个存放图片的文件夹,文件夹名字随意.如:img ...

  3. WPF ListBoxItem模板中添加CheckBox选中问题

    原文:WPF ListBoxItem模板中添加CheckBox选中问题 是这样的,需要一个ListBox来展示照片,并添加一个选中的CheckBox.这就需要对ListBox的ItemTemplate ...

  4. (转)如何在maven的pom.xml中添加本地jar包

    1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将 ...

  5. 在django模板中添加jquery

    路径 /project_name /app_name /templates /index.html /project_name setting.py /static /js jquery.js 导入方 ...

  6. (转)如何在maven的pom.xml中添加本地jar包

    转载自: https://www.cnblogs.com/lixuwu/p/5855031.html 1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下 ...

  7. 如何在Windows 10 IoT Core中添加其他语言的支持,如中文

    目前很多开发者已经开始使用Windows 10 IoT来做物联网领域的开发了,目前Windows 10 IoT Core的版本支持树莓派2(以及新出的树莓派3).Minnowboard Max以及Dr ...

  8. django模板中变更数据库信息后,如何把变更后的信息同步更新到数据库

    我们在基于django开发项目的过程中,经常会遇到数据库表字段增加,删除,或者修改的情况,以及字段属性更改的情况,因为django基于ORM模式来操作数据库的, 传统上如果django项目中的数据库m ...

  9. LoadRunner测试场景中添加负载生成器

    如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什 ...

随机推荐

  1. 簡單SQL存儲過程實例

    簡單SQL存儲過程實例 摘自:http://blog.csdn.net/libra6956/article/details/5589173 实例1:只返回单一记录集的存储过程. 银行存款表(bankM ...

  2. knockout的依赖属性dependentObservable的参数 和Value转换器

    可写的依赖监控属性ko.dependentObservable的参数 read:   必选,一个用来执行取得依赖监控属性当前值的函数write:  可选,如果声明将使你的依赖属性可写,别的代码如果这个 ...

  3. wget进行整站下载

    wget加上参数之后,即可成为相当强大的下载工具. wget -r -p -np -k http://xxx.com/abc/ -r,  --recursive(递归)          specif ...

  4. mysql select语句解析

    select语句用于从一个或多个数据表选出特定行.特定列的交集 最简单的select语句的语法格式如下: select column1,column2 ........      (列) from 数 ...

  5. Little Jumper---(三分)

    Description Little frog Georgie likes to jump. Recently he have discovered the new playground that s ...

  6. NoSuchMethodException <init>()

    1. Question Description: SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/n ...

  7. online judge(ACM) 的设计与分析 (有c#demo)

    ACM.OJ,算法在线判题系统. 帮朋友完成毕业设计而写的,软件环境windows系统,语言是C# winform(因为我不熟悉asp.net,现在暂用winform写的demo). 看了下其他相关论 ...

  8. sessionId在fragment里无法保存的问题

    fragment页面需要验证用户是否登录.若没登陆调用登录页面,后返回fragment. 这个问题解决 sessionId = SharePreferenceUtils.getSessionId(); ...

  9. [程序人生]前途无"亮‘’的大学

    转眼之间就到大四了,今天晚上很迷茫,很纠结,想了好多,好多,真的,长大之后,自从第一次失恋之后,第一次会想到这么的多.     嗯,先自我介绍哈吧,我是从云南的大山里走出来的孩子,什么样的大山,就是到 ...

  10. django使用笔记

    django的具体使用可以看官方手册http://djangobook.py3k.cn,这里主要记录使用django中遇到的问题. 1.中文编码问题. 因为我们用到的东西基本上都有中文,在settin ...