这里是 FTP 创建代码:
%dw 2.0
output application/csv separator='|',
header = false
---
payload distinctBy $.integrationid orderBy $.integrationidl
- "integrationid" - "integrationidl"
在上面的代码中,我想使用 integrationid 和 integrationdl 列进行排序。但我不希望将有效负载中的这些列打印在 CSV 文件中。我根据 mulesoft 文档尝试了上面的代码,但它不起作用。很可能是因为它是一个数组。你能帮助实现这一目标吗?
orderBy() 函数返回的是一个数组。应用于对象和字符串的
-
运算符通过键名从对象中删除键对。您不能将它应用于数组。这意味着您需要映射数组的每个元素并从每个元素中删除键。
%dw 2.0
output application/csv separator='|', header=false
---
payload
distinctBy $.integrationid
orderBy $.integrationidl
map $ - "integrationid" - "integrationidl"
另一种替代
-
运算符的方法是使用 filterObject()
条件来过滤每个对象中保留的键值。优点是我们可以在条件中使用 contains()
和列名列表来使脚本更通用。
%dw 2.0
output application/csv separator='|', header=false
var filterColumns=["integrationid", "integrationidl"]
---
payload
distinctBy $.integrationid
orderBy $.integrationidl
map ($ filterObject !(filterColumns contains ($$ as String)))