0

我正在使用 KIE Workbench(版本 7.0.0.Final)使用引导式编辑器创建规则。我完全能够使用 .drl 文件创建规则,但在使用编辑器创建相同规则时遇到问题。考虑以下示例:

我在编辑器中创建了以下规则,在“源”选项卡中转换为:

package com.myteam.orica;

import java.lang.String;

rule "Home Phone"
   dialect "java"
when
    sampleAttributes : SampleAttributes( homePhoneNumber : homePhoneNumber != null )
then
    sampleAttributes.setHomePhoneNumber( homePhoneNumber.replaceAll( "[^\\d]", "" ) );
end

理想情况下,我希望它是这样的:

package com.myteam.orica;

import java.lang.String;

rule "Home Phone"
   dialect "java"
when
    sampleAttributes : SampleAttributes( homePhoneNumber : homePhoneNumber != null )
then
    String str = homePhoneNumber.replaceAll( "[^\\d]", "" );
    sampleAttributes.setHomePhoneNumber( str );
end

基本上将 homePhoneNumber 上的方法调用 (replaceAll) 的结果存储到一个临时/局部变量中,然后我可以将其设置为我的 SampleAttributes DataObject 的 homePhoneNumber 属性的一部分,但要使用引导编辑器完成。我尝试过使用全局变量,但无法在编辑器中进行设置。

有人可以让我知道如何使用引导式规则编辑器实现上述目标吗?

谢谢

4

1 回答 1

0

您可以编写自己的 .dsl 文件,资产类型“域特定语言定义”,在与引导规则相同的项目中,您可以使用 drools dsl 编写您需要的内容。

使用“引导规则(使用 DSL)”而不仅仅是“引导规则”

在“Guided Rules (with DSL)”模型选项卡中,添加新行时,您应该能够看到您在 .dsl 文件中编写的规则

于 2018-12-14T17:24:22.057 回答