当输入数据有换行符时获取平面文件架构作为 CSV 输出

Get Flat File Schema as CSV output when input data has newlines

考虑我的输入数据如下:

<xmlnode>line1    
line2    
line3    
</xmlnode>

现在,我有一个将输入数据映射到平面文件架构的地图。我将平面文件保存为 CSV。

问题是:如果输入数据有换行符,则 csv 格式已损坏。 'xmlnode' 的内容应该放在一个单独的 csv 列中。

在平面文件架构中是否需要任何设置来处理此问题?

使用如下代码创建一个 functoid:

return input.Replace("\r", "").Replace("\n", " ");

想法是用单个 space 替换任何 \r\n(并处理没有回车的换行符 return 的情况)。应该可以解决您的问题。

如果这是在您输入的 multiple/all 个节点上经常发生的问题,那么您可以考虑 运行 将其作为整个消息的正则表达式作为映射后的字符串(而不是而不是让每个节点都通过您的脚本 functoid)。

正如 Dan 在评论中建议的那样,在 csv 的一个单元格中使用 \n(新行)保存数据也需要双引号。

您需要在您的平面文件模式中设置 "Wrap Character" 和 "Wrap Character Type" 设置,以便该字段分别引用 (") 和 'Character'。我已经将其用于同样的问题。

注意:架构设置中有 "Default Wrap Character" 和 "Default Wrap Character Type",但 BizTalk 巧妙地将字段类型默认为 "None" 而不是 "Default",因此您仍然有即使您设置了默认值,也可以去更改字段。