考虑我的输入数据如下:
<xmlnode>line1
line2
line3
</xmlnode>
现在,我有一个将输入数据映射到flatfile架构的映射。我将flatfile保存为CSV。
问题是:如果输入数据有换行符,那么csv格式就会被破坏。 'xmlnode'的内容应该转到一个单独的csv列。
我是否需要在平面文件架构中处理此设置?
答案 0 :(得分:1)
使用以下代码创建一个functoid:
return input.Replace("\r", "").Replace("\n", " ");
我们的想法是用一个空格替换任何\r\n
(并处理没有回车符的换行符)。应该解决你的问题。
如果这是您输入的多个/所有节点上常规出现的问题,那么您可以考虑在映射后将整个消息作为正则表达式作为字符串运行(而不是让每个节点都通过您的脚本functoid的)。
正如Dan在评论中所说,在csv的一个单元格中使用\ n(新行)保存数据也需要双引号。
答案 1 :(得分:1)
您需要在平面文件架构中为该字段设置“Wrap Character”和“Wrap Character Type”设置,分别引用(“)和”Character“。我已将此用于同一问题。
注意:架构设置中有“默认换行字符”和“默认换行字符类型”,但BizTalk巧妙地将字段上的类型默认为“无”而不是“默认”,因此您仍然需要更改即使您设置了默认值,也会显示字段。