是否可以计算biztalk发送端口上的记录数

时间:2013-04-23 12:40:42

标签: biztalk biztalk-2010

我有一个场景,我收到一个XML文件,它有3个节点(页眉,正文和页脚),第二个节点(正文)本身可能有记录。我将这些记录在正文中映射到平面文件并将其输出到特定文件夹。但在某些情况下,身体节点可能包含0条记录。

我只有在有记录时才需要发送端口输出文件,并且不输出大小为0 kb的文件。

有任何建议我该怎么做?

1 个答案:

答案 0 :(得分:1)

我可以看到两种可能的方法:

  1. 优雅的方法 - 创建一个自定义接收管道组件,它使用XPath来确定主体节点是否包含记录。如果是,请传递消息;如果没有,则返回一个空流,这样消息就不会发布到消息框。
  2. 不太优雅的方法 - 在Orchestration中接收消息(标题,正文和页脚)并使用与(1)中相同的XPath语句,确定正文节点是否包含记录。如果是,请使用发送形状发送消息;如果没有,请让业务流程在不发送消息的情况下终止。
  3. 在任何一种情况下,我都会在发送端口上执行您的地图(也将使用平面文件汇编程序配置)。如果您选择仅消息传递解决方案(上面的1),则需要过滤接收端口名称或消息类型(或其他一些提升的属性)。

    我已将第一个选项标记为“优雅”,因为处理可以完成,因为接收管道解析了消息,并且不需要额外的处理(即启动业务流程)以实现所需的结果。