0

两个城市的故事几乎......我有 17,000 行数据,它们以 2 列中的一对字符串的形式出现。每行总是有 5 个项目编号和 5 个项目单位计数(单位计数总是 4 个字符)。他们必须匹配单元和项目,否则它是无效的。我想要做的是将字符串“还原”成单独的行 - 项目编号和项目单位

所以这里是一行数据和两列的例子

  • 记录 ID 列:0
  • 货品编号栏:A001E10 A002E9 A003R20 A001B7 XA917D3
  • 项目单位栏:001800110002000300293

我编写了一个 C# windows 应用程序测试工具来将数据分解为单独的行,它工作得很好而且很漂亮。因此,它基本上将数据转换为 85,000(5 乘以 17,000)行,并以我期望的网格(ID、项目编号和项目单位)显示给我。

  • 0 | A001E10 | 0018
  • 0 | A002E9 | 0011
  • 等等...

在我的 SSIS 应用程序中,我添加了一个脚本任务来处理相同的数据,并且基本上使用了我的测试工具使用的相同代码。当我运行我的任务时,我可以看到它加载了 17,000 行,但它只在输出上生成 15,000 +/-,所以显然有些事情是不对的。

我在想的是,我没有正确设置脚本任务,即使它使用的代码与我的测试工具使用的代码相同,因为它出于某种原因丢弃了记录。

如果我回到我的任务并给它一个在第一次传递中没有得到的特定记录 ID,它将处理该 ID 并生成正确的输出。所以这告诉我记录没问题,但由于某种原因它错过了它或在初始过程中丢弃它。也许与缓冲区有关?

4

1 回答 1

1

嗯 - 我想通了。

我们有一个序列任务,其中包含大量并行运行的数据流任务。我们依靠引擎来确定优先级并正确处理数据提取和加载。但是,该序列容器中的引擎未正确处理这一特定脚本任务。

线索是您可以在整个过程之外运行脚本任务本身并且它运行良好。所以我们把脚本任务从序列任务中拉出来,把它自己放在序列任务之后,现在它可以正常运行了。

于 2015-09-15T14:31:41.707 回答