2013-12-09 36 views
0
public void executeRules(IlrRule[] rules){ 
     IlrRuleset rulesetNew = new IlrRuleset(); 
     IlrContext ctxt = new IlrContext(rulesetNew); 
     IlrTask task = ruleset.getTask("ExecFlow#exe"); 
     IlrRuleTaskRunner runner = ctxt.getRuleTaskRunner(task); 
     runner.setActiveRules(rules); 
     int fired = 0; 
     runner.runInitialActions(); 
     fired += runner.runBody(); 
     runner.runFinalActions(); 

} 

如何从规则组中创建动态规则集?这个群体是一个动态的。 我使用IBM ODM 8.0.1ILOG动态规则集

回答

0

所有的Java实现都消失了,我们用IRL的语言,这是解决方案:

我们所界定的范围,我们选择的规则动态

scope= {exe.R05,exe.R04,exe.R03} 

body = dynamicselect() { 
    return selectedFunction(context.getRuleset().allRules); 
} 
0
body = dynamicselect() {  
    return selectedFunction(context.getRuleset().allRules);  
} 

足以定制您想要执行的规则。

1

只要小心动态选择。如果您有很多规则,它可以显着增加规则集的执行时间。