RULE approval_history_approves_same_definition

(* 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

[Top Level Definitions] [Exit]

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