Exemple de code
Voici un exemple de syntaxe de routeur conditionnel de processus dans le modèle de processus d'avis de modification fourni. Le routeur conditionnel de processus adresse un appel au moteur des règles métier pour le jeu de règles métier CHANGEABLE_PRE_RELEASE. La règle métier CHANGEABLE_PRE_RELEASE contient les règles métier CHECKOUT_RULE et RELEASE_TARGET.
Expression de routage
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());
}
Notez que si les résultats de validation échouent, l'attribut businessRulesResultSetGlobal est défini sur la chaîne sérialisée du jeu de résultats de validation. Le lien de rapport Afficher les conflits s'affiche sur les pages de tâche de processus Audit Change Notice et Resolve Release Conflicts.
Est-ce que cela a été utile ?