如果消息中缺少记录,则使用平面文件汇编程序自定义管道时,这些记录的分隔符可能会或可能不会显示在平面文件输出中,具体取决于输入文件中缺少记录的位置。
若要确保平面文件保留某些分隔符,可以使用映射和自定义脚本来确保在消息中不存在特定输入记录时创建“空”记录。 若要执行此作,必须确保平面文件汇编程序的文档架构中可能为空的节点设置了以下属性,如下所示:
资产 | 设置 |
---|---|
保留空数据的分隔符 | 是的 |
去除尾随分隔符 | 否 |
生成空节点(在根节点上设置此项) | 真 实 |
创建生成“空”记录的映射
在 BizTalk 项目中添加一个新映射。
将平面文件汇编程序使用的文档架构指定为映射源和映射目标架构。
将那些不为空的源字段映射到对应的目标字段。
对于可能为空的字段,请使用自定义脚本检查源字段是否为空并返回空字符串(而不是 Nil)。 使用如下所示的脚本:
public string ValOrEmpty(string val) { return (val.Length > 0) ? val : ""; }
注释
必须为映射的每个潜在空字段创建一个具有唯一函数名称的脚本。 例如,如果你有三个可能为空的字段,则可能具有名为
ValOrEmpty1
“,ValOrEmpty2
的ValOrEmpty3
函数。使用 BizTalk Server 管理控制台,使用自定义管道和平面文件汇编程序组件配置发送端口,以将映射用作出站映射。