基于子字段值的项字段约束

时间:2015-07-07 15:58:58

标签: mks mks-integrity

我想基于链接的子项创建项目约束。

我有一个名为“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

1 个答案:

答案 0 :(得分:0)

据我所知,这不可能通过约束,您可能需要基于自定义规则的触发器来实现此功能。

触发器的事件就像 (type = project and state!= state [old value] and state [old value] = In Progress And state [new value] = Completed)

这个触发器会做什么? 它将检查所有子任务的状态,如果任何子任务没有完成,它将弹出消息说 "在将项目移至完成状态之前,应完成所有子任务。