0

我将在 BizTalk 中选择一个 csv 文件,经过一些处理后,我想用两个或更多不同的系统对其进行更新。

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

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

4

2 回答 2

5

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

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

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

这是有效的:

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

这不是:

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

于 2016-09-27T15:56:23.337 回答
1

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

  • 如果您知道,请向模式中添加一个新字段,数据只会出现在特定字段中。
  • 或者将平面文件中的分隔符从 , 更改为 |(pipe) 或其他字符,以便数据不会与分隔符冲突。
  • 或者正如您提到的那样,在自定义管道组件中操作平面文件,如果上述两个不可行,这应该是最后的手段。
于 2016-09-27T16:05:40.170 回答