0

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

只有在有记录的情况下才需要制作发送端口输出文件,并且不要输出大小为 0 kb 的文件。

有什么建议我该怎么做?

4

1 回答 1

1

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

  1. 优雅的方法 - 创建一个自定义接收管道组件,它使用 XPath 来确定主体节点是否包含记录。如果是,则传递消息;如果不是,则返回一个空流,因此没有消息发布到消息框。
  2. 不太优雅的方法 - 在编排中接收消息(页眉、正文和页脚)并使用与 (1) 中相同的 XPath 语句,确定正文节点是否包含记录。如果是,请使用发送形状发送消息;如果没有,让编排终止而不发送消息。

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

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

于 2013-04-24T13:55:49.213 回答