我们的客户向我们发送一个平面文件作为输入,然后我们将其转换为 XML 文件,然后发送到目标系统。
平面文件由多行组成,每行由 LF 或 CRLF 分隔。
如何创建平面文件架构,以便 BizTalk 可以解释每一行数据,无论该行是由 LF (0x0A) 还是 CRLF (0x0D 0x0A) 分隔?
问题解决了。如果其他人想知道,这里是解决方案:
由于 LF 和 CRLF 都共享 LF 字符,因此我将行分隔符设置为 LF (0x0A)。这对于提取完整记录是正确的(当 CRLF 是分隔符时,其副作用是在末尾有一个额外的 CR 字符)。
可以使用虚拟字段吸收 CR 字符或使用映射来消除多余的 CR 字符。
请注意,由于 LF 和 CRLF 分隔符具有不同的长度(分别为 1 和 2 个字符),因此我必须对架构进行更多更改,以确保两者都得到正确处理。
在我的场景中,解析的每行记录都包含 8 个位置字段,因此末尾有一个额外的 CR 字符会导致错误,因为 Biztalk 期望最后一个字段具有一定的长度,而该字段不考虑额外的 CR 字符。解决方案是将第 8 个字段(在我的例子中是填充字段)的长度增加 1。但是,为了仍然能够处理 LF 行分隔符,请确保设置“允许提前终止”标志为 TRUE。这样,如果最后一个字段比指定长度短 1 个字符(如果不包含 CR 字符),则不会引发错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)