Я новичок в 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
}
}
Я был бы очень признателен, если бы кто-нибудь дал мне подсказку / идею, как это сделать?
РЕДАКТИРОВАТЬ:
Привет,
Пока это то, что я могу разработать для случая пользователя, описанного выше.
- Я вставляю (Список
UserDetailVo
) в сеанс drools. - Объект (
UserDetailVo
) содержит (Список UserInfoVo
).Каждый UserInfoVo
содержит код.
Теперь я хочу перебрать (Список 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
Проблемы, с которыми я сталкиваюсь, - это если я изменю / обновляю пользователя в конце правила.Это входит в бесконечный цикл.Если я удаляю изменение / обновление, в случае 3, хотя размер списка, если больше 0, правило все еще запускается.