複数パーツ・メッセージを定義してある場合、最低 1 つのメッセージが他のメッセージに組み込まれています。
外部メッセージを表す複合タイプ全体の中で、以下の方法のどれかを使って内部メッセージをモデル化できます。
- そのタイプ・プロパティーが、構成 プロパティーを Message に設定してある複合タイプに設定されているエレメント (次の例では E_outer1 という名前)
- 構成 プロパティーを Message に設定してある複合タイプ (次に例では、t_Embedded という名前)
内部メッセージを操作するために書き込む必要のある ESQL は、上記のどのモデルが使用されたかによって異なります。
例えば、次のように定義したと想定します。
- タイプ・プロパティーを t_Outer に設定してある、外部メッセージ M_outer。
- タイプ を t_Inner1 に設定してある、内部メッセージ M_inner1。
- タイプ を t_Inner2 に設定してある、内部メッセージ M_inner2。
- E_outer1 という名前の最初の子エレメントと t_Embedded という名前の複合タイプとして定義されている 2 番目の子エレメントを持つ、タイプ t_Outer。
- 構成プロパティーを Message に設定してある、タイプ t_Embedded。
- E_inner11 という名前の最初の子エレメントを持つ、タイプ t_Inner1。
- E_inner21 という名前の最初の子エレメントを持つ、タイプ t_Inner2。
- 構成プロパティーを Message に設定してある、タイプ t_outer1。
- タイプ・プロパティーを t_outer1 に設定してある、エレメント E_outer1。
E_inner11 の値を設定する場合には、次の ESQL をコーディングします。
SET OutputRoot.MRM.E_outer1.M_inner1.E_inner11 = 'FRED';
E_inner21 の値を設定する場合には、次の ESQL をコーディングします。
SET OutputRoot.MRM.M_inner2.E_inner21 = 'FRED';
メッセージ・ヘッダーを、入力メッセージから出力メッセージにコピーし、入力メッセージ・タイプにパスが入っている場合、パス中の最外部の名前だけが出力メッセージ・タイプにコピーされます。
組み込みメッセージを処理するようにメッセージ・フローを構成する場合には、MQRFH2 ヘッダー (入力メッセージに存在する場合) または入力ノードの「メッセージ・タイプ」プロパティーのいずれかに、メッセージ・タイプの名前ではなくパスを指定できます (例えば、前述のモデル化されたメッセージの場合、単に M_Outer ではなく M_Outer/M_Inner1/M_Inner2 というパスを指定できます)。
CWF または XML のいずれかの物理形式を持つように入力メッセージを指定した場合には、最終パスとして使用するため、メッセージ・タイプ接頭部は MQRFH2 または入力ノードからのメッセージ・タイプの前に連結されます (詳細は、複数パーツ・メッセージを参照してください)。MRM はパス内の最初の項目を最外部のメッセージ・タイプとして使用し、構成プロパティーを Message に設定してある複合タイプを検出しながら、徐々に内部に向け作業を進めていきます。
入力メッセージが物理形式 TDS を持つように指定した場合には、メッセージ・キーを使用する別のプロセスがインプリメントされます。これについては、TDS 形式: 複数パーツ・メッセージで説明しています。
パス連結の詳細については、メッセージ・セットのプロパティーを参照してください。