читать базу данных sqlserver с помощью mirth connect и конвертировать ее в формат xml и наоборот

У меня есть требование, когда я должен прочитать данные из локальной базы данных sql server и сначала сопоставить их в файле XML, предоставленном другой сторонней организацией. у которых есть своя база данных. Затем, когда у меня есть правильное сопоставление полей, мне нужно преобразовать данные из базы данных сервера sql в формат XML и наоборот. Пока я могу подключить базу данных sqlserver в mirthconnect, однако я не знаю, какие шаги необходимо создать в каналах и преобразователе для выполнения задачи чтения данных и сопоставления соответствующих полей с форматом XML, предоставленным третьей стороной, и, наконец, записи в файл XML при условии и наоборот.

Короче говоря, если я могу получить подробную информацию о создании такого канала в веселом подключении, где я могу читать базу данных sql-сервера и отображать поля в соответствующем XML-файле ... Думаю, я могу писать в него. То же самое применимо, если я перейду из формата xml в базу данных sqlserver. Может кто-нибудь сказать мне, как это сделать?

Для сопоставления полей базы данных лучший способ сопоставить поля полностью в двух разных базах данных - есть ли какой-либо инструмент, который может помочь ...

Также, как только задача преобразования данных с одного конца на другой выполнена, есть ли какой-либо способ проверки в mirth connect, который проверяет, что данные правильно перемещаются от одного к другому?


person Burair    schedule 10.08.2012    source источник
comment
Добро пожаловать в Stackoverflow! Как правило, большинство вопросов на сайте связано с конкретной проблемой программирования. Ваш вопрос гораздо более открытый и общий (похоже, вы хотите узнать, как настроить канал веселья), поэтому вы можете не получить так много ответов. Мне самому пришлось выучить Mirth год назад, поэтому я знаю, насколько неприятно это начинать. Вы нашли учебные пособия? stackoverflow.com/questions/6509057/a-good-basic -mirth-tutorial Может быть, после того, как вы пройдете эти уроки, вы сможете разбить свой вопрос на более мелкие и более конкретные вопросы, на которые люди с большей вероятностью ответят.   -  person bernie2436    schedule 10.08.2012


Ответы (1)


Если вы хотите обрабатывать по одной строке за раз, обычное средство чтения базы данных будет работать нормально; просто установите тип данных в разделе «Сводка» на XML для всех шагов. Установите место назначения автора канала в никуда и запустите его один раз, чтобы увидеть, что он делает на панели инструментов. Вы можете скопировать и вставить это в качестве примера в свой шаблон сообщения, чтобы вы могли сопоставить переменные.

Если вы хотите обработать весь результат за один раз на шагах Transformer, мне будет проще создать пользовательский ридер и использовать «FOR XML RAW, ELEMENTS» в конце моего запроса Microsoft SQL. Что-то вроде:

    //build connection
    var dbConn =      DatabaseConnectionFactory.createDatabaseConnection('com.microsoft.sqlserver.jdbc.SQLServerDriver','jdbc:sqlserver://servername:1433;databaseName=dbname;integratedSecurity=true;','','');  //this uses the MS JDBC driver and auth dll
    //query results with XML output from server  'FOR XML' statement at end
    var result = dbConn.executeCachedQuery("SELECT col1 AS FirstColumn, col2 AS SecondColumn FROM [dbname].[dbo].[table1] WHERE [processed] = 'False' FOR XML RAW, ELEMENTS");

    //Make sure we are at the top of results
    result.beforeFirst();

    //wrap XML.  Namespace etc. not required
    XMLresult = '<message>';

    //XML broke up across several rows in one column.  Re-combine
    while (result.next()) {

    XMLresult += result.getString(1);

    }

    XMLresult += '</message>';

    dbConn.close();

    return XMLresult;
person jonduncan05    schedule 26.09.2012