Mapping ノード

Mapping ノードを使用して、1 つ以上の新規メッセージをグラフィカルに構成し、それらのメッセージにさまざまなタイプの情報を取り込み、メッセージの変換、メッセージの経路指定、またはデータベース・レコードの変更を行います。

このトピックには、以下のセクションが含まれています。

目的

Mapping ノードを使用して、以下のアクションを実行します。
  • 新しいメッセージを構築する
  • パーサー間でメッセージをコピーする
  • メッセージをある形式から別の形式に変換する
  • メッセージをルーティングする
  • データベースの内容を変更する

概説

Mapping ノードはパレットの 「変換」 ドロワーに含まれていて、 IBM App Connect Enterprise Toolkit 内では次のアイコンによって表されます。
マッピング・ ノード アイコン

Mapping ノードには、 メッセージ・マップが必要です。 メッセージ・マップ は、 Mapping ノードと同じコンテナー (アプリケーションなど) に配置することも、参照先の共有ライブラリーに配置することもできます。 複数のソリューションが同じ メッセージ・マップを使用する可能性が高い場合は、マップを共有ライブラリーに保管します。

ノードの メッセージ・マップ を作成すると、マップに入出力としてメッセージ・テーブルとデータベース・テーブルを含めることができます。 プロパティーをマップでき、オプションとしてヘッダー (IBM MQ、HTTP、および JMS のヘッダー) およびローカル環境ツリーもマップできます。

出力メッセージのコンポーネントは、入力メッセージと外部データベースからのデータの両方のエレメントに基づくマッピングを使用して定義することができます。 入力 (メッセージまたはデータベース) を出力にマッピングして、このノードに関連付けられたマッピング・ファイルに、このノードに関連付けられたマッピングを作成します。 提供されたまたはユーザー定義の関数およびプロシージャーを使用して、これらのマッピングによって作成された割り当てを変更することができます。 例えば、ストリング値をメッセージ出力フィールドに割り当てるときに、そのストリング値を英大文字に変換できます。

Mapping ノードを使用すると、メッセージ本体データ、ローカル環境ツリー、およびプロパティー・フォルダーのエレメントを変更できます。

Mapping ノードは、入力メッセージの例外リスト・ツリーを変更せずに通過します。

次のようなタイプの情報を新規メッセージに取り込むことができます。
  • 新規情報
  • 入力メッセージからの変更された情報
  • データベースから取得した情報
Mapping ノードは、マッピング・スクリプトのローカル環境のオーバーライドをサポートします。これにより、実行するマップを動的に選択できます。 Mapping ノードで設定されているマップ名の代わりに、入力メッセージで指定されているマップ名が使用されます。 オーバーライドの形式は以下のとおりです。
SET OutputLocalEnvironment.Mapping.MappingRoutine = '{brokerSchemaName}:mapName';
例:
SET OutputLocalEnvironment.Mapping.MappingRoutine = '{default}:mapperFlow_poNode';
ここで、mapperFlow_poNode.map はデフォルトのブローカー・スキーマ内にあります。
メッセージ・マップ ・ファイルを共有ライブラリーに保管する場合、オーバーライドの形式は以下のようになります。
SET OutputLocalEnvironment.Mapping.MappingRoutine='{{mbsharedlib:sharedLibraryName}brokerSchemaName}:mapName';
例:
SET OutputLocalEnvironment.Mapping.MappingRoutine='{{mbsharedlib:shlib1}default}:mapperFlow_poNode';

ターミナルおよびプロパティー

Mapping ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。 メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーは「プロパティー」ビューに表示されます。 値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。

Mapping ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理するメッセージを受け入れる入力ターミナル。
Failure 計算時に障害が検出された場合、入力メッセージが伝搬される出力ターミナル。 「警告をエラーとして扱う」を選択した場合、処理が正常に完了しても、 データベース警告メッセージが戻された場合にメッセージはノードからこのターミナルに伝搬されます。
Out マッピングの完了後にメッセージを伝搬する出力ターミナル。
以下の表では、 Mapping ノードのプロパティーについて説明します。
  • M の見出しの列では、プロパティーが必須 かどうか (デフォルトが定義されていない場合に値を入力することが必要かどうか) を示します (必須であれば、アスタリスクのマークが付きます)。
  • C の見出しの列では、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。

Mapping ノードの 「説明」 プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
ノード名 いいえ いいえ ノード・タイプ ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト。

Mapping ノードの 「基本」 プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明 mqsiapplybaroverride コマンド・プロパティー
トランザクション はい いいえ 自動 (Automatic)

ノードのトランザクション・モードです。 ノードでサポートされる値は、「自動」です。

Mapping ノードが属するメッセージ・フローは、正常に実行されるとコミットされます。つまり、マッピングで定義したアクションが実行され、メッセージはメッセージ・フローを通して続行されます。 メッセージ・フローは、失敗するとロールバックされます。 「自動」を選択した場合、データベース上の Mapping ノードのアクションをコミットまたはロールバックできるかどうかは、メッセージ・フロー全体の成功または失敗によって決まります。

 
マッピング・ルーチン はい いいえ マッピング

データベースまたはメッセージ・ツリーに対して実行されるステートメントが含まれるマッピング・ルーチンの名前とロケーション。 デフォルトでは、マッピング・ルーチンに割り当てられる名前は、次のとおりです。

{default_broker_schema}:default_map_file name with no extension
default_broker_schema はメッセージ・フロー・ファイルがあるブローカー・スキーマで、default_map_file_name_with_no_extension はメッセージ・フローの名前とマッピング・ノードを連結した名前です。 例えば、{your.broker.schema}:yourFlowName1_yourNodeName1 などです。 スペースを含む値は指定できません。

マップ・ファイルを共有ライブラリーに保管している場合、その共有ライブラリーの名前を指定します。例えば、以下のようにします。
{your.broker.schema}:yourFlowName1_yourNodeName1 in Shared Library sharedLibraryName

この入力フィールドの隣の「参照」をクリックすると、このノードがアクセスできるすべての選択可能なマッピング・ルーチンをリストしたダイアログ・ボックスが表示されます。 必要なルーチンを選択し、「OK」をクリックします。ルーチン名が、「マッピング・ルーチン」プロパティーに設定されます。 このプロパティーを動的に指定変更するいは、ローカル環境でマッピング経路を設定します。 メッセージ・マップの動的選択を参照してください。

このノードに関連するマッピング・ルーチンを処理するには、ノードをダブルクリックするか、またはノードを右クリックして「マップを開く」をクリックします。 マッピング・ルーチンが存在しない場合、「新規メッセージ・マップ」ウィザードが一部のデフォルト値が入力された状態で開きます。 マッピング・ルーチンが既に存在する場合には、グラフィカル・マッピング・エディターで開かれます。 また、 「アプリケーション開発」ビューでマッピング・ルーチンを開き、ダブルクリックしてグラフィカル・マッピング・エディターでルーチンを開くこともできます。

マッピング・ルーチンを作成した場合、それを他のマッピング・ルーチンから呼び出すことはできません。ただし、ESQL ルーチンから呼び出すことは可能です。

マッピング・ファイルの操作とその内容の定義について詳しくは、 メッセージ・マップの使用を参照してください。

 

出力メッセージの Mapping ノードで 「妥当性検査」 プロパティーを構成できます。 これらのプロパティーは、メッセージがシリアライズ対象になった場合、つまり、そのメッセージを表す論理ツリーが物理ビット・ストリーム形式に形式設定されるときに処理されます。

これらのプロパティーによって、入力メッセージの妥当性検査は行われません。 そのような妥当性検査が必要な場合には、入力ノードまたは先行する validation ノードによって妥当性検査がすでに行われていることが期待されます。 メッセージおよび検証プロパティーの検証について詳しくは、「 メッセージの検証 」および「 検証プロパティー」を参照してください。

Mapping ノードの 「妥当性検査」 プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
妥当性検査 いいえ はい なし このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」「内容と値」「内容」、および「継承」です。
失敗時の処置 いいえ いいえ 例外 このプロパティーは、妥当性検査で障害が発生した場合の動作を制御します。 「妥当性検査」が「内容」または「内容と値」に設定されている場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」「ローカル・エラー・ログ」「例外」、および「例外リスト」です。

メッセージがノードの Failure ターミナルに伝搬される場合には、妥当性検査は行われません。