範例程式碼
以下是所提供「變更通知」工作流程範本中工作流程條件式路由器語法的範例。工作流程條件式路由器會呼叫企業規則引擎以取得 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 屬性設定為驗證結果集的序列化字串。「檢視衝突」報告連結將會顯示在「稽核變更通知」與「解決發行衝突」工作流程任務頁上。
這是否有幫助?