Mule 4:批处理:批处理步骤中接受表达式时出错

Mule 4 : Batch Processing : Error in Accept Expression in Batch step

我正在使用具有多个批处理步骤的批处理。

一个批处理步骤的输出是:

[
  {
    "CustomerId": "00",
    "TotalPurchase": 0
  },
  {
    "CustomerId": "11",
    "TotalPurchase": 1
  },
  {
    "CustomerId": "22",
    "TotalPurchase": 8
  },
  {
    "CustomerId": "33",
    "TotalPurchase": 27
  },
  {
    "CustomerId": "44",
    "TotalPurchase": 64
  },
  {
    "CustomerId": "55",
    "TotalPurchase": 125
  },
  {
    "CustomerId": "66",
    "TotalPurchase": 216
  },
  {
    "CustomerId": "77",
    "TotalPurchase": 343
  },
  {
    "CustomerId": "88",
    "TotalPurchase": 512
  },
  {
    "CustomerId": "99",
    "TotalPurchase": 729
  },
  {
    "CustomerId": "1010",
    "TotalPurchase": 1000
  }
]

在下一个批处理步骤中,我使用值为 ACCEPT EXPRESSION 的字段:

#[payload.TotalPurchase > 100]

但我收到错误消息:

Types `Array` and `Number` can not be compared.
payload.TotalPurchase > 100
   ^^^^^^^^^^^^^^^^^^^^^

知道为什么会这样吗?

也许您想将数组的每个元素作为记录处理,但对于该输入负载,#[payload.TotalPurchase] 的值是:

[
  0,
  1,
  8,
  27,
  64,
  125,
  216,
  343,
  512,
  729,
  1000
]

那是因为 DataWeave returns 数组中所有 TotalPurchase 成员的数组。因此无法将该计算数组与数字进行比较。