高度なカスタマイズ > ビジネスロジックのカスタマイズ > ビジネス規則 > ビジネス規則の設定と実行 > サンプルコード
  
サンプルコード
付属の変更通知ワークフローテンプレート内のワークフロー条件構文の例を次に示します。このワークフロー条件構文では、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」ワークフロータスクページに「コンフリクトを表示」レポートリンクが表示されます。