私はJboss Ruleを持つ初心者です。私はドキュメンテーションを読みましたが、次のコードサンプルのルールを書き始めるアプローチを見つけることができません。Drools JBOSSルールネストされたIFの
For each User code in the list
{
If User code = ‘11’
{
If User code ‘17’ present in the group
{
Add letter id 1
}
Else If User code ‘18’ present in the group
{
Add letter id 2
}
}
Else
{
Add letter id 3 which is the letter need to be sent for code 11
}
}
誰でも私にヒント/アイデアを伝えることができれば本当に感謝していますか?
EDIT:
こんにちは、
今のところ、これは私が上記のユーザーの場合のために開発することができるものです。
- 私はdroolsセッションに(List of
UserDetailVo
)を挿入しています。 - オブジェクト(
UserDetailVo
)には(List ofUserInfoVo
)が含まれています。すべてUserInfoVo
にはコードが含まれています。
今、私は私が下記のやろうとしていて、すべての(UserInfoVo
のリスト)と更新(letterId
)(UserDetailVo
)を反復します。
ケース1:コードリストのみ110
rule "USER LETTER GROUPING 110"
salience 300
no-loop true
when
userDetailVo : UserDetailVo (this.letterID.size() == 0) // Checking size of the list
UserInfoVo(code=="110") from userDetailVo.codeList
then
userDetailVo.addLetterId(3);
//modify(trrDetailRequestVo)
end
を有する:コードリストは、ケース3 110127
rule "USER LETTER GROUPING 110,127"
salience 300
no-loop true
when
userDetailVo : UserDetailVo()
UserInfoVo(code=="110") from userDetailVo.codeList
UserInfoVo(code=="127") from userDetailVo.codeList
then
userDetailVo.addLetterId(2);
//modify(trrDetailRequestVo)
end
を有する:コードリストは、ケース2 110121
rule "USER LETTER GROUPING 110,121"
salience 300
no-loop true
when
userDetailVo : UserDetailVo()
UserInfoVo(code=="110") from userDetailVo.codeList
UserInfoVo(code=="121") from userDetailVo.codeList
then
userDetailVo.addLetterId(1);
//modify(trrDetailRequestVo)
end
を有します
私が直面する問題は、ユーザーがルールの最後に変更/更新する場合です。それは無限ループに入ります。変更/更新を削除すると、ケース3の場合でもリストサイズが0より大きい場合でもルールは強制的に起動されます。
まだ情報が不足していますので、タイプを数えましょう。私は 'User'、' Letter'を見ていますが、 'Group'とは何か、そしてそれが' User'にどう関係しているのか分かりません。 – Osw
問題文を更新しました。 Thanx –