RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option); LOCAL i,j,k,kp : INTEGER; dkuhr : LOGICAL; nmfuo : INTEGER; nprpc : INTEGER := 0; rp : product; END_LOCAL; dkuhr := TRUE; REPEAT kp:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF (product_related_product_category[kp].name = 'ply') THEN REPEAT i:= LOINDEX (product_related_product_category[kp].products) TO HIINDEX (product_related_product_category[kp].products); nmfuo := 0; REPEAT j:= LOINDEX (make_from_usage_option) TO HIINDEX (make_from_usage_option); IF (product_related_product_category[kp].products[i] = make_from_usage_option[j].relating_product_definition. formation.of_product) THEN rp := make_from_usage_option[j].related_product_definition. formation.of_product; 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 ['isotropic material', '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 <> 1) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; END_IF; END_REPEAT; WHERE wr1: dkuhr; END_RULE; -- ply_stock_material_select |
public class RPly_stock_material_select public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |