在 SSIS 中,我尝试使用来自 Web 服务的数据来创建 csv 文件。
在我的控制流中,我创建了一个将其输出保存到用户变量的 Web 服务任务。
当 Web 服务任务完成时,它会启动一个数据流任务。
数据流任务有一个 XML 源,数据访问模式设置为“来自变量的 XML 数据”,指向(假定)具有来自 Web 服务的 XML 数据的变量。
在 DFT 之前和之后设置断点证明该变量被设置为我期望的 XML 文本。
例如,XML 看起来像这样(更改名称以保护专有信息):
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfMyItemObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MyItemObject>
<OrderID xmlns="http://webservices.mycompany.com/MyPath/">111111</OrderID>
<ItemID xmlns="http://webservices.mycompany.com/MyPath/">123456</ItemID>
</MyItemObject>
<MyItemObject>
<OrderID xmlns="http://webservices.mycompany.com/MyPath/">222222</OrderID>
<ItemID xmlns="http://webservices.mycompany.com/MyPath/">678901</ItemID>
</MyItemObject>
<MyItemObject>
<OrderID xmlns="http://webservices.mycompany.com/MyPath/">333333</OrderID>
<ItemID xmlns="http://webservices.mycompany.com/MyPath/">234567</ItemID>
</MyItemObject>
<MyItemObject>
<OrderID xmlns="http://webservices.mycompany.com/MyPath/">444444</OrderID>
<ItemID xmlns="http://webservices.mycompany.com/MyPath/">890123</ItemID>
</MyItemObject>
</ArrayOfMyItemObject>
该数据流任务只是处理成平面文件目标(csv 文件)。平面文件中的列映射到 XML 中的值。
但是,当我运行它时,我只得到列名,没有数据。
我已经验证了 Web 服务任务通过使用相同的 Web 服务运行另一个 Web 服务任务返回了我所期望的内容,但将该输出直接放入一个文件中。