我们都会用到TFS中的工作项。一般来说,最主要的会用到任务、bug这些工作流来进行项目管理里。但我们发现,实际上,有些模板中的工作流并不能完全符合我们的需要,因此我们会进行工作流的定制操作。下面就会通过一个简单的案例,来解释如何进行工作流的修改。
TFS版本:TFS2010
客户端版本:VSTS 2012 Update2
PowerTool版本:PowerTool for VS2012
实际上这个配置不用纠结,由于TFS还没有升级,所以还是2010版本,但这次客户端我选用的是2012,也是为了看下区别。在实际应用上,这里是没有区别的。
在TFS创建团队项目的时候,我们会进行模板的选择。实际上这个模板里面就包含了工作项。
图:模板的选择
各种模板中工作量类型有差异,而且虽然有些工作项名称相同,但他们会有着不同的工作流。例如敏捷开发的任务工作流和CMMI模板的工作流就有着很大的区别。如图,可以看出虽然都是任务,在CMMI中的工作流比敏捷模板中的工作流复杂了很多。
图:敏捷模板中"任务"工作流
图:CMMI模板中"任务"工作流
这次我们通过修改敏捷模板中的任务工作流,了解如何自定义工作项工作流。
假设,我们在一个任务被提出后,开发人员有拒绝的权利(这里仅仅是假设),且任务被拒绝后,等于到了工作流的末端,任务无法被重新置为活动或其他状态,那么我们的工作轮流大概是这样的。
可以看到这个流程是单向的。
我们在安装VSTS的Power Tools的以后,会在工具里找到这一项。如果要直接操作服务器,可以选Open WIT from Server(需要连接TFS)。如果自己在离线状态下,也可以编辑工作项模板文件。修改好再导入即可。
点击打开后,要选择团队项目,从中选择出要修改的工作项类型。这里我们选择test-agile项目中的"任务"工作项模板。
可以看到,一个工作项模板是由三部分组成的
"Fields"、"Layout"、"Workflow" 分别代表着:字段,布局,工作流
这三点主要的功能为
Fields:定义工作项的字段。
Layout:定义工作项操作面板的布局。
Workflow:定义工作项的工作流。
这次以修改工作流为主,未涉及到面板修改。
我们点击Workflow页签,会看到此模板的工作流。并且点开左边的工具箱,可以看到工作流的编辑工具。
State代表工作流的状态。
Transition Link 代表变化流程。
我们的需求是添加一个拒绝流程,此流程进入后,不可逆。于是拉入一个State到活动的状态的下方。
并且向下拉入一个Transition Link。注意拉动的方向!向下表示从"活动"状态转向"拒绝"状态。由于我们希望是单向不可逆,则只需要此一个方向流程变化即可。(可以看到"活动"状态到"关闭"状态的流程为双向的)
此时,工作流已经建立完毕,接下来要修改其属性。
双击"活动"状态与"拒绝"状态中的Transition。可以看到属性面板
Transition Detail:From to是状态的方向。For Not是操作此属性的权限。
Reasons:是状态跳转的原因。注意:Transition中必须有一个reason属性才可以通过验证
于是我们只要在Reasons的标签中添加原因即可完成。打钩的为默认选择。
关闭后,需要保存此工作项模板!
新建一个任务,在保存后,为活动状态。此时我们可以看到其下一个状态为"拒绝"或"已关闭"。
当我选择已关闭后,可以看到我们添加的理由
保存后看其状态,可见此流程无法逆转