Минимум между 3 атрибутами - PullRequest
0 голосов
/ 05 декабря 2018

Мне нужно подготовить поток, который подсчитывает, на сколько платежей мы можем разделить покупку.

Существует 3 конфликтующих бизнес-правила, которые дают разные ответы.Наше правило - возвращать меньшее значение.

Однако как я могу дать указание процессору UpdateAttribute вернуть минимум между 3 атрибутами, которые содержат число, возвращаемое бизнес-правилами?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

вы можете использовать процессор ExecuteGroovyScript с кодом вроде:

def ff=session.get()
if( !ff )return
ff.result = [ ff.a, ff.b, ff.c ].collect{ it as BigDecimal }.max()
REL_SUCCESS << ff
0 голосов
/ 05 декабря 2018

Вы можете использовать два процессора UpdateAttribute подряд, скажем, у вас есть три атрибута a, b и c.

Первый атрибут UpdateAttribute имеет что-то вроде:

result = $ {a: lt (b): ifElse (a, b)}

Теперь результат является меньшим из a и b.

Второй атрибут UpdateAttribute:

result = $ {result:lt (c): ifElse (result, c)}

Теперь результат наименьший из предыдущего результата и c.

...