Установите для вывода вызова метода значение String в рабочей среде DROOLS

Я использую 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

в основном сохраняют результат вызова метода (replaceAll) для homePhoneNumber в переменную temp/local, которую я затем могу установить как часть атрибута homePhoneNumber моего SampleAttributes DataObject, но это нужно сделать с помощью редактора Guided. Я пытался использовать глобальные переменные, но не могу установить его в редакторе.

Может кто-нибудь, пожалуйста, дайте мне знать, как я могу достичь вышеуказанного с помощью редактора правил Guided?

Спасибо

0 ответов

Вы можете написать свой собственный файл.dsl, тип актива "Определения языка для конкретного домена", в том же проекте, что и правила, руководствуясь правилами, вы можете использовать drools dsl, чтобы написать то, что вам нужно.

Используйте "Управляемые правила (с DSL)" вместо просто "Руководящих правил"

На вкладке модели "Управляемые правила (с DSL)" при добавлении новой строки вы должны увидеть правило, которое вы написали в файле.dsl.

Другие вопросы по тегам