RULE exchange_reason_existence_required

(* SCHEMA technical_data_packaging; *)
  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],'TECHNICAL_DATA_PACKAGING.' + 
            '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 'TECHNICAL_DATA_PACKAGING.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; -- exchange_reason_existence_required

[Top Level Definitions] [Exit]

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