【问题标题】:mirth connect Database Reader automatic column mappingmirth connect Database Reader 自动列映射
【发布时间】:2017-08-10 14:37:47
【问题描述】:

请有人确认以下内容.. 我正在使用 Mirth Connect 3.5.08232。 我的源连接器是一个数据库阅读器。

假设,我正在使用返回多行的查询,并返回结果(通过 JavaScript),正如文档所建议的那样,这样 Mirth 会将每一行视为单独的消息。我还使用了几个映射器作为源转换器,并将映射的字段保存在我的通道映射中(最终只包含我在转换器中定义的那些字段)

在目标中,特别是在目标响应转换器(或目标主体,如果它是 JavaScript 编写器)中,我如何访问源字段?

我通过反复试验找到的唯一方法是

var rawMsg = connectorMessage.getRawData();
var xmlMsg = new XML(rawMsg);
logger.info(xmlMsg.some_field); // ignore the root element of rawMsg

这是正确的方法吗?我想也许可以很好地自动检测到的字段会被放入某种地图中,比如 sourceMap - 但事实并非如此,对吧?

谢谢

【问题讨论】:

    标签: mirth mirth-connect


    【解决方案1】:

    如果您在转换器中使用 Mapper 步骤来提取数据并将其放入变量映射(如通道映射),那么您可以使用以下任何方法从后续 JavaScript 上下文中检索它(包括JavaScript Writer 和你的响应转换器):

    var value = channelMap.get('key');
    var value = $c('key');
    var value = $('key');
    

    查看User Guide 的变量映射部分了解更多信息。

    回顾一下,假设您正在使用数据库阅读器选择“mycolumn”列。发送到频道的 XML 将是这样的:

    <result>
        <mycolumn>value</mycolumn>
    </result>
    

    然后您可以选择将该消息的片段提取到特定变量中以供以后使用。转换器允许您轻松拖放示例入站消息的片段。

    最后,在您的 JavaScript Writer(或任何后续过滤器、转换器或响应转换器)中,只需将值拖到您想要的字段中:

    并且会自动插入相应的JavaScript代码:

    最后一点,如果您选择 很多 变量并且不想为每个变量单独创建 Mapper 步骤,您可以使用 JavaScript Step 遍历消息并提取每个列到单独的地图变量中:

    for each (child in msg.children()) {
        channelMap.put(child.localName(), child.toString());
    }
    

    或者,您可以直接从 JavaScript 编写器中引用列:

    var msg = new XML(connectorMessage.getEncodedData());
    
    var column1 = msg.column1.toString();
    var column2 = msg.column2.toString();
    ...
    

    【讨论】:

    • 感谢您的回复 - 以及您在 mirth 支持网站上的许多帖子。在特定情况下,我宁愿希望所有变量都以某种方式自动映射 - 事实上它已经完成 - 只是获取它们的方法是通过原始输入消息的序列化内部表示。 - 我想知道的原因是可能有很多很多的变量 - 一个一个添加它们会很乏味。但无论如何 - 如果没有这样的方法(或者说没有自动为所有输入字段创建映射的方法),那么我很乐意将您的答案标记为答案。
    • 如果您有很多 Mapper 步骤,您当然不必单独创建 Mapper 步骤。例如,使用 JavaScript 步骤,您可以自动映射所有内容。我更新了我的答案以说明这一点。
    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多