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

时间:2016-09-27 13:16:13

标签: csv biztalk flat-file biztalk-2013 custom-pipeline-component

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

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

在不使用自定义管道组件的情况下执行此操作的任何其他方法? 期待flatfile反汇编程序组件中的简单配置!

2 个答案:

答案 0 :(得分:5)

所以,这是交易。 BizTalk没有失败。嗯,确实如此,但这是预期和正确的行为。

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

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

这是有效的:

  

1/1/01,“史密斯,约翰”,5000美元

这不是:

  

1/1 / 01,史密斯,约翰,5000美元

答案 1 :(得分:1)

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

  • 如果您知道,可以在架构中添加新字段,数据只会出现在特定字段中。
  • 或者将平面文件中的分隔符从|更改为|(管道)或其他字符,以便数据不与分隔符冲突。
  • 或者正如您所提到的那样在自定义管道组件中操作平面文件,如果不可行,则应该是最后的选择。