RULE data_definition_entry_string_restrict_for_superseded_element

(* SCHEMA step_merged_ap_schema; *)
-- IN AP232
RULE data_definition_entry_string_restrict_for_superseded_element FOR (product_definition );
   LOCAL
      pdca : BAG OF product_definition_context_association;
      result1 : BOOLEAN;
      result2 : BOOLEAN;
      found : BOOLEAN;
      pd : SET OF product_definition;
      pdf : product_definition_formation;
      pdc : product_definition_context;
   END_LOCAL;
      result1 := TRUE;
      result2 := TRUE;
      pd := product_definition;
      REPEAT i := 1 TO SIZEOF(pd) BY 1;
         found := FALSE;
         pdca := USEDIN(pd[i], 'STEP_MERGED_AP_SCHEMA.' + 'PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION');
         REPEAT j := 1 TO SIZEOF(pdca) BY 1;
            pdc := pdca[j].frame_of_reference;
            IF pdc\application_context_element.name IN [ 'document version', 'a representation of a document version', 'data definition entry', 'indentured data list entry' ] THEN
               found := TRUE;
            END_IF;
         END_REPEAT;
         IF found THEN
            IF SIZEOF(QUERY (pdr <* USEDIN(pd[i], 'STEP_MERGED_AP_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')| (pdr.name = 'superseded element'))) > 1 THEN
               result1 := FALSE;
            END_IF;
            pdf := pd[i].formation;
            IF SIZEOF(QUERY (pdfr <* USEDIN(pdf, 'STEP_MERGED_AP_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION_FORMATION')| (pdfr.name = 'superseded version'))) > 1 THEN
               result2 := FALSE;
            END_IF;
         END_IF;
      END_REPEAT;
   WHERE
      wr1:
         result1;
      wr2:
         result2;
END_RULE;

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2023-12-22T16:32:03-05:00