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

使用逗号值的csv数据在通过BizTalk flatfile反汇编程序处理文件时引发错误,csv,biztalk,flat-file,biztalk-2013,custom-pipeline-component,Csv,Biztalk,Flat File,Biztalk 2013,Custom Pipeline Component,我将在BizTalk中选择一个csv文件,经过一些过程后,我想用两个或多个不同的系统更新它 为了获取csv文件,我使用默认的Flatfile反汇编程序,在通用模式的帮助下将其分解并构建为XML。我可以用一些一致的数据成功地做到这一点,但是如果我使用一个带有逗号的数据(而不是分隔符),BizTalk将失败 没有使用自定义管道组件的情况下,是否有其他方法可以做到这一点? 希望在flatfile反汇编程序组件中有一个简单的配置 那么,事情是这样的。BizTalk没有失败。是的,但这是预期的正确行为 无

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

为了获取csv文件,我使用默认的
Flatfile反汇编程序
,在通用模式的帮助下将其分解并构建为XML。我可以用一些一致的数据成功地做到这一点,但是如果我使用一个带有逗号的数据(而不是分隔符),BizTalk将失败

没有使用自定义管道组件的情况下,是否有其他方法可以做到这一点? 希望在flatfile反汇编程序组件中有一个简单的配置

那么,事情是这样的。BizTalk没有失败。是的,但这是预期的正确行为

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

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

这是有效的:

2001年1月1日,“史密斯,约翰”,5000美元

这不是:

2001年1月1日,约翰史密斯,5000美元

那么,就这么定了。BizTalk没有失败。是的,但这是预期的正确行为

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

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

这是有效的:

2001年1月1日,“史密斯,约翰”,5000美元

这不是:

2001年1月1日,约翰史密斯,5000美元


由于您的架构定义具有“分隔符”,所以平面文件反汇编程序将考虑逗号为两个字段的数据,并且由于列中的不匹配而失败。 您几乎没有选择:

  • 或者向模式中添加一个新字段,如果您知道,in数据将只出现在特定字段中
  • 或者将平面文件中的分隔符从、更改为|(管道)或其他字符,以便数据不会与分隔符冲突
  • 或者,正如您所提到的,在自定义管道组件中操作平面文件,如果上述两种方法都不可行,这应该是最后的手段

由于您的架构定义具有“分隔符”,所以平面文件反汇编程序将考虑逗号为两个字段的数据,并且由于列中的不匹配而失败。 您几乎没有选择:

  • 或者向模式中添加一个新字段,如果您知道,in数据将只出现在特定字段中
  • 或者将平面文件中的分隔符从、更改为|(管道)或其他字符,以便数据不会与分隔符冲突
  • 或者,正如您所提到的,在自定义管道组件中操作平面文件,如果上述两种方法都不可行,这应该是最后的手段

注意:始终包括错误消息和如何在问题中重现问题的示例,否则人们必须猜测问题是什么。注意:始终包括错误消息和如何在问题中重现问题的示例,否则人们必须猜测问题是什么。是的,它被
所以它正在处理文件,但最后一行应该是什么来表示文件的结尾?错误发生在最后一行。@Balaji这取决于文件格式,这将是一个单独的问题。请发布一个示例文件,指明特殊字符,如CR LF。这通常通过将行类型从后缀更改为中缀来解决。CSV“标准”可在此处找到:。关于此问题的指定文本:包含换行符(CRLF)、双引号和逗号的字段应包含在双引号中。是的,是否用
所以它正在处理文件,但最后一行应该是什么来表示文件的结尾?错误发生在最后一行。@Balaji这取决于文件格式,这将是一个单独的问题。请发布一个示例文件,指明特殊字符,如CR LF。这通常通过将行类型从后缀更改为中缀来解决。CSV“标准”可在此处找到:。此问题的指定文本:包含换行符(CRLF)、双引号和逗号的字段应包含在双引号中。