【发布时间】:2021-05-03 14:38:15
【问题描述】:
尝试将以下 dataweave 从 1.0 转换为 2.0,但我尝试过的所有操作都会出现以下错误之一。关于如何在 dataweave 2.0 中编写相同的任何想法?
输入无效“map {Entity: $.VENDOR_SITE_CODE[0..2”,预期的 PropertyName 或? 无效的输入“过滤器(($.VENDOR_SITE_CODE[0..3”,预期的 PropertyName 或?
%dw 1.0
%output application/java
%function checkNull(value) '' when value == null otherwise value
---
payload.MMAP_SUPPLIER_DETAILS_OBJ_TYPE.SITES.*MMAP_SUPPLIER_SITE_OBJ_TYPE
filter (($.VENDOR_SITE_CODE[0..3] == 'CHN '
or $.VENDOR_SITE_CODE[0..3] == 'FDL '
or $.VENDOR_SITE_CODE[0..3] == 'HPP '
or $.VENDOR_SITE_CODE[0..3] == 'MEX '
or $.VENDOR_SITE_CODE[0..3] == 'P&A '
or $.VENDOR_SITE_CODE[0..3] == 'STC ')
and ($.ORG_ID == '116' or $.ORG_ID == '5195')
and checkNull($.INACTIVE_DATE) == '')
map {
Entity: $.VENDOR_SITE_CODE[0..2]
}
%dw 2.0
output application/java
fun checkNull(value) = if (value == null) '' else value
---
payload.MMAP_SUPPLIER_DETAILS_OBJ_TYPE.SITES.*MMAP_SUPPLIER_SITE_OBJ_TYPE
filter (($.VENDOR_SITE_CODE[0..3] == 'CHN '
or $.VENDOR_SITE_CODE[0..3] == 'FDL '
or $.VENDOR_SITE_CODE[0..3] == 'HPP '
or $.VENDOR_SITE_CODE[0..3] == 'MEX '
or $.VENDOR_SITE_CODE[0..3] == 'P&A '
or $.VENDOR_SITE_CODE[0..3] == 'STC ')
and ($.ORG_ID == '116' or $.ORG_ID == '5195')
and checkNull($.INACTIVE_DATE) == '')
map {
Entity: $.VENDOR_SITE_CODE[0..2]
}
【问题讨论】:
-
导致该错误的 DataWeave 2 的输入和脚本是什么?
-
另外,您还应该提供您尝试过的 DW 2.0 表达式。
-
如果你碰巧有本地版本的 DW。 2.0 Playground 在您的机器上运行,您只需复制并粘贴 DW 1.0 脚本,它就会为您生成等效的 DW 2.0 脚本。这同样适用于 DW 的 IntelliJ 插件。但是,dwlang.fun 中还没有该功能。
标签: dataweave