2015-11-30 65 views
0

我正在使用Mule請求者加載CSV文件。文件加載後,有效載荷是一個字節數組,我將其存儲在流變量mycsv中。我不斷收到一個例外。使用DataWeave將CSV轉換爲數組

org.mule.api.MessagingException: Exception while executing: 
    NetIds: flowVars.mycsv map $."My Column Name" 
         ^
Cannot coerce a :binary to a :array (com.mulesoft.weave.mule.exception.WeaveExecutionException). Message payload is of type: byte[] 

這裏是我的DataWeave代碼:

%dw 1.0 
%output application/java 
--- 
{ 
    Values: flowVars.mycsv map $."My Column Name" 
} 

以前的流量元件是choice,所以我對元數據設置爲輸出到FlowVar用正確的名稱和參考樣本CSV文件,所以DataWeave變量類型是List<Csv>

如何讀取CSV?謝謝!

回答

1

這是因爲它不知道flowVar的mimeType,因爲它沒有設置。在數據編織轉換器之前試試這個:

<set-variable value="#[flowVars.mycsv]" variableName="mycsv" mimeType="application/csv" doc:name="Variable" /> 

或者當您第一次讀取csv時設置mimeType。

+0

這樣做了。謝謝! –

0

這是我第一次發現要求將兩種不同格式放入一個csv文件。爲了得到預期的結果,我更喜歡使用這個技巧: 創建這兩個表達式並將它們組合成一個簡單的數組,使用變平的 添加一個空對象作爲行分隔符