1

次の Drools DSL の「文」があります。

[when]The field {field} in the module {module} contains value {value}=$a : {module} ( {field} != null)
      String( this.equalsIgnoreCase("{value}") ) from $a.{field}

ここで、fieldは文字列の aSetです。

ここで、これらのルールが 2 つある場合、変数が 2 回発生するため、明らかに機能しません$a。そこで、変数を変数にするルールを改善したいと思いました。

[when]The field {field} in the module {module} contains value {value} as {a}={a} : {module} ( {field} != null)
      String( this.equalsIgnoreCase("{value}") ) from {a}.{field}

{a}.これは機能しません。破損した部分は使用できません。

{variable}.だから、私の質問は次のとおりです。ルールを書き直す方法、または表記法を機能させる方法はありますか? または、contains大文字と小文字を区別しない演算子はありますか?

4

1 に答える 1

2

Drools-Users メーリング リストに登録したところ、次のような回答がありました。

http://drools.46999.n3.nabble.com/rules-users-Using-from-x-field-in-DSL-tt4017872.html

概要: DSL パーサーのバグ。回避策として、RHS の変数の後に余分な文字を追加します。... as {a}={a}x (...) ... from {a}x.{field}

于 2012-06-13T07:46:11.270 に答える