3个属性之间的最小值

时间:2018-12-05 16:55:44

标签: apache-nifi

我必须准备一个流程,该流程计算出我们可以划分购买数量的分期付款。

有3个相互冲突的业务规则给出不同的答案。我们的规则是返回较小的值。

但是如何指示UpdateAttribute处理器返回包含业务规则返回的数字的3个属性之间的最小值?

2 个答案:

答案 0 :(得分:3)

您可以连续使用两个UpdateAttribute处理器,假设您具有三个属性a,b和c。

第一个UpdateAttribute具有类似以下内容:

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

现在的结果是a和b中的较小者。

第二个UpdateAttribute:

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

现在的结果是前一个结果和c中的较小者。

答案 1 :(得分:0)

您可以将ExecuteGroovyScript处理器与以下代码一起使用:

def ff=session.get()
if( !ff )return
ff.result = [ ff.a, ff.b, ff.c ].collect{ it as BigDecimal }.max()
REL_SUCCESS << ff