#mule #mule4
Вопрос:
Я использую пакетную обработку, которая имеет более одного пакетного шага.
Результатом одного пакетного шага является :
[
{
"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
}
]
На следующем этапе пакетной обработки я использую поле «ПРИНЯТЬ ВЫРАЖЕНИЕ» со значением как :
#[payload.TotalPurchase > 100]
Но я получаю ошибку :
Types `Array` and `Number` can not be compared.
payload.TotalPurchase > 100
^^^^^^^^^^^^^^^^^^^^^
Есть какие-нибудь идеи, почему это происходит?
Ответ №1:
Возможно, вы хотите обработать каждый элемент массива как запись, но для этой полезной нагрузки значение #[payload.TotalPurchase]
равно:
[
0,
1,
8,
27,
64,
125,
216,
343,
512,
729,
1000
]
Это связано с тем, что DataWeave возвращает массив всех элементов TotalPurchase в массиве. Таким образом, невозможно сравнить этот вычисленный массив с числом.