RULE unique_approvals_in_approval_history

(* SCHEMA ship_moulded_form_schema; *)
  RULE unique_approvals_in_approval_history FOR (group, 
             applied_group_assignment);

    LOCAL
      violate : LOGICAL := FALSE;
      t3_set  : SET OF approval := [];
      t1_set  : SET OF group := [];
      t2_set  : SET OF applied_group_assignment := [];
    END_LOCAL;
    t1_set := QUERY ( i <* group | VALUE_IN(which_class(i),
        'approval history') );
    REPEAT i := 1 TO HIINDEX(t1_set) BY 1 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_MOULDED_FORM_SCHEMA.APPROVAL' IN TYPEOF(b)) );
      violate := NOT VALUE_UNIQUE(t3_set);
    END_REPEAT;

  WHERE
    wr1: (NOT violate);

  END_RULE; -- unique_approvals_in_approval_history

[Top Level Definitions] [Exit]

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