TFS工作项模板自定义指南
概述
TFS 内置有CMMI模板、敏捷模板等过程模板,但是为了方便团队管理,TFS 提供自定义过程模板的功能。每个团队可以根据需要自定义模板界面、字段、流程等内容。
本文档将会介绍如何自定义过程模板,以及制定的要求。
环境准备
获取修改权限
过程模板修订完成后,需要导入到对应的团队项目中,此时要求执行导入的账号需要具有该项目的管理员权限(权限由服务器管理员开通)。
安装工具
- VS工具:与TFS服务器版本对应的VS工具。
- Process Editor工具:该工具可以实现TFS过程模板的修改、导入、导出等内容。在网上搜索下载即可,需要根据VS的版本手动安装。
自定义模板
- Process Editor工具对于系统模板的修改、字段的查询等都提供了的方式,此处仅介绍Task、Bug工作项模板的修改、导入、导出。
- 2010和2017(2015)TFS过程模板的自定义方式一致,本文档以2017为例进行说明。
导出模板
- 打开2017 VS,选择工具->Process Editor->Work Item Types->Export WIT。
- 在“连接到团队项目集合”中选择一个目标项目集合,点击连接。
- 选择一个项目中的一个工作项类型(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的属性信息
常用属性有以下几个:
- Field Name:指定与控件关联的工作项字段。
- Type:指定控件的数据类型。例如:
AttachmentControl:用于显示工作项附件。该控件没有关联的字段或字段类型。
DateTimeControl:用于显示字段类型为的格式化日期字段DateTime。
FieldControl:用于显示纯文本,数字,布尔值,或选择列表中的字段。
HtmlFieldControl:用于显示字段类型为文本格式HTML。
LabelControl:用于显示与字段无关的文本。文本可以是纯文本或超链接。可以指定使用额外的控制LabelText,Link和Text元素。
LinksControl:用于显示链接控制工具栏和管理工作项与情节提要之间的链接关系。该控件没有关联的字段或字段类型。可以使用LinksControlOptions元素指定要过滤的链接类型和其他控件选项。
WorkItemLogControl:用于显示工作项历史记录信息和字段类型为的字段History。注: 该System.History字段是唯一使用此数据类型的字段。
MultiValueControl:用于显示控件类型为多选的字段。 - Lable:界面显示的控件的标签名称。指定的字符串不得超过80个字符,中英文不限,建议名称与关联的字段名称一致,方便查询。
- Lable Font Size:指定标签的大小。
- Lable Position:指定标签相对于控制数据的位置。
- Padding:指定控件的内部边框周围的空间量(以像素为单位)。
- Margin:指定控件的外部边框周围的间距(以像素为单位)。
- 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 修改流程
- 修改某条数据流的状态转换条件:左键双击该数据流程的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 新增流程
- 新增State:拖动工具箱中的State到页面中,即可对其进行定义。
- 新增流程路径:点击工具箱中的Transition Link,将两个State连接起来,即可新增退一条路径。表示可以从一个State变换到另一个State,注意箭头指向的State表示为转变后的State。若两个State之间没有连接,则代表两者之间无法转换。
Figure 3.2 11 新增流程
导入模板
模板修改完成后,通过Process Editor工具进行导入:工具->Process Editor->Work Item Types -> Import WIT,导入时需要选择一个指定的项目。模板导入后刷新一下工作项,即可看到新模板。
常见问题
- 实现字段内容多选:
- 安装VS对应版本的WitCustomControlSetup.msi插件,每个版本的VS都需要安装对应版本;
- 下拉列表的值要使用SUGGESTEDVALUES,每个值要用[]括起来;
- 在界面布局的时候Type类型选择MultiValueControl。
- 导入模板时若有字段名称冲突,可通过命令行方式进行彻底删除。
Witadmin还有很多其他的命令,例如导出模板、导入模板、彻底删除工作项等。具体的方式可以通过执行“Witadmin help”方式查询。
注意:此方式慎用,因为会将服务器中该字段存储的所有值都删除,无法恢复。 - 有时导出的文件做更改再导入出现问题时,可能是由于文件加密的原因,这时可重新操作一遍再行导入。
- 2010版的模板中WorkFlow中,必须将需要更新的系统字段设置在Transition中,否则模板使用时会有问题:若State不更新,则其他字段无法更新。
TFS工作项模板自定义指南相关推荐
- VS 中 TFS 的工作项查询功能详解
在团队开发中,一般都要使用一些工具来追踪项目开发进度.在 VS 中可以使用 TFS 的工作项来追踪项目开发进度.下面介绍一下使用 TFS 如何进行工作项的查询. 环境: VS 2017 + TFS 2 ...
- code vs 集成tfs_Visual Studio TFS 团队项目和集合指南
在MSDN 杂志文章,"Visual Studio TFS 分支和合并指南"(msdn.microsoft.com/magazine/gg598921) 中,Visual Stud ...
- [转载]基于TFS实践敏捷-工作项跟踪
[转载]基于TFS实践敏捷-工作项跟踪 工作项跟踪(1) 可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性.曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看 ...
- TFS的Web门户工作项(七)
在TFS的web门户中有更丰富和更全面的设置和数据展示. Web门户如图有A,B,C,D四部分组成.A部分为团队项目和项目切换,登录人员和登录人员切换.B部分是Web门户主要功能的菜单,C部分是当前团 ...
- TFS中的工作项(六)
TFS中的工作项 在VS中打开团队资源管理器 工作项有功能,产品积压工作项,任务,测试用例,Bug,障碍,它们之间的关系是:一个产品或应用,有一系列功能,功能最大,可以把一个功能分解成多个产品积压工作 ...
- 创建自定义的Visual Studio项模板
关键词: VisualStudio 模板 VSDIR VIZ 目的: 创建自己的Visual Studio类模板,以创建实现单例模式(Singleton)的类为例. 1.何为模板? ...
- TFS导出工作项、bug,形成excel文件
TFS如何将工作项.BUG等内容导出到excel中呢? 可以通过VS进行操作导出: 打开VS,找到"团队资源管理" 找到"工作项",点击后,再找到"新 ...
- Unity提高工作效率的终极指南
本套课程指南通过关于如何更快.更智能地工作的最新技术,帮助Unity创作者节省时间并提高工作效率 你会学到: Unity的创建者节省了时间,提高了生产力. 关于如何更快地使用程序员和艺术家工具集的技巧 ...
- Django模板自定义标签和过滤器,模板继承(extend),Django的模型层
上回精彩回顾 视图函数:request对象request.path 请求路径request.GET GET请求数据 QueryDict {}request.POST POST请求数据 QueryDic ...
- 为Visual Studio添加项目模板及项模板
1 问题的引入 在做项目的时候,需要代码规范,版本信息不可或缺,但是每次在文件头COPY版本信息很麻烦,而且也不太容易控制.为了更好.更规范的去完成项目,需对项目文件做统一的格式来处理. 2 环境描述 ...
最新文章
- TVM设计与构架构建
- 美团外卖分布式系统架构设计
- oracle数据泵导入提示00972,oracle数据库使用expdp指定FLASHBACK_TIME遇到ORA-39150错误 | 信春哥,系统稳,闭眼上线不回滚!...
- JavaWeb——通过Listener理解域对象生命周期
- VTK:图片之ImageConvolve
- DVWA通关教程(中)
- Hbase RegionServer 启动失败 Time difference of xxx ms max allowed of 30000ms
- phantomjs执行常见错误
- 如何在settings里的休眠模式里添加永不休眠
- jdk的安装及环境变量的配置
- 2018年中国区块链产业发展白皮书(附PDF下载)
- html外链视频,WordPress文章内容中插入外链视频的通用iframe方法
- shp文件转换到CAD dwg,dxf
- 为什么青少年一定要学Python?
- 数学建模 —— 多元回归分析
- 机器学习推荐系统记录
- 麻雀要革命 第柒战 惨败!四面楚歌的凄凉绝境 第五节
- NAS入门之——Mac系统My Cloud EX2 Ultra设置时间机器
- c++画直线、矩形、圆、椭圆
- Unity 阴影频闪的问题