2013-04-23 43 views
0

我有一个场景,我收到一个XML文件,其中有3个节点(标题,正文和页脚),第二个节点(正文)可能有记录本身。我确实将这些记录正文映射到一个平面文件并将其输出到特定文件夹。但是在某些情况下可能会发生身体节点包含0个记录。是否有可能统计biztalk发送端口上的记录数

我只需要有发送端口输出文件,如果有记录,并且不输出具有0 kb大小的文件。

任何建议我该怎么做?

回答

1

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

  1. 优雅的方法 - 创建自定义接收它使用XPath来确定身体节点是否包含记录管道组件。如果有,传递消息;如果不是,返回一个空的流,所以没有消息发布到消息框。
  2. 不那么优雅的方法 - 在Orchestration中接收消息(标头,主体和页脚)并使用与(1)中相同的XPath语句,确定主体节点是否包含记录。如果是,则使用发送形状发送消息;如果没有,则让业务流程终止而不发送消息。

在任何一种情况下,我都会在发送端口(也将使用平面文件组装器配置)上执行您的映射。如果您选择仅使用消息传递解决方案(上述1),则需要过滤接收端口名称或消息类型(或某些其他升级的属性)。

我已经将第一个选项标记为'优雅',因为可以完成处理,因为消息由接收管道解析,并且不需要额外的处理(即旋转编排)以实现期望的结果。

相关问题