RULE restrict_process_product_association FOR (process_product_association); WHERE wr1: SIZEOF ( QUERY ( ppa <* process_product_association | NOT ( ppa. name IN ['input' , 'output' , 'produced output' ] ) ) ) =0; wr2: SIZEOF ( QUERY ( ppa <* process_product_association | NOT ( ppa. name IN ['input' , 'output'] ) OR ( SIZEOF ( QUERY ( ar <* USEDIN ( ppa. process , 'AUTOMOTIVE_DESIGN.'+'ACTION_RELATIONSHIP.'+ 'RELATED_ACTION' ) | ar. name = 'process operation occurrence' ) ) =0 ) ) ) =0; wr3: SIZEOF ( QUERY ( ppa <* process_product_association | ( ppa. name<> 'produced output' ) OR ( ( 'AUTOMOTIVE_DESIGN.'+ 'PRODUCT_DEFINITION' IN TYPEOF ( ppa. defined_product ) ) AND ( SIZEOF ( QUERY ( prpc <* USEDIN ( ppa. defined_product\product_definition. formation.of_product , 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc. name IN ['part' , 'tool' , 'raw material' ] ) ) =0 ) ) ) ) =0; END_RULE; -- restrict_process_product_association |
public class RRestrict_process_product_association public int rWr3(SdaiContext _context) public int rWr2(SdaiContext _context) public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |