如何将工作流中的转换限制为仅在TFS中创建工作项的用户?

Sco*_*ott 5 tfs visual-studio tfs-workitem

这是一个更大限制的一部分,但是让我失望的部分是只允许创建工作项的用户("System.CreatedBy"字段的值)将工作项转换为Closed状态.我知道如何使用"For"和"Not"子句限制转换,但这些只限于组.我想将其限制为此工作项的特定创建者.VALIDUSERS也仅限于团体(TFS或AD).谢谢你的帮助.

Sco*_*ott 8

我昨晚找到了合适的解决方案.

这个解决方案实际上完全符合我的需要,因为它允许我添加一个组作为免除规则,以便该组的成员,例如QA,以及创建者能够关闭工作项,而团队的其他成员不是.

参考:这里

如上所述:

  1. 创建ClosedByValidation字段并添加以下规则
<FIELD name="Closed By Validation" refname="Demo.ClosedByValidation" type="String">
    <COPY from="currentuser" /> 
    <FROZEN not="[project]\Project Administrators"/> 
</FIELD>
Run Code Online (Sandbox Code Playgroud)
  1. 将以下规则添加到"已关闭"状态
<STATE value="Closed"> 
   <FIELDS> 
      <FIELD refname="Demo.ClosedByValidation"> 
          <COPY from="currentuser" /> 
       </FIELD> 
   </FIELDS> 
</STATE>
Run Code Online (Sandbox Code Playgroud)
  1. 将ClosedByValidation字段添加到表单,所以它看起来像这样.请注意我是如何显示"创建者"字段和"ClosedByValidation"字段的

这个怎么运作

  • ClosedByValidation字段在创建工作项时将"创建者"值复制到其自身中.
  • 然后立即冻结字段(使用FROZEN)规则,该规则表明它不能更改.
    • 注意:FROZEN规则的条件是不适用于项目管理员,为其提供覆盖功能.
  • 当工作项处于"已关闭"状态时,则会将当前用户复制到ClosedByValidation字段中.
  • 如果ClosedByValidation的值保持不变(原始Created By),那么一切都很好.
  • 如果ClosedByValidation的值已更改,则FROZEN规则会显示违规行为,如上面的屏幕截图所示.