Mirth: программа чтения базы данных, как работать с [несколько строк], возвращаемых из запроса sql?

Я новичок в Mirth connect, и мне нужна помощь.

Я работаю над демо, как показано ниже:

источник — программа чтения базы данных, цель — программа записи документов.

Запрос выбора SQL в источнике возвращает несколько строк, «и это то, что мне нужно». Я пытаюсь создать документ в формате PDF [создатель документа], который содержит значения всех возвращаемых столбцов, но на самом деле то, что написано в файле, ТОЛЬКО последняя возвращенная строка

это HTML-шаблон, который я написал

<html>
<head></head>

<body>
<div>
${Target_path}\\${fileName}
</div>

</body>
</html>

и в пункте назначения у меня есть преобразователи типа Mapping, которые сопоставляют значения возвращаемых столбцов со строкой

Оператор SQL выбирает два столбца из моей базы данных, оба являются строками

первый столбец представляет собой путь, а второй столбец представляет имя файла. Итак, у меня есть много имен файлов, возвращаемых из инструкции sql, и мне нужно записать их все в этот документ.

Любые подсказки о том, как я могу справиться с каждой строкой, возвращаемой из запроса?

С уважением,


person Heba A.    schedule 19.09.2016    source источник
comment
Вы должны зациклить содержимое шаблона... Просто перейдите по этой ссылке, и вы получите представление mirthified .wordpress.com/category/mirth-tool .. когда вы получаете данные из БД, вы также зацикливаете контент. leakymllp.com/2010/08/17/MirthHL7ToPDF.html   -  person Vibin Guevara    schedule 19.09.2016
comment
Я понял, но разница здесь в том, что я конвертирую не из HL7msg, а из xml, выбор базы данных.. поэтому я делаю то же самое, но у меня есть проблема с этой строкой: var file_name = msg['file_name'].toString();, это дает мне эту ошибку TypeError: Не удается вызвать метод toString неопределенного .. Что работает первым? преобразователь javascript или запрос sql из источника чтения базы данных? любые намеки на то, как преодолеть это?   -  person Heba A.    schedule 20.09.2016


Ответы (1)


Вместо этого я использую JavaScript для извлечения своих данных, но вы можете заранее отформатировать свои записи и вставить их в ArrayList. Оттуда сопоставьте список с переменной карты каналов.

var dbConn;
var result;
var entryList = java.util.ArrayList();

try {
    dbConn = DatabaseConnectionFactory.createDatabaseConnection('DRIVER', 'ADDRESS', 'USERNAME', 'PASSWORD');
    result = dbConn.executeCachedQuery('YOUR QUERY');
    while (result.next()) {
        var entry = result.getString(1) + "//" + result.getString(2);
        list.add(entry);
    }
} finally {
    if (dbConn) {
        dbConn.close();
    }
}

channelMap.put('entryList', entryList);

В своем шаблоне вы можете использовать Velocity в своем HTML-шаблоне для динамического создания PDF-файла таким образом.

<html>
    <head/>
    <body>
        #foreach ($entry in ${entryList})
        <div>
            $entry
        </div>
        #end
    </body>
</html>
person Austin Yi    schedule 04.11.2016