Сделайте правило на drolls для проверки подданных - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть посылка.Пакет включает в себя список предметов.Элемент имеет список полей.Мне нужно проверить, установлены ли для определенных полей правильные значения для всех элементов в пакете:

rule "Slapper"
    dialect "mvel"
    when
        itm : item( ) from pkg.items
        List( size() == itm.size() ) from collect (
            field( fieldId == "111" , value == "1" ) from itm.fields
            field( fieldId == "222" , value == "2" ) from itm.fields
        ) from itm
    then
        ...
end

как я могу получить коллекцию, отфильтрованную по подполям?

1 Ответ

0 голосов
/ 06 февраля 2019

Необходимо использовать накапливать функция:

List( size == pkg.items.size() ) from accumulate (
    $a: itemData( $field1: fields,  $field2: fields ) from pkg.items
    and
    fieldData( fieldId == "111" , value == "1" ) from $field1
    and
    fieldData( fieldId == "222" , value == "2" ) from $field2;
    collectList( $a )
)
...