我是 Jboss Rule 的新手。我已经浏览了文档,但我找不到开始为以下代码示例编写规则的方法。
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
}
}
编辑:
到目前为止,这是我可以为上面讨论的用户案例开发的。
- 我正在将 (List of
UserDetailVo
) 插入到 drools 会话中。 - 对象 (
UserDetailVo
) 包含 (List ofUserInfoVo
)。每个都UserInfoVo
包含一个代码。
现在我想迭代 (List of UserInfoVo
) 并将 ( letterId
) 更新到每个 ( UserDetailVo
),就像我在下面尝试做的那样。
Case1 : 当 codeList 有 110,121
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
Case2 : 当 codeList 有 110,127
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
Case3 : 当 codeList 只有 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
我面临的问题是如果我在规则结束时用户修改/更新。它进入一个无限循环。如果我删除修改/更新,如果列表大小大于 0,则在情况 3 中仍然会触发规则。