我正在尝试使用 TFS 的“全局工作流”功能来进行可维护的工作项自定义。
我能找到的唯一资源是来自 msdn 的这两个:
有两个问题我找不到解决方案:
根据定义,我有一个 globalWorkflow.xml,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<GLOBALWORKFLOW>
<FIELDS>
<FIELD name="Global Field" refname="Namespace.GlobalField" type="String">
<REQUIRED />
</FIELD>
</FIELDS>
<GLOBALLISTS>
<GLOBALLIST name="Years">
<LISTITEM value="2014" />
<LISTITEM value="2015" />
</GLOBALLIST>
</GLOBALLISTS>
</GLOBALWORKFLOW>
我可以导入只有“Fields”标签或只有“GlobalLists”标签但不能同时具有两者的 globalworkflow.xml。如果我尝试同时导入两者,如上所示,它会给出一个 xml 验证错误,指示第二个标签不是“GlobalWorkflow”标签的可接受子元素。
如果我把“GlobalLists”放在第二个,“GlobalLists”是无效的子元素,“Fields”标签如果写成第二个元素是无效的。
如果导入包含“Fields”标签,则在导入全局工作流后;我可以在 Power Tools 的 WI 字段资源管理器中看到定义的字段,但不能在工作项的定义或任何字段选择组合中看到,只能在工作项字段资源管理器中(不在布局选项卡、工作流选项卡或工作的字段选项卡中)物品)。
MSDN 含糊地解释了这个过程,如:
如果您指定当前未为团队项目或集合定义的字段,则在导入全局工作流时创建该字段。
我可以假设,全局工作流 xml 仅保存字段,然后您仍然必须在工作项的字段选项卡中定义相同的字段才能在布局选项卡和工作流选项卡中使用它。TFS 仅防止以相同名称创建另一个字段,并且还实现定义的字段规则。这个逻辑,不是很好恕我直言,但仍然可以接受。
但是该逻辑仍然存在问题,因为如果我只使用全局列表定义导入全局工作流,则在全局列表设计器屏幕中看不到定义的全局列表,或者在“allowedvalues”规则选项等组合字段中看不到定义的全局列表。
我正在使用witadmin -importglobalworkflow /collection:"url" /f:"filepath"
命令,尽管我希望可以从我的所有团队项目集合中使用我的全局工作流定义
预期结果 我希望能够导入具有“字段”和“全局列表”元素的全局工作流,并且在导入操作之后,在工作项中我应该能够像使用 Power 工具创建的方式一样看到这些定义。
更新: 1 已解决:一个全局工作流不能同时包含“字段”和“全局列表”元素。MSDN 没有具体解释它,但这里的示例仅包含单独的 xml 文件。