Exemples de règles multiples, de jeux de règles et de relations
Imaginez que vous deviez configurer des règles permettant de vérifier plusieurs produits et plusieurs relations. Prenons l'exemple suivant :
Produit1
|
Produit2
|
Produit 3
|
Organisation
|
Jeu contenant deux règles :
• Objets affectés (règle de récupération)
• Objets résultants (règle de récupération et règle d'attribut d'article : le nom doit contenir moins de 10 caractères)
|
Jeu contenant une règle :
• Objets résultants (règle d'attribut d'article : le nom doit commencer par EXT)
|
Aucune règle, aucun jeu de règles
|
Jeu contenant une règle :
• Règle d'avis de modification : le nom doit commencer par CN
|
Une fois que toutes les règles sont créées, vous pouvez configurer le processus pour qu'il utilise ces jeux de règles à l'aide d'un code tel que le suivant :
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 );
Exemples :
• Si un article contenu dans Produit 1 est un objet résultant, son nom doit être inférieur à 10 caractères et l'article ne peut pas être récupéré.
• Si un document contenu dans Produit 2 est un objet résultant, aucune règle ne s'y applique car les règles s'appliquent uniquement aux articles.