SWIFT サンプルの実行
このトピックでは、テスト・メッセージを SWIFT メッセージ・フローに入れる方法を説明します。
入力メッセージ
SWIFT サンプルには、次に示す 4 個のテスト・メッセージが含まれています。
- 103_1001.enqueue
- 103_1002.enqueue
- 103_1003.enqueue
- 103_missing_SW20.enqueue
これら 4 つの入力メッセージは、すべて MT103 Single Customer Credit Transfer メッセージです。
最初の 3 個の入力メッセージは有効なものです。
4 番目の入力メッセージは、SW20 フィールドが欠落しており、無効なメッセージです。
サンプルの実行
サンプルを実行するには、入力キューにメッセージを入れ、出力キューからメッセージを取得することが必要です。
以下の指示に従ってください。
- 入力メッセージのいずれかを SWIFT_TO_XML_IN キューに入れます。
SWIFT_TO_XML_IN キューにメッセージを入れると、最初のメッセージ・フロー (VALIDATINGSWIFT2XML.msgflow と呼ばれる) の SWIFT_TO_XML_IN MQInput ノードによりそのメッセージが解析され、メッセージ・セットと照らし合わせて検証されます。
- そのメッセージが有効な SWIFT メッセージなら、それは Compute ノードに渡されます。このノードは、SWIFT メッセージを XML メッセージに変換します。
次に Compute ノードは、そのメッセージを SWIFT_TO_XML_OUT MQOutput ノードに渡します。そこでメッセージは SWIFT_TO_XML_OUT キューに入れられます。
- メッセージが有効な SWIFT メッセージでないなら、そのメッセージは SWIFT_FAIL ノードに渡され、それによって SWIFT_FAIL キューに入れられます。
- SWIFT_TO_XML_OUT キューから変換後のメッセージを取り出し、それを保管します。
メッセージは XML フォーマットになっています。
- 保管されたメッセージを XML_TO_SWIFT_IN キューに入れます。
メッセージを XML_TO_SWIFT_IN キューに入れると、第 2 のメッセージ・フロー (VALIDATINGXML2SWIFT.msgflow と呼ばれる) の XML_TO_SWIFT_IN MQInput ノードによりそのメッセージが解析され、メッセージ・セットと照らし合わせて検証されます。
- そのメッセージが有効な XML メッセージなら、それは Compute ノードに渡されます。このノードは、XML メッセージを SWIFT メッセージに変換します。
次に Compute ノードは、そのメッセージを XML_TO_SWIFT_OUT MQOutput ノードに渡します。そこでメッセージは XML_TO_SWIFT_OUT キューに入れられます。
- メッセージが有効な XML メッセージでないなら、そのメッセージは SWIFT_FAIL ノードに渡され、それによって SWIFT_FAIL キューに入れられます。
- メッセージを XML_TO_SWIFT_OUT キューから取り出します。
これでメッセージは SWIFT メッセージになりました。
SWIFT_TO XML_OUT または XML_TO_SWIFT_OUT キューにメッセージがない
場合は、問題の診断を参照してください。
メッセージはまだ入力キューにあるのか、SWIFT_FAIL キュー上か、またはいずれかのシステム・キューにある可能性があります。
103_missing_SW20.txt メッセージ
103_missing_SW20.txt メッセージを最初のメッセージ・フローに入れると、SWIFT_TO_XML_IN MQInput ノードでの検証に失敗します。
メッセージに SW20 フィールドが欠落しているため、MQInput ノードはエラーを出します。
Windows イベント・ビューアーのアプリケーション・ログでエラーを表示することができます。
エラー・テキストは次のようなものです。
メッセージ検証に失敗しました。完成しているとみなされている 1 つのエレメントが、minOccurs 制約を満たしていません。
論理ツリー上のエレメント SW20 のインスタンスは 0 個ですが、インデックス 1 のその親タイプ/エレメント MT103 の
中で、minOccurs 制約が 1 として定義または限定されています。
minOccurs 制約を調整し、下方修正してからブローカーに再デプロイするか、またはメッセージ自体の中のエレメントの
インスタンス数を増やしてください。
業界標準の形式
サンプルのホームに戻る