Codice di esempio
Di seguito è riportato un esempio della sintassi del router condizionale di workflow nel modello di workflow Notifica di modifica fornito. Il router condizionale di workflow effettua una chiamata al motore delle regole aziendali per l'insieme di regole aziendali CHANGEABLE_PRE_RELEASE. La regola aziendale CHANGEABLE_PRE_RELEASE contiene le regole aziendali CHECKOUT_RULE e RELEASE_TARGET.
Espressione di instradamento
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());
}
Se i risultati della convalida non sono positivi, l'attributo businessRulesResultSetGlobal viene impostato sulla stringa serializzata dell'insieme di risultati della convalida. Il link di report "Mostra conflitti" viene visualizzato nelle pagine dei task di workflow "Audit Change Notice" e "Resolve Release Conflicts".
È stato utile?