概述

TFS 内置有CMMI模板、敏捷模板等过程模板,但是为了方便团队管理,TFS 提供自定义过程模板的功能。每个团队可以根据需要自定义模板界面、字段、流程等内容。
本文档将会介绍如何自定义过程模板,以及制定的要求。

环境准备

获取修改权限

过程模板修订完成后,需要导入到对应的团队项目中,此时要求执行导入的账号需要具有该项目的管理员权限(权限由服务器管理员开通)。

安装工具

  1. VS工具:与TFS服务器版本对应的VS工具。
  2. Process Editor工具:该工具可以实现TFS过程模板的修改、导入、导出等内容。在网上搜索下载即可,需要根据VS的版本手动安装。

自定义模板

  1. Process Editor工具对于系统模板的修改、字段的查询等都提供了的方式,此处仅介绍Task、Bug工作项模板的修改、导入、导出。
  2. 2010和2017(2015)TFS过程模板的自定义方式一致,本文档以2017为例进行说明。

导出模板

  1. 打开2017 VS,选择工具->Process Editor->Work Item Types->Export WIT。
  2. 在“连接到团队项目集合”中选择一个目标项目集合,点击连接。
  3. 选择一个项目中的一个工作项类型(Bug、Task、Epic等方式一致,此处以Bug为例),点击OK,然后选择保存路径即可。在弹出的Global List页面中选择是,弹出导出成功提示框后,则代表完成指定项目工作项模板的导出。此时在保存目录中可以看到一个xml格式的文件。

修订模板

通过VS打开模板文件(导出的xml文件),可以看到有三个页面:Fields、Layout、Workflow,分别代表字段定义页面、界面布局页面、工作流定义页面。

Fields

Fields页面用于对模板中的字段进行新增、删除和编辑。
【新增字段】点击页面中的“New”按钮,在弹出的字段定义框中填写新增字段的信息。如图Figure 3 4新增字段定义

 Fields Definition
 Name:字段名称,具有唯一性。2010版支持中文,2015以上版本不支持中文,只支持英文,。此名称可用于工作项查询列表中的列选项。
 Type:数据类型,一般描述性信息为string,日期类用DateTime,特殊类型可以设置为History、Html等。
 Referance Name:字段引用名,在程序中需要处理,命名规则为:命名空间.名称,必须是英文。TFS内置了两个命名空间:System和Microsoft,公司自定义字段统一为Weihong :Weihong.XX.(XX.)XX,例如:Weihong.Common.Team。
【说明】
第二节根据是Bug工作项还是Task工作项确定,若是两者都包含该字段,则是Common;
第三节为可选项:若为团队特有字段,则为团队英文名称,若为软件研发体系通用字段(通常是软件部修改模板时使用),则不需要。
第四节与Name一致,不能有空格和符号,因此缩写字段需要补全。
注意:Name与Referance Name在TFS全局变量中必须是唯一的,因此一旦定义好,导入TFS服务器后,则不允许修改;并且两者是一一对应的,因此定义时需要慎重。TFS中所有的全局变量名存储在数据库“TFSWorkItemTracking”的“Fields”表中。
 Help Text:字段解释,此内容可以帮助使用者进一步理解字段的含义。
 Rules
此页面可以定制该字段的一些规则,如图Figure 3.2 2字段规则定义

常用的有以下几个:
 ALLOWEDVALUES:定义该字段允许接受的值,一般用于数量较少的下拉列表。
 ALLOWEXISTINGVALUE:允许字段保留现有值,即使该值不再位于选择列表中也是如此。当更改选择列表中或包含人名的选择列表中的字段值时,建议包括此规则。
 COPY:用户创建或修改工作项时,将指定的值复制到字段。
 DEFAULT:为用户创建或修改工作项时为空的字段指定一个值。如果一个字段已经有一个值,则DEFAULT规则将被忽略。
 READONLY:字段为只读形式,不允许修改。不要将READONLY与EMPTY元素一起使用,因为EMPTY还将字段设置为只读。如果将这些元素组合在一起,结果将不一致。
 REQUIRED:设置字段为必填字段。用户必须先将先填写此字段字段,才能保存工作项。
 WHEN:指一个字段为指定值时应用于父字段的规则。一般用于两个字段值之间的关联性设置。
 SEVERDEFAULT:用户保存工作项时,将当前用户名或服务器时钟值复制到该字段。这些字段通常在表单上显示为只读。
 SUGGESTEDVALUES:定义一个用户可以选择但不限于选择的值的列表。用于可以复选的字段。
其他规则的介绍可以参照微软官网介绍。字段介绍
【编辑字段】点击页面中的“Edit”按钮,可以修改已定义的字段内容。
【删除字段】点击页面中的“Delete”按钮,可以模板中已定义的字段。再删除字段之前需要先确认字段没有被其他地方引用,比如流程中或界面布局中。
注意:此处的删除仅限于删除该文件中定义的字段,无法删除TFS服务中保存的字段。

Layout

Layout页面用于过程模板的界面设计,可以将模板界面分组、分页、添加控件等。它提供多种布局方式,同时限制了各种方式之间的相互使用,下面对常用的几个进行详细介绍。
 New Control:添加一个新的控件,只能在Column和Tab Page下面使用,在layout页面中可以设置该控件的相关信息。如图Figure 3.2 3 Contorl的属性信息

常用属性有以下几个:

  1. Field Name:指定与控件关联的工作项字段。
  2. Type:指定控件的数据类型。例如:
     AttachmentControl:用于显示工作项附件。该控件没有关联的字段或字段类型。
     DateTimeControl:用于显示字段类型为的格式化日期字段DateTime。
     FieldControl:用于显示纯文本,数字,布尔值,或选择列表中的字段。
     HtmlFieldControl:用于显示字段类型为文本格式HTML。
     LabelControl:用于显示与字段无关的文本。文本可以是纯文本或超链接。可以指定使用额外的控制LabelText,Link和Text元素。
     LinksControl:用于显示链接控制工具栏和管理工作项与情节提要之间的链接关系。该控件没有关联的字段或字段类型。可以使用LinksControlOptions元素指定要过滤的链接类型和其他控件选项。
     WorkItemLogControl:用于显示工作项历史记录信息和字段类型为的字段History。注: 该System.History字段是唯一使用此数据类型的字段。
     MultiValueControl:用于显示控件类型为多选的字段。
  3. Lable:界面显示的控件的标签名称。指定的字符串不得超过80个字符,中英文不限,建议名称与关联的字段名称一致,方便查询。
  4. Lable Font Size:指定标签的大小。
  5. Lable Position:指定标签相对于控制数据的位置。
  6. Padding:指定控件的内部边框周围的空间量(以像素为单位)。
  7. Margin:指定控件的外部边框周围的间距(以像素为单位)。
  8. MinimumSize:指定控件应在表单中占据的最小像素大小。
     New Group:添加一个新的群组,可以设置群组的标签以及内外围边框的距离。如图Figure 3.2 4Group的属性信息

Figure 3.2 4Group的属性信息
 New Column:添加一个新的列,可以将一个Group划分成多列。有两种设置列宽的方式:固定列宽(以像素为单位)、固定占比(所在群组中的比例)。两种方式只能选择一种,常用固定占比这种方式。如图Figure 3.2 5 Column的属性信息

Figure 3.2 5 Column的属性信息
在布局排版过程中可以通过界面中的“Preview Form”按钮进行界面预览,方便随时调整界面显示。
更多的界面设置介绍可以参照微软官网介绍。布局

Workflow

Workflow页面用于模板的工作流定义。工作流程依赖于系统提供的State字段的流转,可以在不同路径中设置必填项。
【修改流程】可以在已有流程的基础上修改State转变的Reason、必填字段设置等。如图Figure 3.2 7 修改流程

Figure 3.2 6 修改流程

  1. 修改某条数据流的状态转换条件:左键双击该数据流程的Transition(或右击“Transition”选择“Open Details”),在弹出的Workflow Transition对话框中设置State转变的Reason、Actions、Fields。如图Figure 3.2 7 数据流条件设置

Figure 3.2 7 数据流条件设置
 Reason:State转换的原因,可以设置多个,并设置一个默认的。如图Figure 3.2 8 State转换原因

Figure 3.2 8 State转换原因
 Actions:可选项。一般设置系统自带的更改项。
 Fields:State转换过程中对于特定字段的条件设置。如图Figure 3.2 9 添加字段条件。在Rules中可以设置字段的条件,与3.2.1Fields中对字段设置规则的方式以及规则的定义一致。

Figure 3.2 9 添加字段条件
2. 修改State中内容:右键双击State的名称可以进行名称的修改;双击State头的空白区域(或右击空白区域选择“Open Details”),可以设置State的字段规则。此处一般设置的系统定义的字段,可以在该状态时根据设置的条件自动更新字段内容。如图Figure 3.2 10 State Field规则设置

Figure 3.2 10 State Field规则设置
【新增流程】若已有流程定义无法满足需要,点击VS中的“工具箱”,可新增流程。如图Figure 3.2 6 新增流程

  1. 新增State:拖动工具箱中的State到页面中,即可对其进行定义。
  2. 新增流程路径:点击工具箱中的Transition Link,将两个State连接起来,即可新增退一条路径。表示可以从一个State变换到另一个State,注意箭头指向的State表示为转变后的State。若两个State之间没有连接,则代表两者之间无法转换。

    Figure 3.2 11 新增流程

导入模板

模板修改完成后,通过Process Editor工具进行导入:工具->Process Editor->Work Item Types -> Import WIT,导入时需要选择一个指定的项目。模板导入后刷新一下工作项,即可看到新模板。

常见问题

  1. 实现字段内容多选:
  1. 安装VS对应版本的WitCustomControlSetup.msi插件,每个版本的VS都需要安装对应版本;
  2. 下拉列表的值要使用SUGGESTEDVALUES,每个值要用[]括起来;
  3. 在界面布局的时候Type类型选择MultiValueControl。
  1. 导入模板时若有字段名称冲突,可通过命令行方式进行彻底删除。
    Witadmin还有很多其他的命令,例如导出模板、导入模板、彻底删除工作项等。具体的方式可以通过执行“Witadmin help”方式查询。
    注意:此方式慎用,因为会将服务器中该字段存储的所有值都删除,无法恢复。
  2. 有时导出的文件做更改再导入出现问题时,可能是由于文件加密的原因,这时可重新操作一遍再行导入。
  3. 2010版的模板中WorkFlow中,必须将需要更新的系统字段设置在Transition中,否则模板使用时会有问题:若State不更新,则其他字段无法更新。

TFS工作项模板自定义指南相关推荐

  1. VS 中 TFS 的工作项查询功能详解

    在团队开发中,一般都要使用一些工具来追踪项目开发进度.在 VS 中可以使用 TFS 的工作项来追踪项目开发进度.下面介绍一下使用 TFS 如何进行工作项的查询. 环境: VS 2017 + TFS 2 ...

  2. code vs 集成tfs_Visual Studio TFS 团队项目和集合指南

    在MSDN 杂志文章,"Visual Studio TFS 分支和合并指南"(msdn.microsoft.com/magazine/gg598921) 中,Visual Stud ...

  3. [转载]基于TFS实践敏捷-工作项跟踪

    [转载]基于TFS实践敏捷-工作项跟踪 工作项跟踪(1) 可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性.曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看 ...

  4. TFS的Web门户工作项(七)

    在TFS的web门户中有更丰富和更全面的设置和数据展示. Web门户如图有A,B,C,D四部分组成.A部分为团队项目和项目切换,登录人员和登录人员切换.B部分是Web门户主要功能的菜单,C部分是当前团 ...

  5. TFS中的工作项(六)

    TFS中的工作项 在VS中打开团队资源管理器 工作项有功能,产品积压工作项,任务,测试用例,Bug,障碍,它们之间的关系是:一个产品或应用,有一系列功能,功能最大,可以把一个功能分解成多个产品积压工作 ...

  6. 创建自定义的Visual Studio项模板

    关键词: VisualStudio 模板 VSDIR    VIZ  目的:     创建自己的Visual Studio类模板,以创建实现单例模式(Singleton)的类为例. 1.何为模板?  ...

  7. TFS导出工作项、bug,形成excel文件

    TFS如何将工作项.BUG等内容导出到excel中呢? 可以通过VS进行操作导出: 打开VS,找到"团队资源管理" 找到"工作项",点击后,再找到"新 ...

  8. Unity提高工作效率的终极指南

    本套课程指南通过关于如何更快.更智能地工作的最新技术,帮助Unity创作者节省时间并提高工作效率 你会学到: Unity的创建者节省了时间,提高了生产力. 关于如何更快地使用程序员和艺术家工具集的技巧 ...

  9. Django模板自定义标签和过滤器,模板继承(extend),Django的模型层

    上回精彩回顾 视图函数:request对象request.path 请求路径request.GET GET请求数据 QueryDict {}request.POST POST请求数据 QueryDic ...

  10. 为Visual Studio添加项目模板及项模板

    1 问题的引入 在做项目的时候,需要代码规范,版本信息不可或缺,但是每次在文件头COPY版本信息很麻烦,而且也不太容易控制.为了更好.更规范的去完成项目,需对项目文件做统一的格式来处理. 2 环境描述 ...

最新文章

  1. TVM设计与构架构建
  2. 美团外卖分布式系统架构设计
  3. oracle数据泵导入提示00972,oracle数据库使用expdp指定FLASHBACK_TIME遇到ORA-39150错误 | 信春哥,系统稳,闭眼上线不回滚!...
  4. JavaWeb——通过Listener理解域对象生命周期
  5. VTK:图片之ImageConvolve
  6. DVWA通关教程(中)
  7. Hbase RegionServer 启动失败 Time difference of xxx ms max allowed of 30000ms
  8. phantomjs执行常见错误
  9. 如何在settings里的休眠模式里添加永不休眠
  10. jdk的安装及环境变量的配置
  11. 2018年中国区块链产业发展白皮书(附PDF下载)
  12. html外链视频,WordPress文章内容中插入外链视频的通用iframe方法
  13. shp文件转换到CAD dwg,dxf
  14. 为什么青少年一定要学Python?
  15. 数学建模 —— 多元回归分析
  16. 机器学习推荐系统记录
  17. 麻雀要革命 第柒战 惨败!四面楚歌的凄凉绝境 第五节
  18. NAS入门之——Mac系统My Cloud EX2 Ultra设置时间机器
  19. c++画直线、矩形、圆、椭圆
  20. Unity 阴影频闪的问题

热门文章

  1. 基于微信小程序的毕业设计题目(25)php体育馆场地预约小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  2. 解除IIS文件下载限制
  3. 史上最简单的matlab的CRC库函数使用(无繁杂参数)
  4. MATLAB | MATLAB配色不够用 全网最全的colormap补充包来啦
  5. 老九学堂 学习 C++
  6. PostGIS教程一:PostGIS介绍
  7. 面试题之心理测试题及答案
  8. 直播平台搭建源码,css预加载旋转动画 与 流光字体
  9. 什么是CSR证书申请文件?
  10. QT设置窗体标题及背景颜色