0

DRT (ルール テンプレート) を使用して Excel シートを読み取り、Java クラスの静的メソッドを使用してクラスのオブジェクトに変換しています。また、それを作業メモリに挿入します。このようにして、ワーキング メモリは Excel シートのすべての事実で満たされます。

現在、セッションを介して INSERT() の Java クラスを介してファクトを送信しています。2 つの類似したオブジェクトを照合し、一致したオブジェクトをワーキング メモリから返す必要があります。例として:

Excel から読み取り、ワーキング メモリに挿入します。

Person(name == "Kumar", Age == 60, status == true);

Javaクラスでは、セッションを介して次のオブジェクトを挿入しています:

Person(name == "Kumar", Age == 60 );

Status = true次に、2 つのオブジェクトを比較して設定する必要があります。

両方のオブジェクトを比較するルールを作成する必要があります。

何らかの方法を提案してください。

ありがとうショラフ

4

1 に答える 1

1

3 つ以上の「類似した」事実が存在する可能性があると仮定する必要がある場合は、次のようにするのが最善です。

rule "find same name and age"
when
    $p1: Person( $name: name, $age: age, status == false )
    $p2: Person( name == name, age == $age, status == false, this != $p1 )
    accumulate( $p: Person( name == name, age == $age, status == false );
                $list: collectList( $p ) )
then
    for( int i = 0; i < $list.size(); i++ ){
        Person p = (Person)$list.get(i);
        update( p ){ setStatus( true ) }
    }
end
于 2014-09-15T12:16:00.763 に答える