【问题标题】:Create DTS config file with Excel fo SSIS package使用 Excel 为 SSIS 包创建 DTSconfig 文件
【发布时间】:2014-08-27 16:12:02
【问题描述】:

我创建了一个 SSIS 包,它只需要在运行时更改 5 个变量,我在下面提供了示例

  1. [用户::FolderStem]:0914
  2. 循环 1-22 IF.Properties[EvalExpression] @RunNo
  3. 循环 1-22 IF.Properties[InitExpression] @RunNo=1
  4. 循环 1-14 NB.Properties[EvalExpression] @RunNo
  5. 循环 1-14 NB.Properties[InitExpression] @RunNo=1

我一直在尝试让 excel 导出一个可用的 .dtsConfig 文件,以便将用户参与度降至最低。

我的梦想是我可以让用户在 Excel 中选择几个选项,然后触发并忘记。

我已经构建了一个 XML 模式,并且似乎能够生成一个 xml 文件,从表面上看,它似乎与我在 SSIS 中使用配置向导时生成的完全匹配

但是,每当我在 SSIS 内或独立执行包时,我都会得到

Warning: Failure importing configuration file: "C:\ICA.dtsConfig".

当我在 IE 中打开配置时,它显示正常,所以我没有弄碎 xml。

有什么建议吗?

【问题讨论】:

  • 你正试图将月亮嫁给太阳。不会发生。
  • 有没有办法自动修改配置文件?

标签: xml excel ssis


【解决方案1】:

我不知道您的流程出了什么问题,但我有一些需要检查的地方以及一个可能为您提供“足够接近”的替代方案

首先是测试:
检查创建文件的权限和所有权。如果您的工作配置和失败的“修改”配置没有相同的所有权和权限,请尝试更改修改后的配置以匹配工作配置。

创建您的“修改后的”配置文件以使用与您的工作配置文件相同的值。这个有用吗?比较文件,你能看出有什么不同吗?可能是大小写差异或 XML 文档属性?

如果文件看起来相同,请在十六进制编辑器中查看它们,是否有任何不同的空白字符?也许是行终止字符?

现在是替代方案:
几乎所有 SSIS 属性都可以选择从变量而不是特定值设置属性。您可以从平面文件或表格中读取变量,然后从变量中设置属性。例如,FTP 任务有一个“IsLocalPathVariable”,如果设置为 true,它会从您设置为变量的任何内容中读取路径。有时设置它的方法是使用属性上的“编辑函数”按钮(例如数据集中的查询),您可以在设置属性的函数中使用变量。您通常必须设置“合理”的默认值和/或延迟验证您以这种方式设置的属性。

这肯定比使用配置系统更有效,但它确实有效。我从这种方法的一个版本中驱动我的大部分包(尽管它要复杂得多。事实上,我有一个处理加载配置值的模板,所以我不必为每个包重新编码)。

编辑:
再想一想!一种配置选项是从数据库中读取它们,Excel 可以更新数据库中的值。我不知道安全隐患是否会解决这个问题(它可能难以保护,或者固有的安全性是否阻止 Excel 写入该特定数据库),但如果测试没有指向解决方案并且上述替代方法看起来工作量太大,让 Excel 更新配置数据库(可能通过存储过程)可能更合适。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-05-13
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多