我想基于链接的子项创建项目约束。
我有一个名为“Project”的项目,其子项目为“Task”。这两个项目类型都有一个州字段和相同的值,如“进行中”,“准备审查”,“完成”等。 我想要做的是如果所有“任务”/子项都不在正确或相同的状态,则让用户不要将“项目”/父项状态更改为下一个状态。一旦所有任务都设置为正确状态,我想允许项目项状态提前。那么,这是否可能,如果有的话,有人能指出我正确的文档吗?
视觉示例:
(T1)
Project State:In Progress
Children:
Task 1 State:In Progress
Task 2 State:In Progress
(T2) - 请注意,此时用户无法将项目状态更改为下一个状态,因为所有任务都未完成。
Project State:In Progress
Children:
Task 1 State:Ready For Review
Task 2 State:In Progress
(T3)
Project State:In Progress
Children:
Task 1 State:Completed
Task 2 State:Ready For Review
(T4) - 现在用户可以将Project项状态移动到Completed,因为所有子项都处于正确状态。
Project State:In Progress
Children:
Task 1 State:Completed
Task 2 State:Completed
(T5)
Project State:Completed
Children:
Task 1 State:Completed
Task 2 State:Completed
答案 0 :(得分:0)
据我所知,这不可能通过约束,您可能需要基于自定义规则的触发器来实现此功能。
触发器的事件就像 (type = project and state!= state [old value] and state [old value] = In Progress And state [new value] = Completed)
这个触发器会做什么? 它将检查所有子任务的状态,如果任何子任务没有完成,它将弹出消息说 "在将项目移至完成状态之前,应完成所有子任务。