4

我正在使用 Mirth Connect 3.5.0.8232。我有一个数据库阅读器作为源连接器,一个 JavaScript 编写器作为目标连接器。我决定在目的地放一些花哨的代码,做四件不同的事情,这些事情应该一个接一个。基本上我只是写了代码,在我看来它太长太笨拙了,所以我决定通过“等待上一个目的地”选项将它分成 4 个菊花链的目的地。

问题是:如果其中一个目的地发生错误,我如何中断这个执行链?

我从 2013 年发现了一个 JIRA 问题,说实际上目标连接器正文中发生的错误不会阻止消息发送到所有其他目标。它指出 2.X 版本的行为仍然是最新的,即目标转换器中将发生的错误实际上会阻止消息传播。

我尝试在目标正文和目标响应转换器中都抛出错误,并且在这两种情况下,消息都会继续发送到其他目标。我还尝试从 Destination 正文返回 ResponseFactory.getErrorResponse ,但没​​有成功。我还尝试在 Destination Response Transformer 中将 responseStatus 设置为 ERROR 无济于事。他们是指普通的变压器/过滤器吗?

另外-也许我将任务分成4个不同目的地的特殊解决方案不是首先创建目的地的原因?我认为文档说明目的地基本上就是目的地所代表的实际单词。

如果上述情况属实,也许有更好的方法在 Mirth 中按功能组织代码?我认为在 JavaScript 编写器中不允许包含外部 JS 文件 - 即使是这样,我更希望所有内容都位于 Channel 本身内并且可以作为单个文件导出/导入。

谢谢你。

4

1 回答 1

3

是的,当过滤器/转换器抛出错误时,它被认为是真正的“异常”,因此消息流被停止(不执行同一链中的后续目的地)。

如果从实际目标调度程序或响应转换器抛出错误,则该目标被标记为ERROR,但后续目标仍将被执行。

如果您愿意,您仍然可以停止消息流。在您的后续目的地上使用过滤器: 筛选

于 2017-08-10T15:37:23.347 回答