use*_*035 6 mapping variables ssis foreach-loop-container
我在SSIS 2012中遇到了一个非常简单的任务问题.
我有一个for-each容器,它在FOR-EACH-FILE枚举器模式下运行.我想用XML文件读取目标文件夹.正确配置了文件夹的路径.files字段设置为*.xml
变量映射使用以下变量定义:User :: FileVar,Index 0.
现在我在容器中添加一个简单的数据流任务.数据流任务只有一个XML数据源任务,就是这样.对于XML数据源任务,将设置XSD位置.当我单击选择列时,我可以看到XSD架构中的列.
但是:当我保存XML任务时,我总是收到错误消息:The Property XMLDataVariable is empty.我尝试了数据访问模式,变量的XML文件和变量的XML数据.错误消息仍然存在,我无法运行该程序包.
我不使用任何表达式,既不在foreach循环容器也不在数据流任务.
我不知道这里有什么问题,我完成了旧版SSIS教程中所示的步骤.
你有什么想法?
小智 18
问题是XML Source试图在设计时验证给定文件的存在.但是,只有在运行时Foreach循环容器执行并循环遍历给定文件夹中的每个XML文件时,才能知道文件名.
我使用我对其他SO问题的回答重新创建了一个SSIS 2012包. SSIS从文件夹中读取多个xml文件
我能够重现错误 The property "XMLDataVariable" on the XML Source was empty

在XML源代码上,我将属性设置ValidateExternalMetadata为False.将此设置为false将强制程序包在设计时不验证xml文件路径的存在.

我成功地执行了包.

希望有所帮助.