2017-04-12 30 views
-1

我試圖將Salesforce的輸出&轉換爲json。這裏是我的代碼:Mule:Dataweave迭代不起作用

%dw 1.0 
    %output application/json 

    payload map { 
      headerandlines:{ id   : $.Id, 
       agreementLineID  : $.LineItems__r.Id, 
       netPrice   : $.LineItems__r.Price__c, 
       volume    : $.Volume__c, 
       name    : $.Name, 
       StartDate   : $.Start_Date__c, 
       EndDate    : $.End_Date__c, 
       poField    : $.PO_Field__c, 
       ConsoleNumber  : $.Console_Number__c, 
       Term    : $.Term__c, 
       ownerID    : $.OwnerId, 
       Unit    : $.Unit__c, 
       siteNumber   : $.Site_Num__c, 
       customerNumber  : $.Customer_Num__c 
      } 


     } 

輸入有效載荷看起來像這樣..它是一個對象的集合。不知何故,改造後只有第一個對象被髮送&其餘的被破壞。

[ 
    { 
"id": "DA0YAAW", 
"LineID": [ 
    "jGEAU", 
    "jBEAU", 
    "j6EAE" 
], 
"Price": [ 
    "50000.0", 
    "12000.0", 
    "45000.0" 
], 
"netPrice": null, 
"volume": null, 
"name": " Test 2.24", 
"StartDate": "2017-02-17", 
"EndDate": "2018-02-17", 
"poField": "123456", 
"ConsoleNumber": "8888888", 
"PaymentTerm": "thirty (30)", 
"ownerID": 「abcd」, 
"OperatingUnit": " International Company", 
"siteNumber": null, 
"customerNumber": null 
}, 
{ 
"id": "a37n0000000DAMAAA4", 
"LineID": [ 
    "JunEAE", 
    "JuiEAE", 
    "KdMEAU", 
    "JuYEAU" 
], 
"Price": [ 
    "5000.0", 
    "8000.0", 
    "5000.0", 
    "5000.0" 
], 
"netPrice": null, 
"volume": null, 
"name": " Test 3.6", 
"StartDate": "2017-03-06", 
"EndDate": "2018-03-16", 
"poField": "12345", 
"ConsoleNumber": "123456-", 
"PaymentTerm": "30 NET", 
"ownerID": 「dfgh」, 
"OperatingUnit": ", inc.", 
"siteNumber": null, 
"customerNumber": null 
}, 

...。

]

當我(用API測試)我得到多個對象的完整有效載荷調用此代碼瀏覽器。當我從另一個API調用它時,我只有一個1對象表示它沒有循環。我可以確認有效載荷有多個對象。在通過此代碼循環來提取多個對象方面,是否有任何缺失?我假設'$'符號足夠迭代。

+0

有效載荷是什麼樣的? – Yevgeniy

+0

你好嚴重加入了輸入有效載荷 – insaneyogi

+0

?您的示例中充滿了無效字符,並且它不包含數據織物中引用的單個屬性。 – Yevgeniy

回答

0

@insaneyogi,您的輸入或者不正確,或者您的數據編織不正確。 這裏在輸入中指定了小號中的id。但在數據編織中,它在大寫中提到。

0

我認爲這裏的問題在於您的Lineitem和價格類型元素。它們是內部和元素的集合。在你的數據映射$中。會照顧外部的物體。但是,我認爲像LineItems__r.Price__c這樣的映射是不正確的。它應該有適當的索引,可能是LineItems__r.Price__c [0]。請嘗試一下,它應該工作。首先用單個元素更改價格或項目和測試的輸入。