TFS Transition Set System.AssignedTo来自字符串字段

时间:2016-01-18 16:47:24

标签: tfs tfs2013

我正在修改TFS 2013中的工作流程并遇到了障碍。现在,当开发人员完成他们的工作并将工作项移动到'dev complete'时,我将开发人员的名称设置为自定义字段作为字符串:

MYCOMPANY.Agile.Lean.CodeCompleteBy

<FIELD name="Code Completed By" refname="MYCOMPANY.Agile.Lean.CodeCompleteBy" type="String" reportable="dimension" syncnamechanges="true">
    <ALLOWEXISTINGVALUE />
    <HELPTEXT>The developer who wrote code related to this work item.</HELPTEXT>
</FIELD>

这是转型:

<TRANSITION from="Development in Progress" to="Code Review">
  <REASONS>
    <DEFAULTREASON value="Ready for Code Review" />
  </REASONS>
  <FIELDS>
    <FIELD refname="System.AssignedTo">
      <DEFAULT from="currentuser" />
    </FIELD>
    <FIELD refname="MYCOMPANY.Agile.Lean.CodeCompleteBy">
      <DEFAULT from="currentuser" />
    </FIELD>
  </FIELDS>
</TRANSITION>

随着流程的继续,该项目最终达到QA。如果质量保证人员发现问题并拒绝工作,那么我有一个过渡,将工作项目移回“正在开发中”状态。所有这一切都很好。

问题

我想重新分配工作项,在从QA in Progress过渡到Development in Progress时,回到完成工作的原始开发人员。

<TRANSITION from="QA in Progress" to="Development in Progress">
  <REASONS>
    <REASON value="Requirements Not Met" />
    <REASON value="Rejected" />
    <DEFAULTREASON value="Failed Testing" />
  </REASONS>
  <FIELDS>
    <FIELD refname="System.AssignedTo">
      <DEFAULT from="MYCOMPANY.Agile.Lean.CodeCompleteBy" />
    </FIELD>
  </FIELDS>
</TRANSITION>

不幸的是,当我尝试应用新的WIT转换时,它会抛出以下错误:

TF212019: Work item tracking schema validation error at row 931, column 24: The 'from' attribute is invalid - The value 'MYCOMPANY.Agile.Lean.CodeCompleteBy' is invalid according to its datatype 'http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typelib:CopyFrom' - The Enumeration constraint failed.
TF237070: Importing the definition failed. The definition you are trying to import did not validate against the schema. Edit the definition, then try to import it again.

我看到这是一个Enumeration约束问题,但我对TFS内部工作方式不够熟悉,不知道如何解决这个问题。

有没有人有一种光滑的方式来完成我想要做的事情(即使我只是需要一种全新的方法)?我可能只是走错了路。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用复制规则,而不是使用默认设置,只需尝试将其设置为值。 像这样:

<TRANSITION from="QA in Progress" to="Development in Progress">
  <REASONS>
    <REASON value="Requirements Not Met" />
    <REASON value="Rejected" />
    <DEFAULTREASON value="Failed Testing" />
  </REASONS>
  <FIELDS>
    <FIELD refname="System.AssignedTo">
      <COPY from="field" field="MYCOMPANY.Agile.Lean.CodeCompleteBy" />
    </FIELD>
  </FIELDS>
</TRANSITION>

答案 1 :(得分:0)

更新语法如下:

<DEFAULT from="field" field="MYCOMPANY.Agile.Lean.CodeCompleteBy"/>

有关详细信息,请参阅此链接:Define a default value or copy a value to a field