如何在 mule dataweave 中引用作为结果集迭代器的有效负载?

How to refer payload which is a ResultSet Iterator in mule dataweave?

Sql 查询 returns 作为数据库组件的结果集迭代器对象的流式输出。 我想在 dataweave 中将其转换为 xml。但是不知道如何引用传入的对象, 如果它是一张地图,我可以简单地通过使用像 payload.student

这样的 .operator 来访问它

尝试使用 payload.next() 但它给出了错误。还尝试了以下, %var input1 payload as :iterator 但仍然无法工作

你能post你的代码(XML)和dataweave或调试器的屏幕截图吗? 我的第一个猜测是在数据编织转换器之前使用标准转换器将该对象转换为列表或映射。

步骤如下:

  • 将转换消息 (Dataweave) 组件拖放到配置的数据库连接器之后。您将看到 dataweave 脚本的输入负载填充了数据库结果 List<Map>.

  • 然后就可以访问字段了,使用dw中的map函数

dw 脚本

%dw 1.0
%output application/xml
---
{
    "Results":{
        (payload map {
            "key1":$."db_field1",
            "key2":$."db_field2"
        })
    }

}