Я пытаюсь извлечь несколько тегов из XML и вставить их как записи Salesforce. однако почему-то я вставляю только последнюю запись, и все, что я думаю, перезаписывается последней, я думаю, причина в том, что я использую то же имя переменной «записи» для хранения записей, но как только я меняю имя переменной на что-то иначе mulesoft выдает ошибку ошибка, неопознанная переменная, как с этим справиться?
%dw 2.0
output application/json
ns ns0 http://www.demandware.com/xml/impex/order/2006-10-31
---
[{
Ascent4Ecomm__Ecomm_Order_ID__c: payload.ns0#order.ns0#"original-order-no",
Ascent4Ecomm__Ecomm_Order_Name__c: payload.ns0#order.ns0#"original-order-no",
Ascent4Ecomm__Ecomm_Order_Number__c: payload.ns0#order.ns0#"original-order-no",
attributes: {
"type": "PBSI__PBSI_Sales_Order__c",
"referenceId": "SO"
},
PBSI__Sales_Order_Lines__r: {
records: payload.ns0#order.ns0#"product-lineitems".*ns0#"product-lineitem" map ( e , lineindex ) -> {
"attributes": {
"type": "PBSI__PBSI_Sales_Order_Line__c",
"referenceId": e.ns0#"product-id"
},
PBSI__Price__c: e.ns0#"base-price" - (e.ns0#"tax"/e.ns0#"quantity"),
PBSI__Tax_Value__c: e.ns0#tax/e.ns0#quantity,
PBSI__ItemDescription__c: e.ns0#"product-name",
PBSI__Quantity_Needed__c: e.ns0#quantity,
"PBSI__Item__c": e.ns0#"custom-attributes".ns0#"custom-attribute"
}
},
PBSI__Sales_Order_Lines__r: {
records: payload.ns0#order.ns0#"shipping-lineitems".*ns0#"shipping-lineitem" map ( s, slindex) -> {
"attributes": {
"type": "PBSI__PBSI_Sales_Order_Line__c",
"referenceId": s.ns0#"shipment-id"
},
PBSI__Price__c: s.ns0#"base-price" - s.ns0#"tax",
PBSI__Tax_Value__c: s.ns0#tax,
PBSI__ItemDescription__c: s.ns0#"lineitem-text",
PBSI__Quantity_Needed__c: 1,
"PBSI__Item__c": "a0a1x000001PmTc"
}
},
PBSI__Customer__c: (payload.ns0#order.ns0#"custom-attributes".*ns0#"custom-attribute"
filter (item) -> (item.@"attribute-id" == "sscAccountid")) [0]
}]
ввод XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<order order-no="00000907" xmlns="http://www.demandware.com/xml/impex/order/2006-10-31">
<order-date>2020-07-10T08:57:05.076Z</order-date>
<current-order-no>00000907</current-order-no>
<product-lineitems>
<product-lineitem>
<net-price>54.17</net-price>
<tax>10.83</tax>
<gross-price>65.00</gross-price>
<base-price>65.00</base-price>
<lineitem-text>Travel pillow</lineitem-text>
<tax-basis>65.00</tax-basis>
<position>1</position>
<product-id>116065</product-id>
<product-name>Travel pillow</product-name>
<quantity unit="">1.0</quantity>
<tax-rate>0.2</tax-rate>
<shipment-id>00004505</shipment-id>
<gift>false</gift>
<custom-attributes>
<custom-attribute attribute-id="sscProductId">a0a1x000001Pjhj</custom-attribute>
</custom-attributes>
</product-lineitem>
</product-lineitems>
<shipping-lineitems>
<shipping-lineitem>
<net-price>4.99</net-price>
<tax>1.00</tax>
<gross-price>5.99</gross-price>
<base-price>5.99</base-price>
<lineitem-text>Shipping</lineitem-text>
<tax-basis>5.99</tax-basis>
<item-id>STANDARD_SHIPPING</item-id>
<shipment-id>00004505</shipment-id>
<tax-rate>0.2</tax-rate>
</shipping-lineitem>
</shipping-lineitems>
</order>