メッセージ ID を使用した組み込みメッセージの識別

ここでは、メッセージ ID を使用して組み込みメッセージを識別する方法を説明します。 メッセージ ID を使用して組み込みメッセージを識別する方法は、 メッセージ・キーを使用する方法に置き換わる手法です。

組み込みメッセージを識別するためのメッセージ ID 手法は、 複数パーツ・メッセージが下記の図 1 に示すように形式である場合に役立ちます。

図 1. 複数パーツ・メッセージの構造複数パーツ・メッセージの構造

この例で、「メッセージ・ヘッダー」および「メッセージ・トレーラー」は、メッセージ本体の封筒の役割を果たします。 これらの構造は通常は固定されていますが、「メッセージ本体」はさまざまな異なる構造で定義できます。

組み込みメッセージのプレースホルダーは、複合タイプまたはメッセージ本体エレメントのグループの「構成」プロパティーを「メッセージ」に設定することによって作成されます。 これにより、組み込みメッセージを外部メッセージ内のこの位置に追加して、複数パーツ・メッセージを作成できます。

メッセージ ID 手法を使用してこのような複数パーツ・メッセージを構文解析するときは、 それ以前にメッセージ ID エレメントを使用してメッセージ・ヘッダー内で組み込みメッセージを識別する必要があります。 これはモデル内で組み込みメッセージの前に置かれるストリング・エレメント (または属性) であり、 その「値の解釈方法」プロパティーは「メッセージ ID」に設定されています。

複数パーツ・メッセージがメッセージ・フローへの入力である場合、 メッセージ ID エレメントの値は、ビット・ストリーム内にある次の組み込みメッセージ の「名前」または「メッセージ別名」の どちらかと対応する値であることが必要です。これにより、MRM パーサーはモデル内の組み込みメッセージを正しく識別できます。

メッセージ ID エレメントの値がメッセージの「名前」と一致しない場合は、「メッセージ別名」プロパティーを使用してこの値を指定する必要があります。 MRM パーサーは、最初に「名前」での突き合わせを試行して、 それが失敗した場合に「メッセージ別名」での突き合わせを試行します。

MRM パーサーがメッセージ ID エレメントを検出すると、 その値は現行メッセージ内に直接含まれるすべての組み込みメッセージに適用されます。 これは組み込みメッセージ内にある組み込みメッセージには適用されません。 すべての組み込みメッセージは、直接の親メッセージ内にあるメッセージ ID エレメントから ID を指定される必要があります。

2 番目のメッセージ ID エレメントが現行メッセージ内に検出された場合、 その値はそれまで保持されていた値をオーバーライドします。 これにより、さまざまな対等の組み込みメッセージが 1 つのメッセージ内に存在できます。

メッセージ ID は、メッセージ・パスよりも優先されます。 両方が指定されている場合、メッセージ ID が使用されます。 示された複数パーツ・メッセージに対して、これらの手法を 1 つだけ使用してください。

さまざまなメッセージ・セットに定義された組み込みメッセージ

デフォルトでは、 組み込みメッセージは現行メッセージと同じメッセージ・セット内に定義されていると想定されます。 これは、メッセージ ID と良く似た方法で機能するメッセージ・セット ID を使用してオーバーライドできます。

異なるメッセージ・セット内に定義される組み込みメッセージは、それ以前に、 メッセージ内でそのメッセージ・セットがメッセージ・セット ID エレメントを使用して識別されている必要があります。 これはモデル内で組み込みメッセージの前に置かれるストリング・エレメント (または属性) であり、 その「値の解釈方法」プロパティー は「メッセージ・セット ID」に設定されています。

複数パーツ・メッセージがメッセージ・フローへの入力である場合、 メッセージ・セット ID エレメントの値は、ビット・ストリーム内にある次の組み込みメッセージを定義するメッセージ・セットの「ID」「名前」、 または「メッセージ・セット別名」のいずれかと対応する値であることが必要です。これにより、MRM パーサーは使用するメッセージ・セットを正しく識別できます。

メッセージ・セット ID エレメントの値がメッセージ・セットの「ID」または「名前」と一致しない場合は、「メッセージ・セット別名」プロパティーを使用してこの値を指定する必要があります。 MRM パーサーは、最初に「ID」、 次に「名前」、そして最後に「メッセージ・セット別名」での突き合わせを試行します。

MRM パーサーがメッセージ・セット ID エレメントを検出すると、 その値は現行メッセージ内に含まれるすべての組み込みメッセージに適用されます。 これはまた、組み込みメッセージにメッセージ・セット ID エレメントも含まれていない限り、 組み込みメッセージ内にある組み込みメッセージにも適用されます。

2 番目のメッセージ・セット ID エレメントが現行メッセージ内に検出された場合、 その値はそれまで保持されていた値をオーバーライドします。 これにより、対等の組み込みメッセージはさまざまなメッセージ・セット内に存在できます。

X12 メッセージの以下の例では、メッセージ ID およびメッセージ・セット ID の使用方法を示します。 行 0002 の GS セグメントにある 004010X092 を含むフィールドは、 メッセージ・セット ID を「メッセージ・セット別名」として保持します。 ST セグメントの行 0003 にある 207 は、 「メッセージ別名」として保持されたメッセージ ID です。 組み込みメッセージは、行 0004 から行 0015 まで (これらの行も含む) です。

注: 各行の先頭にある行番号とスペースは、説明のためのものであり、実際のメッセージには存在しません。
0001 ISA*00* *00* *30*12-3456789 *ZZ
*9876543-21 *000104*1820*U*00401*000000001*0*T*:!
0002 GS*HS*HOSP CLAIM*PAYER ADJDEPT*20000104*1820*1*X*004010X092!
0003 ST*270*1234!
0004 BHT*0022*13*10001234*19990501*1319!
0005 HL*1**20*1!
0006 NM1*PR*2*ABCCOMPANY*****PI*842610001!
0007 HL*2*1*21*1!
0008 NM1*1P*2*BONE AND JOINT CINIC*****SV*2000035!REF*N7*234899!
0009 N3*55*HIGH STREET!
0010 N4*SEATTLE*WA*98123!
0011 HL*3*2*22*0!TRN*1*93175-12547*9877281234!
0012 NM1*IL*1*SMITH*ROBERT*B***MI*11122333301!
0013 REF*1L*599119!
0014 DMG*D8*19430519*M!
0015 DTP*472*RD8*19990501-19990515!EQ*30**FAM!SE*17*1234!
0016 GE*1*1!IEA*1*000000001!

物理形式についての考慮事項

メッセージ ID およびメッセージ・セット ID はどちらも、すべての物理形式に適用可能です。 バージョン 6.0 以前の TDS 物理形式のバージョンには、 メッセージ ID と類似の機能の、メッセージ・キーによる組み込みメッセージ識別が含まれていました。 メッセージ・キーは推奨されなくなり、メッセージ ID に置き換えられています。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ad00761_