Beispielcode
Nachfolgend sehen Sie ein Beispiel für die Syntax des konditionalen Workflow-Routers in der gelieferten Workflow-Vorlage für die Änderungsnachricht. Der konditionale Workflow-Router ruft die Geschäftsregel-Engine für den Geschäftsregelsatz CHANGEABLE_PRE_RELEASE auf. Die Geschäftsregel CHANGEABLE_PRE_RELEASE enthält die Geschäftsregeln CHECKOUT_RULE und RELEASE_TARGET.
Routing-Ausdruck
result = "NOT_READY";
com.ptc.core.businessRules.engine.BusinessRuleSetBean[] ruleSetBeans =
new com.ptc.core.businessRules.engine.BusinessRuleSetBean[] {
com.ptc.core.businessRules.engine.BusinessRuleSetBean.
newBusinessRuleSetBean("CHANGEABLE_PRE_RELEASE", "wt.change2.ChangeRecord2")
};
//Invoke the business rule engine
com.ptc.core.businessRules.validation.RuleValidationResultSet resultSet =
wt.businessRules.BusinessRulesHelper.engine.execute(primaryBusinessObject,
ruleSetBeans);
if ( !resultSet.hasResultsByStatus(com.ptc.core.businessRules.validation.
RuleValidationStatus.FAILURE)) {
result = "PROCEED";
}
else {
//This line of code will start exception handling for the business
rules that failed
businessRulesResultSetGlobal = wt.businessRules.BusinessRulesHelper.
serialize(resultSet);
preReleaseConflictsMsg = new wt.util.WTMessage("com.ptc.windchill.
enterprise.change2.change2ClientResource", com.ptc.windchill.enterprise.
change2.change2ClientResource.BUSINESS_RULES_PRERELEASE_VALIDATION_MSG,
null).getLocalizedMessage();
preReleaseConflictsMsg = preReleaseConflictsMsg + "\n" + resultSet.
getFailedRulesMessage(java.util.Locale.getDefault());
}
Wenn die Validierungsergebnisse nicht erfolgreich sind, wird das Attribut businessRulesResultSetGlobal auf die serialisierte Zeichenfolge des Validierungsergebnissatzes festgelegt. Der Berichtlink "Konflikte anzeigen" wird auf den Workflow-Aufgabenseiten "Audit Change Notice" und "Resolve Release Conflicts" angezeigt.
War dies hilfreich?