用dataweave中的json对象映射有效负载



我想做的是将CodeOT映射到我的有效负载中的每个对象,例如:

null/0获取值11 ~ 5得到26到9得到值3

我迷失在如何做到这一点,因为我是新的数据编织

负载示例:

{
"refSig" : "0110443372",
"indSap":2
},
{
"refSig" : "0000443942",
"indSap":0
},
{
"refSig" : "0117243942",
"indSap":null
}

提供了转换表,必须按原样使用,下面是其中的一部分

{
"CodeSap": null,
"Libelle": "",
"CodeOT": 1
},
{
"CodeSap": 0,
"Libelle": "Elle a demandé un délai de paiement",
"CodeOT": 1
},
{
"CodeSap": 1,
"Libelle": "Elle a des factures SATD",
"CodeOT": 2
},
{
"CodeSap": 2,
"Libelle": "Elle a des factures remises à l’huissier",
"CodeOT": 2
}

我需要使用CodeSap

将转换表中的CodeOT映射到负载中的indSap我开始做这件事,但似乎没有任何进展

%dw 2.0
output application/json
---
lignesOK : payload map (item, index) -> {
bf: item mapObject (value, key) -> {
(key): value,
codeOt: varTable map (it,val) ->{
(val):(it)
}
}
}

上述负载示例的预期输出为:

{
"refSig" : "0110443372",
"CodeOT":2
},
{
"refSig" : "0000443942",
"CodeOT":1
},
{
"refSig" : "0117243942",
"CodeOT":1
}

假设输入和表都是数组,并且表中的条目在每个CodeSap中都是唯一的,下面的脚本可以工作,尽管由于提供的表不完整,输出与预期略有不同:

%dw 2.0
output application/json
var varTable=[{
"CodeSap": null,
"Libelle": "",
"CodeOT": 1
},
{
"CodeSap": 0,
"Libelle": "Elle a demandé un délai de paiement",
"CodeOT": 1
},
{
"CodeSap": 1,
"Libelle": "Elle a des factures SATD",
"CodeOT": 2
},
{
"CodeSap": 2,
"Libelle": "Elle a des factures remises à l’huissier",
"CodeOT": 2
}]
---
payload map (item, index) -> {

refSig: item.refSig,
codeOt: (varTable filter (item.indSap == $.CodeSap))[0].CodeOT
}

输出:

[
{
"refSig": "0110443372",
"codeOt": null
},
{
"refSig": "0000443942",
"codeOt": 1
},
{
"refSig": "0117243942",
"codeOt": 1
}
]

相关内容

  • 没有找到相关文章

最新更新