Global variables optaplanner中的全局变量

Global variables optaplanner中的全局变量,global-variables,drools,optaplanner,drools-planner,Global Variables,Drools,Optaplanner,Drools Planner,在drools规则文件中,如何为optaplanner设置(或初始化)全局变量的值。我的用例如下: 我想声明一个全局java映射,它是常量,在执行过程中不会改变。每个规则都将访问映射以检查值,如果值在映射中,则规则的计算结果将为false。在开始执行之前,通过访问文件/数据库中的数据生成映射 此链接还请求访问全局变量,但此功能现在被拒绝 如何使用此链接中定义的hack:,从哪个对象获取CustomSolverPaseCommand?[我还不能对这篇文章发表评论,因为我没有足够的声誉,如果这似乎是

在drools规则文件中,如何为optaplanner设置(或初始化)全局变量的值。我的用例如下:

我想声明一个全局java映射,它是常量,在执行过程中不会改变。每个规则都将访问映射以检查值,如果值在映射中,则规则的计算结果将为false。在开始执行之前,通过访问文件/数据库中的数据生成映射

此链接还请求访问全局变量,但此功能现在被拒绝

如何使用此链接中定义的hack:,从哪个对象获取CustomSolverPaseCommand?[我还不能对这篇文章发表评论,因为我没有足够的声誉,如果这似乎是重复的问题,很抱歉]

我正在从xml资源创建SolverFactory,xml文件包含.drl文件的路径。就像在.drl中一样,我们可以访问对象HardSoftScoreHolder scoreHolder,我想在规则的“then”部分以同样的方式访问地图


有人能帮忙吗?

看看那些例子,它们的类以
参数化
结尾,比如
会议参数化
,这可能是一个比globals更好的选择。

我查看了Parameterization类,我认为reference Conference Parameterization与我正在寻找的略有不同。因为在我的例子中,java map是规划实体的一部分,它表示我在规划过程中需要使用的一些历史数据。虽然为了使事情顺利进行,我已经用类似的方式建模了我的问题,但我不确定从drools文件调用parametification类是否是一个好的设计。您能不能对此提出意见:我在参数化类中放置一些硬编码数据,并添加了一个公共函数,我从drools文件调用。在drools文件中,我必须访问参数类,如下所示:
$param:myParameterization()eval(!$param.ispriorouse($type,$month))
我没有看到任何这样的示例代码。虽然这很有效,解决了我的问题。谢谢你的帮助!!