我正在使用 JRules Studio 开发一些极其简单的规则。规则填充 IN_OUT 参数。测试完成后,有没有办法查询 IN_OUT 对象中的值?
最初我想在调试器中询问它,但任何其他想法都会受到欢迎。
我不确定是否理解这个问题:
你的 JAVA 代码是这样的:
然后你使用你的“out”参数......就像你对任何 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“);
如果您想在调试时看到它们,我会说:
1/(未测试)在调试器透视图中查看“工作内存选项卡”
我不确定,但如果在此处可见,这是找到它们的最简单方法
2/(已测试)在您的规则流起点的初始操作中,添加:
context.insert(您的参数的技术名称);
不是“企业名称”。无论如何避免在规则流、IRL 规则等技术工件中使用 BAL!
通过这样做,您可以强制引擎将您的参数插入到工作内存中。
没有重复(别担心,它会像魅力一样工作)但据我所知,这是使它们在 JRules 的 Eclipse 调试器中可见的最短方法
希望它有所帮助