Ejemplo de varias reglas, conjuntos de reglas y relaciones
Suponga que es necesario configurar reglas para varios productos y relaciones. Tenga en cuenta el siguiente ejemplo:
Producto 1
|
Producto 2
|
Producto 3
|
Organización
|
Dos conjuntos de reglas:
• Objetos afectados (regla de extracción)
• Objetos resultantes (el nombre de la regla de extracción y de la regla de atributo del artículo deben ser menor de 10)
|
Un conjunto de reglas:
• Objetos resultantes (el nombre de la regla de atributo del artículo debe comenzar por EXT)
|
Ninguna regla o conjunto de reglas
|
Un conjunto de reglas:
• El nombre de la regla de la notificación de cambios debe comenzar con CN
|
Después de crear todas las reglas, se puede configurar el proceso de trabajo para que use estos conjuntos de reglas mediante un código como el siguiente:
com.ptc.core.businessRules.engine.BusinessRuleSetBean[] ruleSetBeans = new
com.ptc.core.businessRules.engine.BusinessRuleSetBean[] {
com.ptc.core.businessRules.engine.BusinessRuleSetBean.
newBusinessRuleSetBean ("CNOrgRuleSet", com.ptc.core.businessRules.engine.
BusinessRuleSetBean.PRIMARY_BUSINESS_OBJECT),
com.ptc.core.businessRules.engine.BusinessRuleSetBean.
newBusinessRuleSetBean("AffectedPartProdRuleSet", wt.change2.
AffectedActivityData.class.getName()),
com.ptc.core.businessRules.engine.BusinessRuleSetBean.newBusinessRuleSetBean
("ResultingPartProdRuleSet", wt.change2.ChangeRecord2.class.getName())
};
businessRulesResultSetGlobal = "";
preReleaseConflictsMsg = "";
com.ptc.core.businessRules.validation.RuleValidationResultSet
resultSet = wt.businessRules.BusinessRulesHelper.engine.execute
(primaryBusinessObject, ruleSetBeans );
Ejemplos:
• Si se tuviera un artículo del Producto 1 que fuese un objeto resultante, el artículo tendría que tener un nombre de artículo con menos de 10 caracteres y no se podría extraer.
• Si se tuviera un documento en el Producto 2 que fuese un objeto resultante, no habría reglas para él ya que solo hay reglas para los artículos.