这是一个更大限制的一部分,但是让我失望的部分是只允许创建工作项的用户(" System.CreatedBy"字段的值)将工作项转换为“已关闭”状态。 我知道如何使用" For"来限制转换。和"不"条款,但这些仅限于团体。我想将其限制为此工作项的特定创建者。 VALIDUSERS也仅限于团体(TFS或AD)。 谢谢你的帮助。
答案 0 :(得分:8)
昨晚我找到了合适的解决方案。
此解决方案实际上完全符合我的需要,因为它允许我添加一个组作为免除规则,以便该组的成员,例如QA,以及创建者能够关闭工作项,而其他成员团队没有。
参考:here(网站存档链接)
参考:
<FIELD name="Closed By Validation" refname="Demo.ClosedByValidation" type="String">
<COPY from="currentuser" />
<FROZEN not="[project]\Project Administrators"/>
</FIELD>
<STATE value="Closed">
<FIELDS>
<FIELD refname="Demo.ClosedByValidation">
<COPY from="currentuser" />
</FIELD>
</FIELDS>
</STATE>
工作原理
答案 1 :(得分:1)
这不可能是afaik。
然而,相反的想法可能是“Restrict a transition when currentUser is not same as CreatedBy”和“NOTSAMEAS”规则。 (我仍然不知道为什么MS没有实现“SAMEAS”规则)
因此,由于没有“SAMEAS”规则,您无法使用xml修改。
顺便说一下,我希望我错了,但也无法中断工作项保存事件并取消它(如@MrHinsh建议的那样)。工作项保存事件只是一个通知事件而不是一个DecisionPoint事件,它也发生在工作项保存操作完成后,如名称所示(WorkItemChangedEvent)。
有关NotificationType的详细信息,请参阅here。
答案 2 :(得分:0)
使用当前规则引擎无法进行此配置。
可能的替代方案:
应该注意的是,TFS并非设计为强制执行系统,而您的业务规则意味着组织实施功能失调。