ルーティング・ルール・セット
[ruleSet] タブをクリックします。
ルーティング・ルール・セットには、一連のルールやアクションが含まれています。個々のルールにはアクションを含めることができますが、[when] ブロックに埋め込む必要があります。[when] ブロック内のアクションは、メッセージがルールの [制約] と [when] ブロックの [条件] と一致する場合にのみ実行されます。[制約] は、メッセージによって転送される HL7 データの HL7 スキーマやメッセージ構造、メッセージのソース (ルータにメッセージを送信したコンポーネント) など、メッセージのメタデータ条件を指定します。通常、[条件] では、メッセージや HL7 コンテンツに関する具体的な詳細を指定します。
上記のルール・セットには 1 つのルールしか含まれていません。[制約] は空白です。これは、すべての受信メッセージが制約と一致することを意味します。ルールには 1 つの [when] ブロックが含まれています。条件が 1 に設定されており、これは常に真であることを意味します (条件を空白にすることはできません)。したがって、すべての受信メッセージが制約と共に条件と一致します。
[when] ブロックには以下の 2 つのアクションが含まれています。
-
[send] — このアクションは、オプションで最初にデータ変換を適用して、[ターゲット] (プロダクション内の他のコンポーネント) にメッセージを送信します。適用する変換は [変換] ボックスで指定します。つまり、この場合、アクションは Tutorial.DemoDTL 変換を使用してメッセージを変換し、TutorialFileOperation にそのメッセージを送信します。
-
[return] — このアクションはルール・セットの実行を終了します。
ルータがメッセージを受信すると、ルール・セットの実行を開始します。ルータは、ルール・エディタにリストされている順番 (上から下) でルールとアクションを実行します。[return] アクションが実行されるか、セット内の最後のルールまたはアクションが実行されると実行が終了します。
個々のルールには複数の [when] ブロックを含めることができます。[when] ブロックのシーケンスは if..elseif 構造と同様に動作します。条件が現在のメッセージと一致する最初の [when] ブロックのアクションのみが実行されます。一連の [when] ブロックは、[otherwise] で終了できます (else 構造と似ている)。[otherwise] ブロックのアクションは、先行する [when] ブロックのいずれの条件にもメッセージが一致しない場合に実行されます。