我已将部门批准添加到标准 CMMI 模板要求工作项。我想限制 System.State 字段,以便只有在所有部门批准都设置为“是”时才能将其从建议更改为活动。
我已尝试对 Requirement.xml 进行以下更改
<FIELD name="State" refname="System.State" type="String" reportable="dimension">
<WHEN field="Approval.Marketing" value="No">
<READONLY />
</WHEN>
<WHEN field="Approval.Quality" value="No">
<READONLY />
</WHEN>
<WHEN field="Approval.RD" value="No">
<READONLY />
</WHEN>
<WHEN field="Approval.System" value="No">
<READONLY />
</WHEN>
<WHEN field="Approval.ProgManagement" value="No">
<READONLY />
</WHEN>
</FIELD>
如果任何批准字段设置为“否”,这就是我想要的,这会导致 State 字段变为 READONLY。但是,在创建新需求时会导致问题,因为最初的批准都是“否”,因此由于 READONLY 条件,没有设置 State 的初始“Proposed”默认值。我想要做的是将逻辑添加到上面的 WHEN 条件中,以将它们与条件 System.State="Proposed" 相结合。我尝试嵌套 WHEN 子句,例如
<FIELD name="State" refname="System.State" type="String" reportable="dimension">
<WHEN field="System.State" value="Proposed">
<WHEN field="Approval.Marketing" value="No">
<READONLY />
</WHEN>
. . .
</WHEN>
</FIELD>
但这会在导入时出现错误,即WHEN子句不能包含WHEN。当任何 Approval 字段设置为“No”时,如何禁止将 State 从Proposed更改为Active