如何从欢乐的另一个频道获得回应

时间:2013-06-28 05:42:29

标签: response channel mirth

我们有两个频道称为channelAchannelB.

在channelA,我们有两个目的地

  • 一个。第一个目标将使用XML数据作为输入调用channelB,并以XML格式从channelB获取响应。

  • 湾以xml格式检索第一个目的地的响应并进行处理。

var dest1 = responseMap.get("destination1"); var resMessage = dest1.getMessage();

我将频道B的回复设为"Message routed successfully".

我将如何从channelB而不是"Message routed successfully"消息中获取实际的XML。

我们正在执行上述步骤来定义通用渠道,以便我们可以在欢乐应用程序中的不同场景中重复使用它。

我们使用mirth 2.2.1.5861版本。

2 个答案:

答案 0 :(得分:1)

创建源数据类型为ChannelB的{​​{1}},并将source作为频道阅读器。 您必须在XML上创建一个目标作为频道编写者,并将ChannelA放入详细信息中。

这样,您在ChannelB中以XML形式获得的任何消息都将路由到ChannelA

答案 1 :(得分:1)

我们正在做一些与你描述的非常相似的事情。在我们的例子中,destination1是SOAP发送者(SOAP使用XML来发送和接收信封)。这是我们在destination2 JavaScript Writer中成功使用的语法:

var dest1 = responseMap.get("destination1");
var resMessage = dest1.getStatus().toString();

if (resMessage == "SUCCESS")
{
    var stringResponse = dest1.getMessage();
    channelMap.put('stringResponse',stringResponse);

    var xmlResponse = new XML(stringResponse);

    // use e4x notation to parse xmlResponse
}

如果您的destination1不是SOAP发送者,那么来自channelB的XML响应可能会以某种方式打包,您需要从“stringResponse”中提取。通过通道运行消息后,您可以看到channelMap变量“stringResponse”的内容。转到仪表板,双击该频道,查找已发送的消息,然后查看映射选项卡。 “stringResponse”的内容实际上是什么样的?它只是“消息路由成功吗?”或者该文本后跟您所追求的XML?