我们有两个频道称为channelA
和channelB.
在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版本。
答案 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?