RULE exchange_reason_existence_required

(* SCHEMA step_merged_ap_schema; *)
-- IN AP232
RULE exchange_reason_existence_required FOR (property_definition );
   LOCAL
      dri : descriptive_representation_item;
      prpd : SET OF property_definition;
      repi : representation;
      result : BOOLEAN := TRUE;
      prdr : BAG OF property_definition_representation;
   END_LOCAL;
      prpd := property_definition;
      REPEAT i := 1 TO SIZEOF(prpd) BY 1;
         IF prpd[i].name = 'data definition exchange header' THEN
            result := FALSE;
            prdr := USEDIN(prpd[i], 'STEP_MERGED_AP_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION');
            REPEAT j := 1 TO SIZEOF(prdr) BY 1;
               repi := prdr[j].used_representation;
               IF NOT (repi.name = 'exchange reason') THEN
                  ESCAPE;
               ELSE
                  REPEAT k := 1 TO SIZEOF(repi.items) BY 1;
                     IF 'STEP_MERGED_AP_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(repi.items[k]) THEN
                        dri := repi.items[k];
                        IF (dri.name = 'exchange purpose') XOR (dri.name = 'base exchange reason') THEN
                           result := TRUE;
                           ESCAPE;
                        END_IF;
                     END_IF;
                  END_REPEAT;
               END_IF;
            END_REPEAT;
         END_IF;
      END_REPEAT;
   WHERE
      wr1:
         result;
END_RULE;

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2020-07-28T17:02:19-04:00