この回答は、質問とコメントでの私への回答の両方に基づいています。
私の側では、Mirth のバージョン 1.8.2 を参照していることに注意してください。より新しいものを使用している場合は、ここで説明する手法がまだ有効であると確信していますが、ユーザー インターフェイスが私の指示から逸脱している可能性があります。
ここでは、この問題を解決するための 2 つの手法を紹介します。個人的にはテクニック 1 に傾倒しますが、Javascript と E4X に慣れていない場合は、テクニック 2 が優先される可能性があります。
テクニック 1.
Message Builder の代わりに Javascript トランスフォーマーを使用します。メッセージビルダーを使用する際の課題は、入力メッセージを受け取り、それを単一の出力メッセージに変換することです。Javascript はより強力ですが、それは言語を知っている場合に限られます。
を。
1 つの Javascript トランスフォーマーを使用して、メッセージの 2 つのコピーを作成します。必要に応じて Javascript E4X 表記を使用して各変数を変換し、両方を channelMap に格納します。
// init local message variables
var messageParticipant= msg;
var messageSPR= msg.copy();
// messageParticipant transformations using E4X notation: example
messageParticipant['PID']['PID.5']['PID.5.1'][0] = 'Blah';
// messageSPR transformations using E4X notation: example
messageSPR['PID']['PID.5']['PID.5.1'][0] = 'Hey There';
// stick messages in channel map so they can be accessed in your SQL script
channelMap.put('messageParticipant', messageParticipant);
channelMap.put('messageSPR',messageSPR);
b.
SQL コードで 2 つの channelMap 変数を参照します。
INSERT INTO report_queue (PARTICIPANT_IDENTIFICATION, SPR_Information)
VALUES (${'messageParticipant'}, ${'messageSPR'})
テクニック 2.
変換に Javascript を使用することに慣れていない場合は、この手法の方が少し簡単だと思うかもしれませんが、説明するのは少し難しいと思います。
基本的に、3 つの宛先があり、それらを強制的に順番に実行します。最初の宛先は PARTICIPANT_IDENTIFICATION の XML を構築し、2 番目の宛先は SPR_Information の XML を構築します。最初の 2 つの宛先は、実際には channelMap 以外の場所にメッセージを送信しません。3 番目の宛先は、最初の 2 つの結果を利用して、SQL コードを実行します。
を。
概要タブで、[チャネルを同期] がオンになっていることを確認します。これにより、3 つの宛先が順番に実行されます。
b.
送信先タブで、既存のデータベース ライターに加えて、2 つの Javascript ライターを作成します。次の順序で表示される 3 つの目的地を整理します。
Destination Connector Type
---------------------------------------
Build Participant JavaScript Writer
Build SPR JavaScript Writer
SQL Database Writer
c.
宛先「Build Participant」を選択し、Javascript テキスト領域に次のように入力します。
channelMap.put('messageParticipant', messageObject.getTransformedData());
d.
宛先の [Build SPR] を選択し、Javascript テキスト エリアに次のように入力します。
channelMap.put('messageSPR', messageObject.getTransformedData());
e.
Sql の宛先では、手法 1 と同じ SQL コードを使用します。
INSERT INTO report_queue (PARTICIPANT_IDENTIFICATION, SPR_Information)
VALUES (${'messageParticipant'}, ${'messageSPR'})
f.
2 つの Javascript 宛先のそれぞれについて: i. [トランスフォーマーの編集] をクリックします。[メッセージ テンプレート] タブをクリックします。 iii. [送信メッセージ テンプレート] セクションで、データ型が XML に設定されていることを確認します。 、Participant XML に適用可能な変換ステップを追加します (宛先ビルド SPR についても同様です)。
g.
SQL 宛先にはトランスフォーマーを含めないでください。もしそうなら、それらは出力に何の影響も与えません。
幸運を