0

我正在使用 Mule Requester 加载 CSV 文件。加载文件后,有效负载是一个字节数组,我将其存储在流变量mycsv. 我不断收到异常。

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"
}

前一个流元素是 a choice,所以我将其上的元数据设置为输出到具有正确名称的 FlowVar 并引用一个示例 CSV 文件,因此 DataWeave 的变量类型是List<Csv>.

如何阅读 CSV?谢谢!

4

2 回答 2

1

这是因为它不知道 flowVar 的 mimeType,因为它没有设置。在 dataweave 转换器之前试试这个:

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

或在您第一次阅读 csv 时设置 mimeType。

于 2015-11-30T22:31:03.160 回答
0

这是我第一次发现需要将两种不同的格式放入一个 csv 文件中。为了得到预期的结果,我更喜欢使用这个技巧:创建两个表达式并将它们组合成一个简单的数组,使用 flatten 添加一个空对象作为行分隔符

于 2018-01-10T15:08:22.823 回答