Mule 4 DataWeave 2数组映射问题:如何将分块输入拆分为独立元素
可行的DataWeave 2转换脚本
%dw 2.0 output application/json var baseData = payload[0] --- // 按invoiceId的条目数量循环生成独立结构 baseData.invoiceId map (invoiceVal, index) -> { invoiceId: invoiceVal, items: [ { order_item_id: baseData.items[0].order_item_id[index], qty: baseData.items[1].qty[index], extension_attributes: { credit_reason: baseData.items[2].extension_attributes.credit_reason[index] } } ], isOnline: false, notify: false, appendComment: baseData.appendComment, comment: { comment: "<b>Reason:</b>Bulk Refunded</br>" }, arguments: { shipping_amount: if (index == 0) 0 else 4.95, extension_attributes: { rd_credittmemo_payment_credited: baseData.arguments.extension_attributes.rd_creditmemo_payment_credited, rd_send_email: baseData.arguments.extension_attributes.rd_send_email } } }
转换逻辑说明
- 输入为单元素数组,优先提取首个元素作为基础数据源
- 以
invoiceId数组的长度作为拆分条目总数,遍历每个索引位生成独立条目 - 每个条目的动态字段均取各数组相同索引位的对应值
- 按要求固定修改
isOnline、notify的值为false,统一替换comment字段的文本内容 - 针对输出要求调整第二个条目的
shipping_amount值为4.95,同步修正扩展属性的字段名拼写
内容的提问来源于stack exchange,提问作者Catherine Brugge
相关产品推荐
相关产品推荐

