带有逗号值的 csv 数据在通过 BizTalk 平面文件反汇编程序处理文件时引发错误

csv data with comma values throws error while processing the file through the BizTalk flatfile Disassembler

我打算在 BizTalk 中选择一个 csv 文件,经过一些过程后我想用两个或更多不同的系统更新它。

为了获取 csv 文件,我使用默认的 Flatfile Disassembler 来破坏它并在生成模式的帮助下将其构建为 XML。我可以使用一些一致的数据成功地做到这一点,但是如果我使用其中包含逗号的 数据(分隔符除外),BizTalk 失败!

在不使用自定义管道组件的情况下,还有其他方法可以做到这一点吗? 期待平面文件反汇编器组件中的简单配置!

所以,这就是交易。 BizTalk 没有失败。是的,但这是预期的正确行为。

您在 无效 CSV 文件 中的内容。 CSV 规范不允许在字段数据中使用逗号,除非使用换行符。无论哪种方式,都是保留字符。

要在字段数据中接受逗号,您必须选择一个换行符并在平面文件架构的换行符 属性 中进行设置。

这是有效的:

1/1/01,"Smith, John", 00

这不是:

1/1/01,Smith, John, 00

由于您的架构定义以“,”作为分隔符,平面文件反汇编器会将带逗号的数据视为两个字段,并且会因列不匹配而失败。 你有几个选择:

  • 如果您知道,请将新字段添加到架构中,数据将仅出现在特定字段中。
  • 或者将平面文件中的分隔符从 , 更改为 |(竖线)或其他一些字符,以便数据不会与分隔符冲突。
  • 或者如您所提到的在自定义管道组件中操作平面文件,如果以上两个都不可行,这应该是最后的手段。