RULE ply_reference FOR (ply_laminate_sequence_definition, next_assembly_usage_occurrence, product_related_product_category); LOCAL i,j,k : INTEGER; dkuhr : LOGICAL := TRUE; nnauo : INTEGER; nprpc : INTEGER := 0; rp : product; END_LOCAL; REPEAT i:= LOINDEX (ply_laminate_sequence_definition) TO HIINDEX (ply_laminate_sequence_definition); nnauo := 0; REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO HIINDEX (next_assembly_usage_occurrence); IF (ply_laminate_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition) THEN rp := next_assembly_usage_occurrence[j].related_product_definition. formation.of_product; nprpc := 0; REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((product_related_product_category[k].name = 'ply') AND (rp IN product_related_product_category[k].products)) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nnauo := nnauo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF(nnauo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE wr1: dkuhr; END_RULE; -- ply_reference |
public class RPly_reference public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |