编写DataWeave实现Salesforce OrderLineItems结果转Order对象结构
DataWeave 映射脚本(适配Salesforce OrderLineItems查询结果转换)
实现说明
- 输入为Salesforce SOQL查询OrderLineItems返回的父子关联平铺结果集,当前示例所有订单项归属同一订单,直接取首条记录的订单公共字段即可
- 遍历全量输入记录,将每个订单项的指定字段映射后归集为
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 (lineItem) -> { "Id": lineItem.Id, "ItemNumber": lineItem.OrderItemNumber, "Name": lineItem.Product2.Name } }
多订单兼容扩展(可选)
如果后续查询结果包含多个不同订单的订单项,可使用分组逻辑批量生成订单结构,脚本如下:
%dw 2.0 output application/json --- payload groupBy (item) -> item.Order.Id mapObject (orderItems, orderId) -> { "Id": orderId, "Order Name": orderItems[0].Order.Account_Name__c, "Line Items": orderItems map (lineItem) -> { "Id": lineItem.Id, "ItemNumber": lineItem.OrderItemNumber, "Name": lineItem.Product2.Name } }
上述基础版本脚本针对提供的样例输入运行后,输出结构与字段映射完全匹配给出的预期结果。
内容的提问来源于stack exchange,提问作者Sami
相关产品推荐
相关产品推荐

