在配置后已升级的团队项目的功能,请使用基于 Microsoft for agile software development solutions framework 过程模板创建 (MSF),应手动更新用户情景和任务工作流分配。 如果不更新工作流,如下图所示,则任务键盘仅提供两个状态,活动 和 已关闭。 这样可防止您和您的团队区分从这些正在进行尚未开始的任务之间。
一个敏捷团队项目的任务键盘建议不要使用的手动更新
配置功能"向导中所做的更新以匹配您的团队项目定义的现有工作流。 对于的 MSF for agile 5.0 版过程模板,这意味着新的和已移除的状态引入的最新版本不存在。 这些状态支持从一个新状态的转换的用户情景到活动状态。 未定义的新状态,用户情景指派给迭代在产品积压工作中,直到解决,而不是所需的或预期的行为。
同样,使用任务键盘,添加新状态到任务工作流允许用户从新的滚动任务,再到活动,再到关闭状态。 此外,使用计划工具,通过添加移除的状态到用户情景和任务类型定义可以让用户剪切情景和任务。
若要支持预期行为,必须添加一个新的,并对用户情景和任务的已移除的状态工作项类型,并在进程配置分配的 metastate 映射。
备注
可以执行某些程序下述使用过程编辑器,外接程序的一个增强工具为您可以下载并安装的 Visual Studio。位于 工具 菜单下,进程编辑器是为自定义 Team Foundation Server 提供一个图形用户界面 (gui) 过程模板。您可以使用此工具导入和导出工作项类型和修改过程模板的内容。有关更多信息,请参见 Microsoft 网站上的以下页面:Team Foundation server 增强工具.
要求
- 若要运行 witadmin 命令行工具,您必须属于下列组之一:Team Foundation Administrators、项目集合管理员或 项目管理员 组团队项目的。 请参见 Team Foundation Server 权限。
更新工作流和 metastates 一个敏捷团队项目中
重要
本主题中的过程 for agile software development 6.0 编写的基于 MSF。若要更新您的团队项目支持 agile software development 6.1 版定义的最新工作流,您可以采用这些程序复制 WORKFLOW 部分最新敏捷过程模板。重要的更新对多的工作流工作项类型使用的最新每季更新。这些更改支持反向转换,这样,当则无意中拖到 Kanban 键盘或键盘任务的工作项到已解决或已关闭状态时,可以将其拖动到早期的工作流状态。
若要了解有关更新,请参见 规划和跟踪的新增功能。
为默认值的最新版本的 get 访问过程模板,安装 Team Foundation Server的最新每季更新。您可以从 Microsoft 下载网站的更新:Microsoft Visual Studio Team Foundation server 的每季更新 2012 年.
您需要执行以下步骤:
导出用户情景的定义,因此任务类型和进程配置。
对工作流"部分中插入代码段用户情景和任务的。
更新进程配置的 metastate 映射。
导入工作项类型的定义和更新进程配置。
验证更改是否显示在任务键盘。
重要
为了能够以下过程,在工作流必须指定 活动 状态定义的工作项的用户情景和任务类型。
更新工作流状态和转换用户情景的
若要运行 witadmin 命令行工具,打开安装和类型 Visual Studio 或 团队资源管理器 的命令提示符窗口:
cd %programfiles%\Microsoft Visual Studio 11.0\Common7\IDE
在 64 位 Windows 版本上,将 %programfiles% 替换为 %programfiles(x86)%。
若要导出用户情景的类型定义,键入以下命令,将您的数据替换为显示此处的参数,其中 CollectionURL 指定团队项目集合的 URL,ProjectName 指定在集合中定义的团队项目的名称,并且,“DirectoryPath\文件名.xml”指定名称和位置以文件中导出。 然后按 enter。
witadmin exportwitd /collection:CollectionURL /p:"ProjectName" /n:"User Story" /f:"DirectoryPath\FileName.xml"
为 URL 使用以下格式:例如 **http://**服务器:端口/VirtualDirectoryName/CollectionName,例如:http://srvalm:8080/tfs/DefaultCollection。
在文本编辑器或在 Visual Studio 中,打开要导出的文件。
将行 <STATES> 和 <STATE value="Active">之间的此代码段:
<STATE value="New"> <FIELDS> <FIELD refname="Microsoft.VSTS.Common.ResolvedDate"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ResolvedBy"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ClosedDate"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ClosedBy"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedDate"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedBy"> <EMPTY /> </FIELD> </FIELDS> </STATE> <STATE value="Removed" />
替换从 <TRANSITION from=" " to="Active"> 和结束开始使用 <TRANSITION> 与此代码段的部分:
<TRANSITION from="" to="New"> <REASONS> <DEFAULTREASON value="New" /> </REASONS> <FIELDS> <FIELD refname="System.Description"> <DEFAULT from="value" value="As a &lt;type of user&gt; I want &lt;some goal&gt; so that &lt;some reason&gt;" /> </FIELD> </FIELDS> </TRANSITION> <TRANSITION from="New" to="Active"> <REASONS> <DEFAULTREASON value="Implementation started" /> </REASONS> <FIELDS> <FIELD refname="Microsoft.VSTS.Common.ActivatedBy"> <COPY from="currentuser" /> <VALIDUSER /> <REQUIRED /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedDate"> <SERVERDEFAULT from="clock" /> </FIELD> <FIELD refname="System.AssignedTo"> <DEFAULT from="currentuser" /> </FIELD> </FIELDS> </TRANSITION> <TRANSITION from="New" to="Removed"> <REASONS> <DEFAULTREASON value="Removed from the backlog" /> </REASONS> </TRANSITION> <TRANSITION from="Active" to="New"> <REASONS> <DEFAULTREASON value="Implementation halted" /> </REASONS> </TRANSITION> <TRANSITION from="Removed" to="New"> <REASONS> <DEFAULTREASON value="Reconsidering the User Story" /> </REASONS> </TRANSITION>
保存并关闭文件。
导入文件,将您的数据替换为显示的参数。
witadmin importwitd /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
更新工作流状态和转换的任务
导出任务的类型定义,并将您的数据替换为显示的参数。
witadmin exportwitd /collection:CollectionURL /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
在文本编辑器或在 Visual Studio 中,打开要导出的文件。
将行 <STATES> 和 <STATE value="Active">之间的此代码段:
<STATE value="New"> <FIELDS> <FIELD refname="Microsoft.VSTS.Common.ClosedDate"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ClosedBy"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedDate"> <EMPTY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedBy"> <EMPTY /> </FIELD> </FIELDS> </STATE> <STATE value="Removed" />
替换第一个转换块,与低于在 <TRANSITION from="" to="Active"> 及其关闭值的 </TRANSITION> 标记之间的行对应,使用这些代码段:
<TRANSITION from="" to="New"> <REASONS> <DEFAULTREASON value="New" /> </REASONS> </TRANSITION> <TRANSITION from="New" to="Active"> <ACTIONS> <ACTION value="Microsoft.VSTS.Actions.StartWork" /> </ACTIONS> <REASONS> <DEFAULTREASON value="Work started" /> </REASONS> <FIELDS> <FIELD refname="Microsoft.VSTS.Common.ActivatedBy"> <COPY from="currentuser" /> <VALIDUSER /> <REQUIRED /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedDate"> <SERVERDEFAULT from="clock" /> </FIELD> <FIELD refname="System.AssignedTo"> <DEFAULT from="currentuser" /> </FIELD> </FIELDS> </TRANSITION> <TRANSITION from="Active" to="New"> <ACTIONS> <ACTION value="Microsoft.VSTS.Actions.StopWork" /> </ACTIONS> <REASONS> <DEFAULTREASON value="Work halted" /> </REASONS> </TRANSITION> <TRANSITION from="New" to="Closed"> <ACTIONS> <ACTION value="Microsoft.VSTS.Actions.Checkin" /> </ACTIONS> <REASONS> <DEFAULTREASON value="Completed" /> <REASON value="Cut" /> <REASON value="Deferred" /> <REASON value="Obsolete" /> </REASONS> <FIELDS> <FIELD refname="Microsoft.VSTS.Common.ActivatedDate"> <READONLY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ActivatedBy"> <READONLY /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ClosedDate"> <SERVERDEFAULT from="clock" /> </FIELD> <FIELD refname="Microsoft.VSTS.Common.ClosedBy"> <COPY from="currentuser" /> <VALIDUSER /> <REQUIRED /> </FIELD> </FIELDS> </TRANSITION> <TRANSITION from="Closed" to="New"> <REASONS> <DEFAULTREASON value="Reactivated" /> </REASONS> <FIELDS> <FIELD refname="System.AssignedTo"> <COPY from="field" field="Microsoft.VSTS.Common.ClosedBy" /> </FIELD> </FIELDS> </TRANSITION> <TRANSITION from="New" to="Removed"> <REASONS> <DEFAULTREASON value="Removed from the backlog" /> </REASONS> </TRANSITION> <TRANSITION from="Active" to="Removed"> <REASONS> <DEFAULTREASON value="Removed from the backlog" /> </REASONS> </TRANSITION> <TRANSITION from="Removed" to="New"> <REASONS> <DEFAULTREASON value="Reconsidering the Task" /> </REASONS> </TRANSITION>
保存并关闭文件。
导入文件,将您的数据替换为显示的参数。
witadmin importwitd /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
若要更新 metastate 映射为进程配置
键入下面的命令导出 CommonConfiguration 文件,将您的数据替换为显示的参数。
witadmin exportcommonprocessconfig /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\CommonConfiguration.xml"
其中,CollectionURL 指定团队项目集合和 ProjectName 的 URL 指定团队项目的名称。 为 URL 使用以下格式:例如 **http://**服务器:端口/VirtualDirectoryName/CollectionName,例如:http://srvalm:8080/tfs/DefaultCollection。
在记事本或其他文本编辑器中,打开 CommonConfiguration.xml 文件。
找到标记 <RequirementWorkItems category="Microsoft.RequirementCategory" plural="Stories">。
替换为这些行的行 <State type="Proposed" value="Active" /> :
<State type="Proposed" value="New" /> <State type="InProgress" value="Active" />
找到标记 <TaskWorkItems category="Microsoft.TaskCategory">,并替换为这些行的行 <State type="Proposed" value="Active" /> :
<State type="Proposed" value="New" /> <State type="InProgress" value="Active" />
验证是否具有以下映射:
<RequirementWorkItems category="Microsoft.RequirementCategory" plural="Stories"> <States> <State type="Proposed" value="New"/> <State type="InProgress value="Active" /> <State type="InProgress value="Resolved" /> <State type="Complete" value="Closed" /> </States> </RequirementWorkItems> <TaskWorkItems category="Microsoft.TaskCategory"> <States> <State type="Proposed" value="New" /> <State type="InProgress" value="Active" /> <State type="Complete" value="Closed" /> </States> </TaskWorkItems>
保存并关闭文件。
导入配置文件。
witadmin importcommonprocessconfig /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\CommonConfiguration.xml"
验证更改是否显示在任务。
打开 Team Web Access 然后连接到团队项目使用具有以下格式的 URL:
http://MyServer:8080/tfs/TeamProjectCollectionName/MyProject
如果 TWA 已打开的,然后刷新该浏览器刷新缓存。
验证任务的列现在显示 新建、活动和 已关闭。
一个敏捷团队项目的任务键盘以更新工作流状态
若要了解有关使用任务键盘,请参见 运行迭代。