我使用JRules Studio开发一些非常简单的规则。规则填充IN_OUT参数。测试完成后,有没有办法询问IN_OUT对象中的值?
最初,我想在调试器中查询它,但欢迎任何其他想法。
答案 0 :(得分:0)
我不确定这个问题:
您的JAVA代码如下:
IlrSessionFactory factory = new IlrJ2SESessionFactory();
IlrStatelessSession session = factory.createStatelessSession();
IlrSessionRequest sessionRequest = factory.createRequest();
sessionRequest.setRulesetPath(“/RuleAppName/rulesetName”);
sessionRequest.setTraceEnabled(true);
sessionRequest.getTraceFilter().setInfoAllFilters(true);
Map inputParameters = new HashMap ();
Report in_report = new Report(); // no-arg constructor
// ... populate the Object ...
inputParameters.put("report", in_report);
sessionRequest.setInputParameters(inputParameters);
IlrSessionResponse sessionResponse = session.execute(sessionRequest);
Report out_report = (Report)sessionResponse.getOutputParameters().get("report“);
然后你玩你的“out”参数......正如你对任何JAVA对象所做的那样
如果你想在调试时看到它们,我会说:
1 /(未测试)在调试器透视图中查看“工作内存选项卡” 我不确定,但这是找到它们的最简单方法,如果它在这里可见
2 /(测试)在规则流程起点的初始操作中,添加:
context.insert(参数的技术名称);
不是“商业名称”。无论如何,避免在技术工件中使用BAL,例如规则流,IRL规则!
通过这样做,您可以强制引擎将参数插入工作存储器中
没有重复(不用担心,它会像魅力一样工作),但据我记忆,这是使它们在JRules中的Eclipse调试器中可见的最短路径
希望它有所帮助