如何在mule4 datawave2.0中的mapobject(我不想使用索引)中增加变量值? 我的代码:
"Employees":{(inputData.*Employees.*Employee map{
"Employee": ($) mapObject(v,k) -> {
---Increment variable value here
(k):updateReferenceId(v,($$)+1,v)
}
})}
答案 0 :(得分:1)
您可以在reduce操作的累加器中递增值,然后可以将其添加到输出的结构化数据计划中。 MuleSoft DataWeave培训课程中有一些示例
flightsInput reduce ( ( flight, acc={ american: {price: 0, count: 0}, delta: {price: 0, count: 0}, united: {price: 0, count: 0} } ) -> flight.airlineName match { case american if(lower(american) contains "amer") -> acc - "american" ++ american: { price: acc.american.price + flight.price, count: acc."american".count + 1 } case delta if(lower(delta) contains "del") -> acc - "delta" ++ delta: { price: acc.delta.price + flight.price, count: acc."delta".count + 1 } case united if(lower(united) contains "uni") -> acc - "united" ++ united: { price: acc.united.price + flight.price, count: acc."united".count + 1 } else -> acc } )
这将创建具有三个不同关键绩效指标的数据结构:
答案 1 :(得分:0)
像DataWeave,you can not increment a variable这样的功能语言中的常规用法。您可以改为从表达式返回增量值。例如,您可以执行一个递归函数,使其返回的输入增量为1。只需假设变量在DataWeave中是不变的。
您首先应该考虑要解决什么问题,为什么您真的需要增加该变量以及为什么mapObject()的索引不适合该需求。