Beispiel für mehrere Regeln, Regelsätze und Beziehungen
Angenommen, Sie möchten Regeln für mehrere Produkte und mehrere Beziehungen konfigurieren. Folgendes Beispiel soll zur Erläuterung dienen:
Produkt 1
|
Produkt 2
|
Produkt 3
|
Organisation
|
Zwei Regelsätze:
• Betroffene Objekte (Checkout-Regel)
• Ergebnisobjekte (Checkout-Regel und Teileattribut-Regel – Name muss weniger als 10 Zeichen umfassen)
|
Ein Regelsatz:
• Ergebnisobjekte (Teileattribut-Regel – Name muss mit EXT beginnen)
|
Keine Regeln oder Regelsätze
|
Ein Regelsatz:
• Änderungsnachricht-Regel – Name muss mit CN beginnen
|
Nachdem alle Regeln erstellt wurden, können Sie den Workflow beispielsweise mit folgendem Code für die Verwendung dieser Regelsätze konfigurieren:
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 );
Beispiele:
• Wenn Produkt 1 ein Teil enthält, bei dem es sich um ein Ergebnisobjekt handelt, muss das Teil einen Teilenamen mit weniger als 10 Zeichen aufweisen, und es kann nicht ausgecheckt werden.
• Wenn Produkt 2 ein Dokument enthält, bei dem es sich um ein Ergebnisobjekt handelt, sind keine Regeln für dieses vorhanden, da es nur Regeln für Teile gibt.