数据编织 1.0 到 2.0
Dataweave 1.0 to 2.0
尝试将以下数据编织从 1.0 转换为 2.0,但我尝试的所有操作都出现以下错误之一。关于如何在 dataweave 2.0 中编写相同的内容有什么想法吗?
无效输入“地图{实体:$.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]
}
有些事情发生了变化。首先,输出没有以 %
开头,并且 if 语句现在采用 if (condition) result else otherResult
格式。现在也使用 START to FINISH
指定范围,例如:0 to -1
选择整个范围。
试试这个:
%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 to 3] == 'CHN '
or $.VENDOR_SITE_CODE[0 to 3] == 'FDL '
or $.VENDOR_SITE_CODE[0 to 3] == 'HPP '
or $.VENDOR_SITE_CODE[0 to 3] == 'MEX '
or $.VENDOR_SITE_CODE[0 to 3] == 'P&A '
or $.VENDOR_SITE_CODE[0 to 3] == 'STC ')
and ($.ORG_ID == '116' or $.ORG_ID == '5195')
and checkNull($.INACTIVE_DATE) == '')
map {
Entity: $.VENDOR_SITE_CODE[0 to 2]
}
就像@aled 提到的那样,尽管查看输入和预期输出会很有帮助。
尝试将以下数据编织从 1.0 转换为 2.0,但我尝试的所有操作都出现以下错误之一。关于如何在 dataweave 2.0 中编写相同的内容有什么想法吗?
无效输入“地图{实体:$.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]
}
有些事情发生了变化。首先,输出没有以 %
开头,并且 if 语句现在采用 if (condition) result else otherResult
格式。现在也使用 START to FINISH
指定范围,例如:0 to -1
选择整个范围。
试试这个:
%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 to 3] == 'CHN '
or $.VENDOR_SITE_CODE[0 to 3] == 'FDL '
or $.VENDOR_SITE_CODE[0 to 3] == 'HPP '
or $.VENDOR_SITE_CODE[0 to 3] == 'MEX '
or $.VENDOR_SITE_CODE[0 to 3] == 'P&A '
or $.VENDOR_SITE_CODE[0 to 3] == 'STC ')
and ($.ORG_ID == '116' or $.ORG_ID == '5195')
and checkNull($.INACTIVE_DATE) == '')
map {
Entity: $.VENDOR_SITE_CODE[0 to 2]
}
就像@aled 提到的那样,尽管查看输入和预期输出会很有帮助。