【发布时间】:2011-11-21 16:56:39
【问题描述】:
在 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 服务任务返回了我所期望的结果,但将该输出直接放入一个文件中。
【问题讨论】:
-
就调试而言,您尝试过什么?这里没有太多信息可以继续,这很危险地接近“不是一个真正的问题”。使用 3401 代表,您应该知道发布更多细节。
-
查看数据流任务时,是否显示来自您的数据源的 0 条记录?
-
@JeradRose:实际上,它没有向我显示任何内容(除了“成功”)。我希望我可以更具体一些,但我只是没有通过我所期望的那样获得数据。
-
您是否尝试过在数据流任务之前放置断点,然后为 XML 变量添加 Watch?这应该清楚地表明问题是与填充变量有关,还是与从变量读取的 DFT 有关。
-
@JaredRose - 是的,在 DFT 之前和之后设置断点证明变量已设置。输出窗口中没有报告运行时错误。
标签: xml ssis flat-file dataflow