根据dataweave 2.0中的两列或多列进行比较,过滤并合并两个数组
filter and merge two arrays with comparison based on two or more columns in dataweave 2.0
我有两个大 JSON
数组,我必须根据两列 filter
和 merge
:
mongo.NUM_CONTROL = mysql.DOCNUM
mongo.NUM_ITEM = mysql.LIN_NUM_ITEM
我已经制作了这个我使用 map
参数(item
和 key
)的脚本,这样就不必映射每个 json 的每一列(它们每个大约有 50 列)
此外,它还适用于将 NUM_CONTROL 与 DOCNUM 进行比较。
但是,我无法使其适用于 NUM_ITEM 和 LIN_NUM_ITEM。
mongo map (mItems, mKeys) -> using (mongoCtrl = mItems.NUM_CONTROL)
{
(mysql filter ($.*DOCNUM contains mongoCtrl) map (sItems, sKeys) -> {
(sItems mapObject (sItem, sKey) ->
(sKey): sItem
),
(mItems mapObject (mItem, mKey) ->
(mKey): mItem
)
})
}
编辑:这里有一些示例数据
mongo =
[
{
"VLR_UNIT": 1581.1,
"OBSERVACAO": null,
"COD_NATUREZA_OP": "155",
"VLR_TRIBUTO_ICMS": 1715.81,
"ALIQ_ICMS_ORIGEM": 7,
"VLR_BASE_ISENTA_IPI": 7,
"COD_CFO": "5171",
"VLR_TRIBUTO_ICMMST": 7,
"VLR_BASE_REDUZIDA_IPI": 7,
"DATA_FISCAL": "1718-78-73T77:77:77",
"COD_EMPRESA": "TRV",
"VLR_BASE_TRIBUTADA_ICMSST": 7,
"VLR_BASE_ISENTA_ICMSST": 7,
"COD_FEDERAL": "77753",
"VLR_BASE_OUTRAS_IPI": 57637.4,
"VLR_BASE_ISENTA_ICMS": 7,
"VLR_DESONERADO": 7,
"COD_PRODUTO": "1777776316",
"RAIZ": "77787381",
"VLR_ICMSS_N_ESCRIT": 7,
"IND_SIMPLES_NAC": "S",
"VLR_ITEM": 57637.4,
"ALIQ_TRIBUTO_ICMS": 18,
"QUANTIDADE": 31,
"DATA_EMISSAO": "1718-78-73T77:77:77",
"ALIQ_ICMS_DEST": 18,
"VLR_BASE_OUTRAS_ICMS": 7,
"NUM_DOCFIS": "777717117",
"VLR_BASE_REDUZIDA_ICMS": 38375.16,
"VLR_DESCONTO": 7,
"VLR_CONTAB_ITEM": 57637.4,
"VLR_BASE_TRIBUTADA_IPI": 7,
"CLAS_ITEM": 4,
"IND_PRODUTO": "1",
"INSC_SUFRAMA": null,
"VLR_IPI_NDESTAC": 7,
"VLR_DIFAL": 7,
"COD_MEDIDA": "TO",
"VLR_FRETE": 7,
"VLR_OUTRAS": 7,
"COD_SITUACAO_B": "17",
"COD_SITUACAO_A": "7",
"VLR_TOT_NOTA": 57637.4,
"MOVTO_E_S": "8",
"COD_ESTAB": "7141",
"NUM_ITEM": 1,
"VLR_SEGURO": 7,
"COD_MODELO": "55",
"COD_NBM": "31758787",
"COD_MUNICIPIO_ORIG": 6571,
"VLR_ALIQ_ICMSST": 7,
"SITUACAO_DOCUMENTO": "NORMAL",
"VLR_BASE_ICMSS_N_ESCRIT": 7,
"VLR_TRIBUTO_IPI": 7,
"NUM_CONTROL": "7771838361",
"VLR_BASE_OUTRAS_ICMSST": 7,
"VLR_BASE_TRIBUTADA_ICMS": 11155.14,
"UF_PLANTA": "BA",
"VLR_BASE_REDUZIDA_ICMSST": 7,
"ALIQ_TRIBUTO_IPI": 7,
"COD_MUNICIPIO_DEST": 31357,
"SERIE_DOCFIS": "57",
"DIF_ALIQ_TRIBUTO": 7,
"VLR_ICMS_NDESTAC": 7
},
{
"VLR_UNIT": 1357,
"OBSERVACAO": null,
"COD_NATUREZA_OP": "155",
"VLR_TRIBUTO_ICMS": 1316.46,
"ALIQ_ICMS_ORIGEM": 7,
"VLR_BASE_ISENTA_IPI": 7,
"COD_CFO": "5171",
"VLR_TRIBUTO_ICMMST": 7,
"VLR_BASE_REDUZIDA_IPI": 7,
"DATA_FISCAL": "1718-78-73T77:77:77",
"COD_EMPRESA": "TRV",
"VLR_BASE_TRIBUTADA_ICMSST": 7,
"VLR_BASE_ISENTA_ICMSST": 7,
"COD_FEDERAL": "77753",
"VLR_BASE_OUTRAS_IPI": 31877,
"VLR_BASE_ISENTA_ICMS": 7,
"VLR_DESONERADO": 7,
"COD_PRODUTO": "1777776833",
"RAIZ": "78714167",
"VLR_ICMSS_N_ESCRIT": 7,
"IND_SIMPLES_NAC": "S",
"VLR_ITEM": 31877,
"ALIQ_TRIBUTO_ICMS": 18,
"QUANTIDADE": 14,
"DATA_EMISSAO": "1718-78-73T77:77:77",
"ALIQ_ICMS_DEST": 18,
"VLR_BASE_OUTRAS_ICMS": 7,
"NUM_DOCFIS": "777717114",
"VLR_BASE_REDUZIDA_ICMS": 15586.33,
"VLR_DESCONTO": 7,
"VLR_CONTAB_ITEM": 31877,
"VLR_BASE_TRIBUTADA_IPI": 7,
"CLAS_ITEM": 4,
"IND_PRODUTO": "1",
"INSC_SUFRAMA": null,
"VLR_IPI_NDESTAC": 7,
"VLR_DIFAL": 7,
"COD_MEDIDA": "TO",
"VLR_FRETE": 7,
"VLR_OUTRAS": 7,
"COD_SITUACAO_B": "17",
"COD_SITUACAO_A": "7",
"VLR_TOT_NOTA": 31877,
"MOVTO_E_S": "8",
"COD_ESTAB": "7141",
"NUM_ITEM": 1,
"VLR_SEGURO": 7,
"COD_MODELO": "55",
"COD_NBM": "31754777",
"COD_MUNICIPIO_ORIG": 6571,
"VLR_ALIQ_ICMSST": 7,
"SITUACAO_DOCUMENTO": "NORMAL",
"VLR_BASE_ICMSS_N_ESCRIT": 7,
"VLR_TRIBUTO_IPI": 7,
"NUM_CONTROL": "7771847474",
"VLR_BASE_OUTRAS_ICMSST": 7,
"VLR_BASE_TRIBUTADA_ICMS": 7313.67,
"UF_PLANTA": "BA",
"VLR_BASE_REDUZIDA_ICMSST": 7,
"ALIQ_TRIBUTO_IPI": 7,
"COD_MUNICIPIO_DEST": 33377,
"SERIE_DOCFIS": "57",
"DIF_ALIQ_TRIBUTO": 7,
"VLR_ICMS_NDESTAC": 7
}
]
和
mysql =
[
{
"DOCNUM": "7771838361",
"NFTYPE": "Z1",
"DOCTYP": "1",
"DIRECT": "1",
"DOCDAT": "Tue Sep 73 77:77:77 BST 1718",
"PSTDAT": "Tue Sep 73 77:77:77 BST 1718",
"MODEL": "55",
"SERIES": "57",
"SUBSER": null,
"CRENAM": "A837335",
"MANUAL": null,
"BELNR": null,
"GJAHR": "7777",
"BUKRS": "TRV",
"BRANCH": "7141",
"PARID": "7717781611",
"PARVW": "WE",
"PARTYP": "C",
"CANCEL": null,
"COD_SIT": "77",
"CANDAT": null,
"NFENUM": "777717117",
"CRT_BUPLA": "3",
"CRT_PARTNER": null,
"DOCREF": "7777777777",
"NFTOT": "57637.47",
"OBSERVAT": null,
"MODFRETE": "1",
"LIN_ITMNUM": "777747",
"LIN_NUM_ITEM": "771",
"LIN_MATNR": "777777771777776316",
"LIN_MATKL": "57",
"LIN_CFOP": "5171AA",
"LIN_NBM": "3175.87.87",
"LIN_MATORG": "7",
"LIN_TAXSIT": "1",
"LIN_TAXSIT1": "77753",
"LIN_MWSKZ": null,
"LIN_OWNPRO": "X",
"LIN_MATUSE": "1",
"LIN_NETWR": "57637.47",
"LIN_TAXLW1": "B71",
"LIN_TAXLW1": "53A",
"LIN_NDUS3": "77",
"LIN_WERKS": "SSA3",
"LIN_NFNET": "57637.47",
"LIN_NETWRT": "57637.47",
"LIN_NFNETT": "57637.47",
"LIN_TAXLW4": "76A",
"LIN_TAXSI4": "76",
"LIN_TAXLW5": "76A",
"LIN_TAXSI5": "76",
"LIN_XPED": "77871873",
"LIN_NITEMPED": null,
"LIN_INDINCENTIVO": "1",
"LIN_REFKEY": "7787854684",
"LIN_REFITM": "777747",
"KNA1_KUNNR": "7717781611",
"KNA1_REGIO": "BA",
"KNA1_BRSCH": "7771",
"KNA1_CRTN": null,
"KNA1_STCD1": "77787381777177",
"KNA1_STCD1": null,
"KNA1_ICMSTAXPAY": "Z4",
"LFA1_LIFNR": null,
"LFA1_BRSCH": null,
"LFA1_CRTN": null,
"LFA1_ICMSTAXPAY": null,
"LFA1_STCD1": null,
"LFA1_STCD1": null,
"LFA1_KTOKK": null,
"MARA1_BEHVO": null,
"MARA1_MTART": null,
"MARA1_TRAGR": null,
"MARA_BEHVO": "74",
"MARA_MTART": "FERT",
"MARA_TRAGR": "7771",
"MARA_EXTWG": "71",
"BKPF_AWKEY": "7787854684",
"BKPF_BUKRS": "TRV",
"BKPF_BELNR": "7787186147",
"BKPF_GJAHR": "1718",
"J_1BTICMSTAXPAYT_ICMSTAXPAY": null,
"TWEWT_EXTWG": "71",
"TWEWT_EWBEZ": "Crop Nutrition 37",
"T777Y_KTOKK": null,
"T777Y_TXT37": null,
"VTTK_TKNUM": null,
"VTTK_SHTYP": null,
"TVTKT_BEZEI": "OUT Direct",
"VTTP_VBELN": "7787885763",
"LIPS_VBELN": "7787885763",
"LIPS_MATNR": "777777771777775883",
"T144T_BEHVO": "74",
"VLR_BASE_TRIB_ICMS": "11155.14",
"VLR_BASE_ISENTA_ICMS": "38375.16",
"VLR_BASE_OUTRA_ICMS": "7.77",
"VLR_BASE_RED_ICMS": "11.13",
"ALIQ_TRIBUTO_ICMS": "18.77",
"VLR_TRIBUTO_ICMS": "1715.81",
"VLR_ICMS_NDESTAC": "7.77",
"VLR_BASE_TRIB_ICMSST": "7.77",
"VLR_TRIBUTO_ICMSST": "7.77",
"ALIQ_TRIBUTO_DIFAL": "7.77",
"VLR_DIFAL": "7.77",
"VLR_BASE_TRIB_IPI": "7.77",
"VLR_BASE_ISENTA_IPI": "7.77",
"VLR_BASE_OUTRA_IPI": "57637.47",
"VLR_BASE_RED_IPI": "7.77",
"ALIQ_TRIBUTO_IPI": "7.77",
"VLR_TRIBUTO_IPI": "7.77",
"VLR_BASE_TRIB_PIS": "57637.47",
"ALIQ_TRIBUTO_PIS": "7.77",
"VLR_TRIBUTO_PIS": "7.77",
"VLR_BASE_TRIB_COFINS": "57637.47",
"ALIQ_TRIBUTO_COFINS": "7.77",
"VLR_TRIBUTO_COFINS": "7.77"
},
{
"DOCNUM": "7771847474",
"NFTYPE": "Z1",
"DOCTYP": "1",
"DIRECT": "1",
"DOCDAT": "Tue Sep 73 77:77:77 BST 1718",
"PSTDAT": "Tue Sep 73 77:77:77 BST 1718",
"MODEL": "55",
"SERIES": "57",
"SUBSER": null,
"CRENAM": "A817347",
"MANUAL": null,
"BELNR": null,
"GJAHR": "7777",
"BUKRS": "TRV",
"BRANCH": "7141",
"PARID": "7717771413",
"PARVW": "WE",
"PARTYP": "C",
"CANCEL": null,
"COD_SIT": "77",
"CANDAT": null,
"NFENUM": "777717114",
"CRT_BUPLA": "3",
"CRT_PARTNER": null,
"DOCREF": "7777777777",
"NFTOT": "31877.77",
"OBSERVAT": null,
"MODFRETE": "7",
"LIN_ITMNUM": "777717",
"LIN_NUM_ITEM": "771",
"LIN_MATNR": "777777771777776833",
"LIN_MATKL": "15",
"LIN_CFOP": "5171AA",
"LIN_NBM": "3175.47.77",
"LIN_MATORG": "7",
"LIN_TAXSIT": "1",
"LIN_TAXSIT1": "77753",
"LIN_MWSKZ": null,
"LIN_OWNPRO": "X",
"LIN_MATUSE": "1",
"LIN_NETWR": "31877.77",
"LIN_TAXLW1": "B71",
"LIN_TAXLW1": "53A",
"LIN_NDUS3": "77",
"LIN_WERKS": "SSA3",
"LIN_NFNET": "31877.77",
"LIN_NETWRT": "31877.77",
"LIN_NFNETT": "31877.77",
"LIN_TAXLW4": "76A",
"LIN_TAXSI4": "76",
"LIN_TAXLW5": "76A",
"LIN_TAXSI5": "76",
"LIN_XPED": "77814838",
"LIN_NITEMPED": null,
"LIN_INDINCENTIVO": "1",
"LIN_REFKEY": "7787855161",
"LIN_REFITM": "777717",
"KNA1_KUNNR": null,
"KNA1_REGIO": null,
"KNA1_BRSCH": null,
"KNA1_CRTN": null,
"KNA1_STCD1": null,
"KNA1_STCD1": null,
"KNA1_ICMSTAXPAY": null,
"LFA1_LIFNR": null,
"LFA1_BRSCH": "7771",
"LFA1_CRTN": null,
"LFA1_ICMSTAXPAY": null,
"LFA1_STCD1": "73741845777118",
"LFA1_STCD1": null,
"LFA1_KTOKK": "FPJU",
"MARA1_BEHVO": null,
"MARA1_MTART": null,
"MARA1_TRAGR": null,
"MARA_BEHVO": "74",
"MARA_MTART": "FERT",
"MARA_TRAGR": "7771",
"MARA_EXTWG": "71",
"BKPF_AWKEY": "7787855161",
"BKPF_BUKRS": "TRV",
"BKPF_BELNR": "7787186488",
"BKPF_GJAHR": "1718",
"J_1BTICMSTAXPAYT_ICMSTAXPAY": null,
"TWEWT_EXTWG": "71",
"TWEWT_EWBEZ": "Crop Nutrition 37",
"T777Y_KTOKK": "FPJU",
"T777Y_TXT37": "PJ Vendors",
"VTTK_TKNUM": null,
"VTTK_SHTYP": null,
"TVTKT_BEZEI": "OUT Direct",
"VTTP_VBELN": "7787885763",
"LIPS_VBELN": "7787885763",
"LIPS_MATNR": "777777771777775883",
"T144T_BEHVO": "74",
"VLR_BASE_TRIB_ICMS": "7313.67",
"VLR_BASE_ISENTA_ICMS": "15586.33",
"VLR_BASE_OUTRA_ICMS": "7.77",
"VLR_BASE_RED_ICMS": "11.13",
"ALIQ_TRIBUTO_ICMS": "18.77",
"VLR_TRIBUTO_ICMS": "1316.46",
"VLR_ICMS_NDESTAC": "7.77",
"VLR_BASE_TRIB_ICMSST": "7.77",
"VLR_TRIBUTO_ICMSST": "7.77",
"ALIQ_TRIBUTO_DIFAL": "7.77",
"VLR_DIFAL": "7.77",
"VLR_BASE_TRIB_IPI": "7.77",
"VLR_BASE_ISENTA_IPI": "7.77",
"VLR_BASE_OUTRA_IPI": "31877.77",
"VLR_BASE_RED_IPI": "7.77",
"ALIQ_TRIBUTO_IPI": "7.77",
"VLR_TRIBUTO_IPI": "7.77",
"VLR_BASE_TRIB_PIS": "31877.77",
"ALIQ_TRIBUTO_PIS": "7.77",
"VLR_TRIBUTO_PIS": "7.77",
"VLR_BASE_TRIB_COFINS": "31877.77",
"ALIQ_TRIBUTO_COFINS": "7.77",
"VLR_TRIBUTO_COFINS": "7.77"
}
]
预期的输出必须有这两个 JSON 数组根据先前的条件合并
试试这个。
mongo map (mItems, mKeys) ->
{
(mysql filter (($.DOCNUM == mItems.NUM_CONTROL) and ($.LIN_NUM_ITEM as Number == mItems.NUM_ITEM)) map (sItems, sKeys) -> {
(sItems mapObject (sItem, sKey) ->
(sKey): sItem
),
(mItems mapObject (mItem, mKey) ->
(mKey): mItem
)
})
}
使用以下数据编织表达式:
%dw 2.0
output application/json
---
flatten(mongo map (mItem, mKey) ->
(mysql filter ($.DOCNUM == mItem.NUM_CONTROL) and ($.LIN_NUM_ITEM as Number == mItem.NUM_ITEM)) map (sItem, sKey) ->
mItem ++ sItem)
我有两个大 JSON
数组,我必须根据两列 filter
和 merge
:
mongo.NUM_CONTROL = mysql.DOCNUM
mongo.NUM_ITEM = mysql.LIN_NUM_ITEM
我已经制作了这个我使用 map
参数(item
和 key
)的脚本,这样就不必映射每个 json 的每一列(它们每个大约有 50 列)
此外,它还适用于将 NUM_CONTROL 与 DOCNUM 进行比较。
但是,我无法使其适用于 NUM_ITEM 和 LIN_NUM_ITEM。
mongo map (mItems, mKeys) -> using (mongoCtrl = mItems.NUM_CONTROL)
{
(mysql filter ($.*DOCNUM contains mongoCtrl) map (sItems, sKeys) -> {
(sItems mapObject (sItem, sKey) ->
(sKey): sItem
),
(mItems mapObject (mItem, mKey) ->
(mKey): mItem
)
})
}
编辑:这里有一些示例数据
mongo =
[
{
"VLR_UNIT": 1581.1,
"OBSERVACAO": null,
"COD_NATUREZA_OP": "155",
"VLR_TRIBUTO_ICMS": 1715.81,
"ALIQ_ICMS_ORIGEM": 7,
"VLR_BASE_ISENTA_IPI": 7,
"COD_CFO": "5171",
"VLR_TRIBUTO_ICMMST": 7,
"VLR_BASE_REDUZIDA_IPI": 7,
"DATA_FISCAL": "1718-78-73T77:77:77",
"COD_EMPRESA": "TRV",
"VLR_BASE_TRIBUTADA_ICMSST": 7,
"VLR_BASE_ISENTA_ICMSST": 7,
"COD_FEDERAL": "77753",
"VLR_BASE_OUTRAS_IPI": 57637.4,
"VLR_BASE_ISENTA_ICMS": 7,
"VLR_DESONERADO": 7,
"COD_PRODUTO": "1777776316",
"RAIZ": "77787381",
"VLR_ICMSS_N_ESCRIT": 7,
"IND_SIMPLES_NAC": "S",
"VLR_ITEM": 57637.4,
"ALIQ_TRIBUTO_ICMS": 18,
"QUANTIDADE": 31,
"DATA_EMISSAO": "1718-78-73T77:77:77",
"ALIQ_ICMS_DEST": 18,
"VLR_BASE_OUTRAS_ICMS": 7,
"NUM_DOCFIS": "777717117",
"VLR_BASE_REDUZIDA_ICMS": 38375.16,
"VLR_DESCONTO": 7,
"VLR_CONTAB_ITEM": 57637.4,
"VLR_BASE_TRIBUTADA_IPI": 7,
"CLAS_ITEM": 4,
"IND_PRODUTO": "1",
"INSC_SUFRAMA": null,
"VLR_IPI_NDESTAC": 7,
"VLR_DIFAL": 7,
"COD_MEDIDA": "TO",
"VLR_FRETE": 7,
"VLR_OUTRAS": 7,
"COD_SITUACAO_B": "17",
"COD_SITUACAO_A": "7",
"VLR_TOT_NOTA": 57637.4,
"MOVTO_E_S": "8",
"COD_ESTAB": "7141",
"NUM_ITEM": 1,
"VLR_SEGURO": 7,
"COD_MODELO": "55",
"COD_NBM": "31758787",
"COD_MUNICIPIO_ORIG": 6571,
"VLR_ALIQ_ICMSST": 7,
"SITUACAO_DOCUMENTO": "NORMAL",
"VLR_BASE_ICMSS_N_ESCRIT": 7,
"VLR_TRIBUTO_IPI": 7,
"NUM_CONTROL": "7771838361",
"VLR_BASE_OUTRAS_ICMSST": 7,
"VLR_BASE_TRIBUTADA_ICMS": 11155.14,
"UF_PLANTA": "BA",
"VLR_BASE_REDUZIDA_ICMSST": 7,
"ALIQ_TRIBUTO_IPI": 7,
"COD_MUNICIPIO_DEST": 31357,
"SERIE_DOCFIS": "57",
"DIF_ALIQ_TRIBUTO": 7,
"VLR_ICMS_NDESTAC": 7
},
{
"VLR_UNIT": 1357,
"OBSERVACAO": null,
"COD_NATUREZA_OP": "155",
"VLR_TRIBUTO_ICMS": 1316.46,
"ALIQ_ICMS_ORIGEM": 7,
"VLR_BASE_ISENTA_IPI": 7,
"COD_CFO": "5171",
"VLR_TRIBUTO_ICMMST": 7,
"VLR_BASE_REDUZIDA_IPI": 7,
"DATA_FISCAL": "1718-78-73T77:77:77",
"COD_EMPRESA": "TRV",
"VLR_BASE_TRIBUTADA_ICMSST": 7,
"VLR_BASE_ISENTA_ICMSST": 7,
"COD_FEDERAL": "77753",
"VLR_BASE_OUTRAS_IPI": 31877,
"VLR_BASE_ISENTA_ICMS": 7,
"VLR_DESONERADO": 7,
"COD_PRODUTO": "1777776833",
"RAIZ": "78714167",
"VLR_ICMSS_N_ESCRIT": 7,
"IND_SIMPLES_NAC": "S",
"VLR_ITEM": 31877,
"ALIQ_TRIBUTO_ICMS": 18,
"QUANTIDADE": 14,
"DATA_EMISSAO": "1718-78-73T77:77:77",
"ALIQ_ICMS_DEST": 18,
"VLR_BASE_OUTRAS_ICMS": 7,
"NUM_DOCFIS": "777717114",
"VLR_BASE_REDUZIDA_ICMS": 15586.33,
"VLR_DESCONTO": 7,
"VLR_CONTAB_ITEM": 31877,
"VLR_BASE_TRIBUTADA_IPI": 7,
"CLAS_ITEM": 4,
"IND_PRODUTO": "1",
"INSC_SUFRAMA": null,
"VLR_IPI_NDESTAC": 7,
"VLR_DIFAL": 7,
"COD_MEDIDA": "TO",
"VLR_FRETE": 7,
"VLR_OUTRAS": 7,
"COD_SITUACAO_B": "17",
"COD_SITUACAO_A": "7",
"VLR_TOT_NOTA": 31877,
"MOVTO_E_S": "8",
"COD_ESTAB": "7141",
"NUM_ITEM": 1,
"VLR_SEGURO": 7,
"COD_MODELO": "55",
"COD_NBM": "31754777",
"COD_MUNICIPIO_ORIG": 6571,
"VLR_ALIQ_ICMSST": 7,
"SITUACAO_DOCUMENTO": "NORMAL",
"VLR_BASE_ICMSS_N_ESCRIT": 7,
"VLR_TRIBUTO_IPI": 7,
"NUM_CONTROL": "7771847474",
"VLR_BASE_OUTRAS_ICMSST": 7,
"VLR_BASE_TRIBUTADA_ICMS": 7313.67,
"UF_PLANTA": "BA",
"VLR_BASE_REDUZIDA_ICMSST": 7,
"ALIQ_TRIBUTO_IPI": 7,
"COD_MUNICIPIO_DEST": 33377,
"SERIE_DOCFIS": "57",
"DIF_ALIQ_TRIBUTO": 7,
"VLR_ICMS_NDESTAC": 7
}
]
和
mysql =
[
{
"DOCNUM": "7771838361",
"NFTYPE": "Z1",
"DOCTYP": "1",
"DIRECT": "1",
"DOCDAT": "Tue Sep 73 77:77:77 BST 1718",
"PSTDAT": "Tue Sep 73 77:77:77 BST 1718",
"MODEL": "55",
"SERIES": "57",
"SUBSER": null,
"CRENAM": "A837335",
"MANUAL": null,
"BELNR": null,
"GJAHR": "7777",
"BUKRS": "TRV",
"BRANCH": "7141",
"PARID": "7717781611",
"PARVW": "WE",
"PARTYP": "C",
"CANCEL": null,
"COD_SIT": "77",
"CANDAT": null,
"NFENUM": "777717117",
"CRT_BUPLA": "3",
"CRT_PARTNER": null,
"DOCREF": "7777777777",
"NFTOT": "57637.47",
"OBSERVAT": null,
"MODFRETE": "1",
"LIN_ITMNUM": "777747",
"LIN_NUM_ITEM": "771",
"LIN_MATNR": "777777771777776316",
"LIN_MATKL": "57",
"LIN_CFOP": "5171AA",
"LIN_NBM": "3175.87.87",
"LIN_MATORG": "7",
"LIN_TAXSIT": "1",
"LIN_TAXSIT1": "77753",
"LIN_MWSKZ": null,
"LIN_OWNPRO": "X",
"LIN_MATUSE": "1",
"LIN_NETWR": "57637.47",
"LIN_TAXLW1": "B71",
"LIN_TAXLW1": "53A",
"LIN_NDUS3": "77",
"LIN_WERKS": "SSA3",
"LIN_NFNET": "57637.47",
"LIN_NETWRT": "57637.47",
"LIN_NFNETT": "57637.47",
"LIN_TAXLW4": "76A",
"LIN_TAXSI4": "76",
"LIN_TAXLW5": "76A",
"LIN_TAXSI5": "76",
"LIN_XPED": "77871873",
"LIN_NITEMPED": null,
"LIN_INDINCENTIVO": "1",
"LIN_REFKEY": "7787854684",
"LIN_REFITM": "777747",
"KNA1_KUNNR": "7717781611",
"KNA1_REGIO": "BA",
"KNA1_BRSCH": "7771",
"KNA1_CRTN": null,
"KNA1_STCD1": "77787381777177",
"KNA1_STCD1": null,
"KNA1_ICMSTAXPAY": "Z4",
"LFA1_LIFNR": null,
"LFA1_BRSCH": null,
"LFA1_CRTN": null,
"LFA1_ICMSTAXPAY": null,
"LFA1_STCD1": null,
"LFA1_STCD1": null,
"LFA1_KTOKK": null,
"MARA1_BEHVO": null,
"MARA1_MTART": null,
"MARA1_TRAGR": null,
"MARA_BEHVO": "74",
"MARA_MTART": "FERT",
"MARA_TRAGR": "7771",
"MARA_EXTWG": "71",
"BKPF_AWKEY": "7787854684",
"BKPF_BUKRS": "TRV",
"BKPF_BELNR": "7787186147",
"BKPF_GJAHR": "1718",
"J_1BTICMSTAXPAYT_ICMSTAXPAY": null,
"TWEWT_EXTWG": "71",
"TWEWT_EWBEZ": "Crop Nutrition 37",
"T777Y_KTOKK": null,
"T777Y_TXT37": null,
"VTTK_TKNUM": null,
"VTTK_SHTYP": null,
"TVTKT_BEZEI": "OUT Direct",
"VTTP_VBELN": "7787885763",
"LIPS_VBELN": "7787885763",
"LIPS_MATNR": "777777771777775883",
"T144T_BEHVO": "74",
"VLR_BASE_TRIB_ICMS": "11155.14",
"VLR_BASE_ISENTA_ICMS": "38375.16",
"VLR_BASE_OUTRA_ICMS": "7.77",
"VLR_BASE_RED_ICMS": "11.13",
"ALIQ_TRIBUTO_ICMS": "18.77",
"VLR_TRIBUTO_ICMS": "1715.81",
"VLR_ICMS_NDESTAC": "7.77",
"VLR_BASE_TRIB_ICMSST": "7.77",
"VLR_TRIBUTO_ICMSST": "7.77",
"ALIQ_TRIBUTO_DIFAL": "7.77",
"VLR_DIFAL": "7.77",
"VLR_BASE_TRIB_IPI": "7.77",
"VLR_BASE_ISENTA_IPI": "7.77",
"VLR_BASE_OUTRA_IPI": "57637.47",
"VLR_BASE_RED_IPI": "7.77",
"ALIQ_TRIBUTO_IPI": "7.77",
"VLR_TRIBUTO_IPI": "7.77",
"VLR_BASE_TRIB_PIS": "57637.47",
"ALIQ_TRIBUTO_PIS": "7.77",
"VLR_TRIBUTO_PIS": "7.77",
"VLR_BASE_TRIB_COFINS": "57637.47",
"ALIQ_TRIBUTO_COFINS": "7.77",
"VLR_TRIBUTO_COFINS": "7.77"
},
{
"DOCNUM": "7771847474",
"NFTYPE": "Z1",
"DOCTYP": "1",
"DIRECT": "1",
"DOCDAT": "Tue Sep 73 77:77:77 BST 1718",
"PSTDAT": "Tue Sep 73 77:77:77 BST 1718",
"MODEL": "55",
"SERIES": "57",
"SUBSER": null,
"CRENAM": "A817347",
"MANUAL": null,
"BELNR": null,
"GJAHR": "7777",
"BUKRS": "TRV",
"BRANCH": "7141",
"PARID": "7717771413",
"PARVW": "WE",
"PARTYP": "C",
"CANCEL": null,
"COD_SIT": "77",
"CANDAT": null,
"NFENUM": "777717114",
"CRT_BUPLA": "3",
"CRT_PARTNER": null,
"DOCREF": "7777777777",
"NFTOT": "31877.77",
"OBSERVAT": null,
"MODFRETE": "7",
"LIN_ITMNUM": "777717",
"LIN_NUM_ITEM": "771",
"LIN_MATNR": "777777771777776833",
"LIN_MATKL": "15",
"LIN_CFOP": "5171AA",
"LIN_NBM": "3175.47.77",
"LIN_MATORG": "7",
"LIN_TAXSIT": "1",
"LIN_TAXSIT1": "77753",
"LIN_MWSKZ": null,
"LIN_OWNPRO": "X",
"LIN_MATUSE": "1",
"LIN_NETWR": "31877.77",
"LIN_TAXLW1": "B71",
"LIN_TAXLW1": "53A",
"LIN_NDUS3": "77",
"LIN_WERKS": "SSA3",
"LIN_NFNET": "31877.77",
"LIN_NETWRT": "31877.77",
"LIN_NFNETT": "31877.77",
"LIN_TAXLW4": "76A",
"LIN_TAXSI4": "76",
"LIN_TAXLW5": "76A",
"LIN_TAXSI5": "76",
"LIN_XPED": "77814838",
"LIN_NITEMPED": null,
"LIN_INDINCENTIVO": "1",
"LIN_REFKEY": "7787855161",
"LIN_REFITM": "777717",
"KNA1_KUNNR": null,
"KNA1_REGIO": null,
"KNA1_BRSCH": null,
"KNA1_CRTN": null,
"KNA1_STCD1": null,
"KNA1_STCD1": null,
"KNA1_ICMSTAXPAY": null,
"LFA1_LIFNR": null,
"LFA1_BRSCH": "7771",
"LFA1_CRTN": null,
"LFA1_ICMSTAXPAY": null,
"LFA1_STCD1": "73741845777118",
"LFA1_STCD1": null,
"LFA1_KTOKK": "FPJU",
"MARA1_BEHVO": null,
"MARA1_MTART": null,
"MARA1_TRAGR": null,
"MARA_BEHVO": "74",
"MARA_MTART": "FERT",
"MARA_TRAGR": "7771",
"MARA_EXTWG": "71",
"BKPF_AWKEY": "7787855161",
"BKPF_BUKRS": "TRV",
"BKPF_BELNR": "7787186488",
"BKPF_GJAHR": "1718",
"J_1BTICMSTAXPAYT_ICMSTAXPAY": null,
"TWEWT_EXTWG": "71",
"TWEWT_EWBEZ": "Crop Nutrition 37",
"T777Y_KTOKK": "FPJU",
"T777Y_TXT37": "PJ Vendors",
"VTTK_TKNUM": null,
"VTTK_SHTYP": null,
"TVTKT_BEZEI": "OUT Direct",
"VTTP_VBELN": "7787885763",
"LIPS_VBELN": "7787885763",
"LIPS_MATNR": "777777771777775883",
"T144T_BEHVO": "74",
"VLR_BASE_TRIB_ICMS": "7313.67",
"VLR_BASE_ISENTA_ICMS": "15586.33",
"VLR_BASE_OUTRA_ICMS": "7.77",
"VLR_BASE_RED_ICMS": "11.13",
"ALIQ_TRIBUTO_ICMS": "18.77",
"VLR_TRIBUTO_ICMS": "1316.46",
"VLR_ICMS_NDESTAC": "7.77",
"VLR_BASE_TRIB_ICMSST": "7.77",
"VLR_TRIBUTO_ICMSST": "7.77",
"ALIQ_TRIBUTO_DIFAL": "7.77",
"VLR_DIFAL": "7.77",
"VLR_BASE_TRIB_IPI": "7.77",
"VLR_BASE_ISENTA_IPI": "7.77",
"VLR_BASE_OUTRA_IPI": "31877.77",
"VLR_BASE_RED_IPI": "7.77",
"ALIQ_TRIBUTO_IPI": "7.77",
"VLR_TRIBUTO_IPI": "7.77",
"VLR_BASE_TRIB_PIS": "31877.77",
"ALIQ_TRIBUTO_PIS": "7.77",
"VLR_TRIBUTO_PIS": "7.77",
"VLR_BASE_TRIB_COFINS": "31877.77",
"ALIQ_TRIBUTO_COFINS": "7.77",
"VLR_TRIBUTO_COFINS": "7.77"
}
]
预期的输出必须有这两个 JSON 数组根据先前的条件合并
试试这个。
mongo map (mItems, mKeys) ->
{
(mysql filter (($.DOCNUM == mItems.NUM_CONTROL) and ($.LIN_NUM_ITEM as Number == mItems.NUM_ITEM)) map (sItems, sKeys) -> {
(sItems mapObject (sItem, sKey) ->
(sKey): sItem
),
(mItems mapObject (mItem, mKey) ->
(mKey): mItem
)
})
}
使用以下数据编织表达式:
%dw 2.0
output application/json
---
flatten(mongo map (mItem, mKey) ->
(mysql filter ($.DOCNUM == mItem.NUM_CONTROL) and ($.LIN_NUM_ITEM as Number == mItem.NUM_ITEM)) map (sItem, sKey) ->
mItem ++ sItem)