问题描述
在Azure DevOps中,用户面临一些组织限制,因此他们决定使用自定义字段”Status”来替代默认的”State”字段,状态字段有以下6个选项:
– On Track(按计划)
– Delayed(延迟)
– Pending(待定)
– Done(已完成)
– Removed(已移除)
– Blocked(阻塞)
用户希望实现以下规则:父级的状态应该受制于子级的状态。如果任何子级的状态为”Blocked”,则父级的状态会变为”Blocked”;同样,如果子级状态为”Delayed”,父级状态也会变为”Delayed”。只有当所有子级都处于其他状态时,才能将父级的状态更改为”Blocked”或”Delayed”。如果所有子级都处于其他状态中,父级将变为”On Track”,并可以手动更改。
解决方案
在Azure DevOps中实现父级状态依赖于子级状态的规则,可以通过使用自动化流程和自定义字段来实现。以下是一个具体的方案:
请注意以下操作可能根据Azure DevOps版本有所不同。
步骤1:创建自定义字段
首先,在Azure DevOps的工作项类型中,为父级和子级工作项创建一个自定义字段,例如”Parent Status”和”Child Status”。
步骤2:配置自动化规则
- 在Azure DevOps中,导航到项目设置,然后选择”自动化”。
- 创建一个新的自动化规则,规则触发条件可以是当子级工作项的”Child Status”字段发生变化时。
- 在规则的操作部分,设置条件和动作:
- 如果任何子级的”Child Status”为”Blocked”,则将父级的”Parent Status”字段设置为”Blocked”。
- 如果任何子级的”Child Status”为”Delayed”,则将父级的”Parent Status”字段设置为”Delayed”。
- 如果所有子级的”Child Status”都不是”Blocked”或”Delayed”,则将父级的”Parent Status”字段设置为”On Track”,并允许手动更改。
步骤3:更新通过API
为了实现自动更新父级的状态,可以使用Azure DevOps的API来进行操作。你可以创建一个Azure Functions(或其他服务器无关的解决方案),以便在子级状态更改时调用API来更新父级状态。
以下是一个简单的思路:
1. 创建一个Azure Functions,并将其作为Webhook绑定到Azure DevOps中子级工作项的状态变更事件上。
2. 当子级状态发生变化时,Azure DevOps将触发Webhook调用你的Azure Functions。
3. 在Azure Functions中,使用Azure DevOps的API来检查所有子级的状态,并根据规则更新父级的状态。
这个方案需要一些编程和API调用的知识,但可以实现你所需的自动化规则。
请注意,以上方案可能需要根据你的具体情况进行调整,具体操作步骤可能会因Azure DevOps的不同版本而有所差异。建议在实施前仔细阅读Azure DevOps的文档和API文档,以确保方案的正确性和可行性。
总结
通过在Azure DevOps中创建自定义字段、配置自动化规则以及使用API进行状态更新,你可以实现父级状态依赖于子级状态的规则。这将帮助你在项目中更好地管理和跟踪工作项的状态,确保项目按计划进行。
请注意,由于Azure DevOps版本差异等原因,具体操作步骤可能会有所不同。建议在实施前仔细研究相关文档和资源。