在DROOLS工作台中将方法调用输出设置为String

时间:2017-12-12 04:45:18

标签: drools kie drools-guvnor kie-workbench drools-kie-workbench

我使用KIE Workbench(版本7.0.0.Final)使用Guided编辑器创建规则。我完全能够使用.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)的结果存储到temp / local变量,然后我可以将其设置为SampleAttributes DataObject的homePhoneNumber属性的一部分,但是要使用Guided编辑器完成。我尝试使用全局变量,但无法在编辑器中设置它。

有人可以告诉我如何使用Guided规则编辑器实现上述目标?

由于

1 个答案:

答案 0 :(得分:0)

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

使用“指导规则(带有DSL)”,而不仅仅是“指导规则”

在“指导规则(带有DSL)”模型标签中,添加新行时,您应该能够看到在.dsl文件中编写的规则