Java drl文件中的Drool全局变量初始化

Java drl文件中的Drool全局变量初始化,java,drools,kie,Java,Drools,Kie,所以只想初始化drl文件中的计数变量 从规则内部更新全局的方法是使用automagic变量kcontext: package com.example.drools; global Integer count; // I want to initialize this count variable with some default value. rule "Initialize" when then

所以只想初始化drl文件中的计数变量

从规则内部更新全局的方法是使用automagic变量
kcontext

 package com.example.drools; 

 global Integer count; // I want to initialize this count variable with some 
                         default value. 

   rule "Initialize"
   when
   then
       count= 1; // Locally it's possible but want it to set globally which can 
                     be use in any other rules just simply by calling it.
       System.out.println("count="+count);
   end

  rule "Drools Introduction"
  when
  then
     System.out.println("count="+count); // Here output is coming null which in 
                                            want some default value set for 
                                            global value.
  end

一些注意事项:

  • 您应该在规则中使用高显著性,以便在执行任何其他也使用全局规则的规则之前执行该规则
  • 如果在规则的LHS中使用全局变量,则此方法将不起作用。如果是这样的话,我建议使用事实而不是全局

希望它能有所帮助,

Esteban Aliverti@it's beging working.Java代码之后,在插入事实和触发规则之前,我们还有其他方法吗。
global Integer count;

rule "Initialize"
salience 100
when
then
       kcontext.getKieRuntime().setGlobal("count", 1);
end