Azure Dev Ops Server 2022:如何配置WIT规则要求布尔字段为真才能变更状态?
Azure DevOps Server 2022 WIT规则:状态变更为Ready前强制所有复选框为True
由于MATCH和PROHIBITEDVALUES规则对布尔字段不生效,你需要在工作项类型(WIT)的工作流转换节点中,为每个布尔复选框添加特定规则,强制它们必须设为True才能完成状态变更。
实现步骤
确认布尔字段定义
确保你的六个复选框对应的字段在WIT XML中已定义为布尔类型,示例:<FIELD name="Independent" refname="MyProcess.Independent" type="Boolean" /> <FIELD name="Negotiable" refname="MyProcess.Negotiable" type="Boolean" /> <FIELD name="Valuable" refname="MyProcess.Valuable" type="Boolean" /> <FIELD name="Estimable" refname="MyProcess.Estimable" type="Boolean" /> <FIELD name="Small" refname="MyProcess.Small" type="Boolean" /> <FIELD name="Testable" refname="MyProcess.Testable" type="Boolean" />在状态转换节点添加规则
找到工作流中从当前状态(比如New)转换到Ready的TRANSITION元素,在其内部的FIELDS节点下,为每个布尔字段添加VALIDUSER规则。该规则通过限制“当字段值为False时,无用户可执行转换”,间接强制字段必须为True:<TRANSITION from="New" to="Ready"> <!-- 保留原有转换配置(如原因、权限等) --> <FIELDS> <FIELD refname="MyProcess.Independent"> <VALIDUSER for="False" not="True" /> </FIELD> <FIELD refname="MyProcess.Negotiable"> <VALIDUSER for="False" not="True" /> </FIELD> <FIELD refname="MyProcess.Valuable"> <VALIDUSER for="False" not="True" /> </FIELD> <FIELD refname="MyProcess.Estimable"> <VALIDUSER for="False" not="True" /> </FIELD> <FIELD refname="MyProcess.Small"> <VALIDUSER for="False" not="True" /> </FIELD> <FIELD refname="MyProcess.Testable"> <VALIDUSER for="False" not="True" /> </FIELD> </FIELDS> </TRANSITION>
规则说明
VALIDUSER for="False" not="True":表示当字段值为False时,不允许任何用户执行此状态转换。用户必须将字段设为True,才能满足规则要求,完成状态变更。- 如果你的工作项从多个状态都能转换到
Ready,需要在每个对应的TRANSITION节点中重复添加上述字段规则。
内容的提问来源于stack exchange,提问作者Thomas Holme
相关产品推荐
相关产品推荐

