RULE stock_material_reference FOR (percentage_ply_definition, make_from_usage_option, product_related_product_category); LOCAL i,j,k : INTEGER; dkuhr : LOGICAL; nmfuo : INTEGER; nprpc : INTEGER; rp : product; END_LOCAL; dkuhr := TRUE; REPEAT i:= LOINDEX (percentage_ply_definition) TO HIINDEX (percentage_ply_definition); nmfuo := 0; REPEAT j:= LOINDEX (make_from_usage_option) TO HIINDEX (make_from_usage_option); IF (percentage_ply_definition[i] = make_from_usage_option[j].relating_product_definition) THEN rp := make_from_usage_option[j].related_product_definition. formation.of_product; nprpc := 0; REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN ['anisotropic material', 'isotropic material', 'stock core', 'filament assembly', 'discontinuous fiber assembly'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nmfuo := nmfuo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF(nmfuo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE wr1: dkuhr; END_RULE; -- stock_material_reference |
public class RStock_material_reference public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |