Пример кода
Ниже приведен пример синтаксиса условного маршрутизатора рабочего процесса в предоставленном шаблоне рабочего процесса извещения об изменении. Условный маршрутизатор рабочего процесса вызывает обработчик бизнес-правил для набора бизнес-правил CHANGEABLE_PRE_RELEASE. Бизнес-правило CHANGEABLE_PRE_RELEASE содержит бизнес-правила CHECKOUT_RULE и RELEASE_TARGET.
Выражение ветвления
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());
}
Заметьте, что если результаты проверки неудачны, атрибуту businessRulesResultSetGlobal присваивается сериализованная строка набора результатов проверки. Ссылка на отчет "Показать конфликты" будет отображаться на страницах заданий рабочего процесса "Аудит извещений об изменении" и "Разрешение конфликтов выпуска".