【问题标题】:How do you debug Javascript code in Mirth Connect?您如何在 Mirth Connect 中调试 Javascript 代码?
【发布时间】:2020-12-27 04:21:18
【问题描述】:

我正在尝试使用代码模板在 Mirth Connect 中创建一个函数库。使用logger.debug 很痛苦。我尝试将代码复制到一个虚拟 HTML 页面并使用浏览器的调试工具。不幸的是,Mirth 与浏览器中的 javascript 引擎不同,Mirth Javascript 使用了几种不推荐使用的语法。

如何在 Mirth Connect 中调试或单步调试 Javascript 代码?

【问题讨论】:

    标签: javascript mirth


    【解决方案1】:

    “如有疑问,请退出”

    在 Mirth Connect 中有几种方法可以在不访问应用程序配置、其日志或主机的情况下执行此操作:

    1. 致电logger。在您的情况下,由于您无权访问服务器,因此您必须以logger.error("your data") 执行此操作,因为记录器级别在服务器上设置为log4j.properties。这些将在提供日志的部分视图的 MC 仪表板中可见。一个好的做法是在您的 logger 语句前面加上它来自的位置,例如 logger.info(channelName + " transformer step 1 " + "your other data") 否则其他团队成员可能会想知道控制台上的日志消息是由哪个通道发出的。
    2. 使用 Mirth Connect 地图记录有关变量值的详细信息。请注意这一点,因为将大型对象放入地图中,尤其是 channelMapglobalChannelMap 会使您的消息负载过大。当然,您也可以使用通道映射变量来存储信息数据,就像您点击一段代码一样。例如:$c('patient is in table', true) 也与channelMap.put('patient is in table', true) 相同
    3. 在极端情况下,您可以故意仅使用调试数据覆盖您的消息。这在您需要注销大型对象的情况下很有用。不过,这会增加调试的复杂性。

    无论哪种情况,请记录您的值:

    • 仅在设置 debug 标志时记录 - 这可确保您的日志记录和调试不会在您不需要主动捕获数据时将数据发送出去
    • 有有意义的消息 - 不要只是注销"x = 12",注销"MsgId: " + msg.getMessageId() + " in method foobar() had x = 12"

    【讨论】:

      【解决方案2】:

      您可以在嵌入式模式下使用 Rhino 调试器....它有一些细微差别,但我认为这就是您要寻找的。​​p>

      这是一个引导您完成整个过程的线程。

      https://forums.mirthproject.io/forum/mirth-connect/support/7210-real-debugging-for-mirth-javascript-channel-code

      【讨论】:

      • 不幸的是,我无法访问托管 Mirth 的服务器 :-(
      • 您在使用 mirth 设备吗?
      • 这是一个虚拟机,但我无法访问远程输入。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2017-10-08
      相关资源
      最近更新 更多