RULE unique_approvals_in_approval_history

(* SCHEMA Ship_arrangement_schema; *)


   RULE unique_approvals_in_approval_history FOR (group, applied_group_assignment );
   LOCAL
      t1_set : SET OF group := [];
      t2_set : SET OF applied_group_assignment := [];
      t3_set : SET OF approval := [];
      violate : LOGICAL := FALSE;
   END_LOCAL;
      t1_set := QUERY (i <* group| VALUE_IN(WHICH_CLASS(i), 'approval history'));
      REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
         t2_set := QUERY (a <* applied_group_assignment| a.ASSIGNED_GROUP = t1_set[i]);
         t3_set := QUERY (b <* t2_set[1].items| 'SHIP_ARRANGEMENT_SCHEMA.APPROVAL' IN TYPEOF(b));
         violate := NOT VALUE_UNIQUE(t3_set);
      END_REPEAT;
   WHERE
      WR1:
         NOT violate;
   END_RULE;

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:37-04:00