샘플 코드
다음은 제공된 변경 공지 워크플로 템플릿의 워크플로 조건 라우터 구문의 예입니다. 워크플로 조건 라우터는 CHANGEABLE_PRE_RELEASE 비즈니스 규칙 세트에 대한 비즈니스 규칙 엔진을 호출합니다. CHANGEABLE_PRE_RELEASE 비즈니스 규칙에는 CHECKOUT_RULERELEASE_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이 유효성 검사 결과 세트의 시리얼화된 문자열로 설정됩니다. "충돌 보기" 보고서 링크가 "Audit Change Notice" 및 "Resolve Release Conflicts" 워크플로 임무 페이지에 나타납니다.
도움이 되셨나요?