Mirth Connect v.3.1.1 - 如何映射url查询字符串中的变量

时间:2015-01-08 17:44:52

标签: url mirth

我将从客户处获取一个url编码的查询字符串:

string:?siteId = 13222& username = pvuser& password = PV01& externalId = 942419444& firstName = John& lastName = Victor& gender = M& dob = 11%2f10%2f1955& address = 10100 + FOREST + HILLS + RD&安培;地址2 = SUITE + 300安培;城市= MACHESNEY + PARK&安培;状态= IL&安培;拉链= 61115&安培; HOMEPHONE = 815-364-5761&安培;手机= 815-818-0918&安培; empName = AT%26T + UNITED + TECHNOLOGIES

我被指示使用“Raw”作为我的数据类型但是没有给你一个拖放的消息树。不是程序员,很难确定映射变量的最佳方法。

我找到了一个简单的JavaScript函数,但是我无法解析数据。我错过了channelMap.put('',)。我不确定它是如何工作的。

var parseQueryString = function( queryString ) {
    var params = {}, queries, temp, i, l;

    // Split into key/value pairs
    queries = queryString.split("&");

    // Convert the array of strings into an object
    for ( i = 0, l = queries.length; i < l; i++ ) {
        temp = queries[i].split('=');
        params[temp[0]] = temp[1];
    }

    return params;
};

1 个答案:

答案 0 :(得分:0)

我会继续使用分隔文本作为输入类型。您可以将分隔符设置为&符号。这将允许您访问消息树,这将允许您使用Mapper步骤将值存储在通道映射中(无需担心channelMap.put()。

当您将消息模板/树中的值拖动到Mapper步骤时,如果您想要删除前面的部分并包含'='(这可能看起来很丑/效率低,但听起来像你'不要对javascript变换器感到兴奋),我会在默认情况下输入的.toString之后添加一个子串调用。每个Mapper步骤的“映射值”看起来都是这样的:

msg.value1.toString().substring(msg.value1.toString().indexOf('=') + 1);

这应该只为您提供查询字符串中每个键的值。

您也可以在映射器步骤中执行字符串替换,允许您将'%2f'替换为'/',将'+'替换为''。希望这会有所帮助。