首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个内部地图数据编织

每个内部地图数据编织
EN

Stack Overflow用户
提问于 2017-12-18 17:13:48
回答 2查看 3K关注 0票数 0

我试图对Dataweave中的数据库结果集中的每一个进行一次操作,但是无法达到这个结果。

输入有效载荷:

代码语言:javascript
复制
{
    "x_orders_cursor": [{
        "LINE_QTY": 1,
        "ORDER_NUMBER": 11820490,
        "ORDERED_ITEM": "PAT1M",
        "LINE_UOM": "PC"
    }, {
        "LINE_QTY": 5000,
        "ORDER_NUMBER": 11820542,
        "ORDERED_ITEM": "ACC62-A-D",
        "LINE_NUMBER": 1,
        "LINE_UOM": "PC"
    }, {
        "LINE_QTY": 2000,
        "ORDER_NUMBER": 11820542,
        "ORDERED_ITEM": "ACC62-A-D",
        "LINE_NUMBER": 2,
        "LINE_UOM": "PC"
    }]
}

预期有效载荷:

代码语言:javascript
复制
{
    "Orders": [
        {
            "OrderNum": "11820490",
            "Lines": [
                {
                    "LineNum": 1,
                    "ProductNum": "PAT1M",
                    "TxnQty": 1,
                    "TxnQtyUOM": "PC"
                }
            ]
        },
        {
            "OrderNum": "11820542",
            "Lines": [
                {
                    "LineNum": 1,
                    "ProductNum": "ACC62-A-D",
                    "TxnQty": 1000,
                    "TxnQtyUOM": "PC"
                },
                {
                    "LineNum": 2,
                    "ProductNum": "ACC62-A-D",
                    "TxnQty": 2000,
                    "TxnQtyUOM": "PC"
                }
            ]
        }
    ]
}

结果集基于存储订单号和行号的数据库表。

EN

回答 2

Stack Overflow用户

发布于 2017-12-19 03:11:54

您必须使用groupBy从相同的顺序对行号进行分组,然后映射它。请参阅以下代码

代码语言:javascript
复制
%dw 1.0
%output application/json
---
Orders : payload.x_orders_cursor groupBy $.ORDER_NUMBER map {
    "OrderNum": $.ORDER_NUMBER[0],
        "Lines": $ map (LineDetails,index) ->{
            "LineNum": LineDetails.LINE_NUMBER default 1,
            "ProductNum": LineDetails.ORDERED_ITEM,
            "TxnQty": LineDetails.LINE_QTY,
            "TxnQtyUOM": LineDetails.LINE_UOM
        } orderBy $.LineNum
} orderBy $.OrderNum

我使用orderBy来订购订单和行项目,分别有订单号和行号

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-03-07 12:28:32

使用映射和groupby操作符来完成此操作。应该在以下线上

代码语言:javascript
复制
payload groupBy $.ORDER_NUMBER map {
OrderNum: $.ORDER_NUMBER[0],
Lines": $ map (val,index) -> {
            LineNum: val.LINE_NUMBER default 1,
            ProductNum: val.ORDERED_ITEM,
            TxnQty: val.LINE_QTY,
            TxnQtyUOM: val.LINE_UOM
        } orderBy $.LineNum
} orderBy $.OrderNum
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47873297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档