(* SCHEMA ship_moulded_form_schema; *)
RULE approval_history_approves_same_definition FOR (
applied_group_assignment, applied_approval_assignment);
LOCAL
violate : LOGICAL := FALSE;
t3_set : SET OF approval := [];
t4_set : SET OF group_item := [];
t5_set : SET OF applied_approval_assignment := [];
t2_set : SET OF applied_group_assignment := [];
END_LOCAL;
t2_set := QUERY ( a <* applied_group_assignment | VALUE_IN(
which_class(a.assigned_group),'approval history') );
t3_set := QUERY ( b <* t2_set[1].items | (
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL' IN TYPEOF(b)) );
t4_set := QUERY ( b <* t2_set[1].items | VALUE_IN(which_class(b),
'DEFINITION') );
violate := NOT (SIZEOF(t4_set) = 1);
REPEAT i := 1 TO HIINDEX(t3_set) BY 1 WHILE NOT violate;
t5_set := QUERY ( a <* applied_approval_assignment | ((a.
assigned_approval = t3_set[i]) AND (NOT VALUE_IN(a.items,t4_set[1]))) );
violate := SIZEOF(t5_set) > 0;
END_REPEAT;
WHERE
wr1: (NOT violate);
wr2: (SIZEOF(t4_set) = 1);
END_RULE; -- approval_history_approves_same_definition
Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:47-04:00