【发布时间】:2018-06-17 05:12:11
【问题描述】:
从文本文件输入:
ID|ACTION|IID|SPK|DSI|OLID|NLD
1 | M | 1 | 1 | 1 | 1 | 1
预期输出:
{
"source": "PM",
"Timestamp": "4/10/2018 11:44:55 AM",
"tes":{
"id": 1,
"ac": "M",
"test": "1",
"key": "1",
"id": "1",
"nid": "1"
}
}
我在 dataweave 中尝试了下面的代码 sn-p,但在运行时出现异常。
<ee:transform doc:name="Transform Message" doc:id="2a7de32c-1b84-4419-826f-8099ce1dc241" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
input payload text/csv
---
payload map{
source:"PM",
"Timestamp": now() as String {format: "MM/dd/YYYY hh:mm:ss a"},
"tes":{
"id":$.ID,
"action":$.ACTION,
"IID":$.IID,
"SPK":$.SPK,
"DSI":$.DSI,
"OLID":$.OLID,
"NID":$.NLD
}
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
消息:“您使用以下参数调用函数'map':1:字符串(“ID|ACTION|IID|SPK|DSI|OLID|NLD...)2:函数(($:Any,$$ :Any) -> ???)
但它需要以下类型的参数:1:数组 2:函数
5|有效载荷图{ | ... 11| }
Trace: at map (line: 5, column: 3) at main (line: 5, column: 11)” 评估表达式:“%dw 2.0 output application/json indent = true input payload text/csv
【问题讨论】:
-
即使运行项目时它会显示编译时错误,它也可以正常工作。但它填充空值。如果我将文件分隔符更改为 comma(,) 而不是 pipe(|) 它工作正常。不知何故需要更改默认文件分隔符。在 3.9 中,以下设置有效,但不知道在 mule 4
-有效载荷>
标签: mule