7

我在 SSIS 2012 中遇到了一个非常简单的任务的问题。

我有一个在 FOR-EACH-FILE Enumerator 模式下运行的 for-each 容器。我想读取带有 XML 文件的目标文件夹。文件夹的路径配置正确。文件字段设置为 *.xml

变量映射使用以下变量定义:User::FileVar,索引 0。

现在我在容器内添加一个简单的数据流任务。数据流任务只有一个 XML 数据源任务,就是这样。对于 XML 数据源任务,设置了 XSD 位置。当我单击选择列时,我可以看到 XSD 架构中的列。

但是:当我保存 XML 任务时,我总是收到错误消息:The Property XMLDataVariable is empty。我尝试了两种数据访问模式,来自变量的 XML 文件和来自变量的 XML 数据。错误消息仍然存在,我无法运行该包。

我不使用任何表达式,无论是在 foreach 循环容器中还是在数据流任务中。

我不知道这里出了什么问题,我完全按照旧版本 SSIS 的一些教程中所示的步骤进行了操作。

你有什么想法?

4

1 回答 1

20

问题是XML 源试图在设计时验证给定文件的存在。但是,只有在运行时,当Foreach 循环容器执行并遍历给定文件夹中可用的每个 XML 文件时,您才会知道文件名。

我使用我对其他 SO 问题之一的回答重新创建了一个 SSIS 2012 包。 SSIS从文件夹中读取多个xml文件

我能够重现错误The property "XMLDataVariable" on the XML Source was empty

错误

在 XML 源中,我将属性设置ValidateExternalMetadataFalse. 将此设置为 false 将强制包在设计时不验证 xml 文件路径的存在。

验证外部元数据

我成功地执行了这个包。

成功执行

希望有帮助。

于 2012-04-26T15:30:10.630 回答