DataWeave未贴图的映射

发布于 2025-02-10 22:34:01 字数 2694 浏览 3 评论 0原文

在为此Salesforce有效载荷编写数据驱动时需要一些帮助。
请帮助为此输入和预期输出创建数据启示。

输入

[
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "13.45",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 1 LEG FOR MESAHORNO STAND110"
        },
        "Id": "8028s000000kyUDAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051590"
    },
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "308.45",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 2 Uprights incl castors f RTWZ 600 Var"
        },
        "Id": "8028s000000kyUEAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051591"
    },
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "31.0",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 25 Comp Glass Rack - 3 Ext - Red Base"
        },
        "Id": "8028s000000kyUFAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051592"
    },
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "31.65",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 36 Comp Glass Rack 3 Ext - Gray"
        },
        "Id": "8028s000000kyUGAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051593"
    }
]

这是OrderLineItems上的Salesforce查询 输出看起来像
输出

{
    "Id":"8018s000004mpqjAAA",
    "Order Name": "test danish 002",
    "Line Items": [
        {
            "Id":"8028s000000kyUDAAY",
            "ItemNumber":"0000051590",
            "Name":"* 1 LEG FOR MESAHORNO STAND110"
        },
        {
            "Id":"8028s000000kyUEAAY",
            "ItemNumber":"0000051591",
            "Name":"* 2 Uprights incl castors f RTWZ 600 Var"
        },
        {
            "Id":"8028s000000kyUFAAY",
            "ItemNumber":"0000051592",
            "Name":"* 25 Comp Glass Rack - 3 Ext - Red Base"
        },
        {
            "Id":"8028s000000kyUGAAY",
            "ItemNumber":"0000051593",
            "Name":"* 36 Comp Glass Rack 3 Ext - Gray"
        }
    
    ]
}

Need some help in writing DataWeave for this Salesforce payload.
Please help with creating a DataWeave for this input and expected output.

INPUT

[
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "13.45",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 1 LEG FOR MESAHORNO STAND110"
        },
        "Id": "8028s000000kyUDAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051590"
    },
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "308.45",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 2 Uprights incl castors f RTWZ 600 Var"
        },
        "Id": "8028s000000kyUEAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051591"
    },
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "31.0",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 25 Comp Glass Rack - 3 Ext - Red Base"
        },
        "Id": "8028s000000kyUFAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051592"
    },
    {
        "Order": {
            "Account_Name__c": "test danish 002",
            "Id": "8018s000004mpqjAAA",
            "type": "Order"
        },
        "UnitPrice": "31.65",
        "Product2": {
            "Id": null,
            "type": "Product2",
            "Name": "* 36 Comp Glass Rack 3 Ext - Gray"
        },
        "Id": "8028s000000kyUGAAY",
        "type": "OrderItem",
        "OrderItemNumber": "0000051593"
    }
]

This is the Salesforce Query on OrderLineItems but the transformed payload needs to be done on Order Object
and the output would look like
Output

{
    "Id":"8018s000004mpqjAAA",
    "Order Name": "test danish 002",
    "Line Items": [
        {
            "Id":"8028s000000kyUDAAY",
            "ItemNumber":"0000051590",
            "Name":"* 1 LEG FOR MESAHORNO STAND110"
        },
        {
            "Id":"8028s000000kyUEAAY",
            "ItemNumber":"0000051591",
            "Name":"* 2 Uprights incl castors f RTWZ 600 Var"
        },
        {
            "Id":"8028s000000kyUFAAY",
            "ItemNumber":"0000051592",
            "Name":"* 25 Comp Glass Rack - 3 Ext - Red Base"
        },
        {
            "Id":"8028s000000kyUGAAY",
            "ItemNumber":"0000051593",
            "Name":"* 36 Comp Glass Rack 3 Ext - Gray"
        }
    
    ]
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

几味少女 2025-02-17 22:34:01

假设所有订单ID都是相同的,则可以直接从有效载荷中映射ID,然后使用MAP on 有效载荷获取行项目

%dw 2.0
output application/json
---
{
  Id: payload[0].Order.Id,
  "Order Name": payload[0].Order.Account_Name__c,
  "Line Items": payload map {
     Id: $.Id,
     ItemNumber: $.OrderItemNumber,
     Name: $.Product2.Name
   }
}

Assuming that all the order IDs are same you can just map the Id directly from payload and use the map on payload to get the Line Items

%dw 2.0
output application/json
---
{
  Id: payload[0].Order.Id,
  "Order Name": payload[0].Order.Account_Name__c,
  "Line Items": payload map {
     Id: $.Id,
     ItemNumber: $.OrderItemNumber,
     Name: $.Product2.Name
   }
}
魂ガ小子 2025-02-17 22:34:01

这样尝试:

%dw 2.0
output application/json
---
{
"Id" : payload[0].Order.Id,
"Order Name": payload[0].Order.Account_Name__c,
"Line Items" : payload map{ 
    Id: $.Id,
    ItemNumber : $.OrderItemNumber,
    "Line Items" : $.Product2.Name
}
}

Try like this:

%dw 2.0
output application/json
---
{
"Id" : payload[0].Order.Id,
"Order Name": payload[0].Order.Account_Name__c,
"Line Items" : payload map{ 
    Id: $.Id,
    ItemNumber : $.OrderItemNumber,
    "Line Items" : $.Product2.Name
}
}
是伱的 2025-02-17 22:34:01

这是您在订购ID时可以尝试的另一种选择,

%dw 2.0
output application/json
---
payload groupBy ((item, index) -> item.Order.Id) 
    mapObject ((value, key, index) ->  
            {"Id": value.Order.Id[0], 
            "Order Name": value.Order.Account_Name__c[0],
            "Line Items": value map ({
                                Id: $.Id, 
                                ItemNumber: $.OrderItemNumber,
                                Name: $.Product2.Name
 
                            })}
)

”在此处输入图像描述”

Here is one more option that you can try when ordered Id's are not the same

%dw 2.0
output application/json
---
payload groupBy ((item, index) -> item.Order.Id) 
    mapObject ((value, key, index) ->  
            {"Id": value.Order.Id[0], 
            "Order Name": value.Order.Account_Name__c[0],
            "Line Items": value map ({
                                Id: $.Id, 
                                ItemNumber: $.OrderItemNumber,
                                Name: $.Product2.Name
 
                            })}
)

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文