繁体   English   中英

您如何在 Mirth Connect 中调试 Javascript 代码?

[英]How do you debug Javascript code in Mirth Connect?

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

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

所有版本的 Mirth Connect

“如有疑问,请注销”

在 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"

Mirth Connect 4.0 中的新功能

MC 4.0 引入了一种从 Mirth connect 启动 Rhino 调试器的方法。 请参阅MC 4.0 的发行说明以了解如何使用它。

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

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

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

在 Mirth 4.0 的新版本中,您可以通过管理控制台调试您的 javascript https://github.com/nextgenhealthcare/connect/wiki/4.0.0---What%27s-New

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM