次の方法で共有


メッセージの修復処理

既定では、BizTalk Serverは、MessageBox データベースの中断されたキューで失敗したメッセージを中断します。 このプロセスは、失敗したメッセージを成功したメッセージとは別に処理します。 ただし、この既定のメカニズムを使用すると、失敗したメッセージを取得して修復する機能は限られています。 A4SWIFTのメッセージの修復と新しい送信機能を使用すると、A4SWIFTユーザーはメッセージを修復して再送信できます。 その後、別のA4SWIFTユーザーが修復を確認し、3 番目のユーザーが修復を承認できます。

Note

このコンテキストでは、A4SWIFT ユーザーは部門の修復ワークフローでロールを実行するユーザーです。 このA4SWIFTユーザーは、プロファイル Web クライアントの [ユーザー] リンクで定義され、証明書に関連付けられます。 このA4SWIFT ユーザーは、Windows コンピューター管理ユーティリティの [A4SWIFT ユーザー] グループで定義されているように、Windows ユーザー アカウントと同じではありません。 A4SWIFT ユーザーとして機能するユーザーは、メッセージを送信するときにそのアカウントの証明書を使用できるように、Windows ユーザー アカウントを持っている必要があります。 ただし、そのユーザーは、修復者、検証者、承認者、作成者など、他のA4SWIFTユーザーとしても機能できます。 詳細については、「 メッセージの修復と新しい送信のための部門とロールの作成」を参照してください。

この修復ワークフローでは、A4SWIFTは失敗したメッセージを中断しません。 失敗したメッセージに対して追加の処理を実行し、成功したメッセージと同様にメッセージを MessageBox にドロップします。 修復オーケストレーションは、メッセージを A4SWIFT MRSR サイトにドロップします。このサイトでは、ユーザーは InfoPath フォームで自分の機能を実行できます。

メッセージの検証

メッセージの修復と新しい送信では、次の検証に失敗したメッセージが修復のために MRSR サイトに送信されます。

  • フラット ファイル パーサーによって実行される構造検証 (解析されていないメッセージ)

  • XML 検証リーダーによって実行されるデータ検証

  • ビジネス ルール エンジン (BRE) によって実行される SWIFT ネットワークと使用ルールの検証

    A4SWIFTは、SWIFT メッセージと共に移動するエラー コレクション オブジェクトで検証中に発生したエラーを収集します。 修復プロセスには、エラー情報を XML にシリアル化し、エラー部分としてメッセージに添付することが含まれます。 この処理には、メッセージが検証に失敗したことを示す昇格されたプロパティ (A4SWIFT_Failed==True) と、各検証ステージのエラー数を報告する別の昇格されたプロパティでメッセージをマークすることも含まれます。 結果のマルチパート メッセージは、次の内容で構成されます。

  • 失敗したメッセージを含む本文部分

  • エラー コレクション XML を含むエラー部分

  • エラー状態を示す昇格されたプロパティ

メッセージの修復

MRSRDepartmentPolicy 内の MRSRDepartmentRule ビジネス ルールは、失敗したメッセージを処理する部門を決定します。 メッセージ修復オーケストレーションは、部門の修復ロールに関連付けられている受信トレイにメッセージをルーティングすることで、修復ワークフローを開始します。 修復ロールを実行A4SWIFTユーザーは、InfoPath フォームでメッセージを開き、メッセージを修復してから署名して送信します。 オーケストレーションは、修復されたメッセージを修復、キーの更新、または承認の各ロールにルーティングし、ワークフローが正常に完了した後、メッセージを送信ポートにルーティングします。

検証に加えて、A4SWIFTはメッセージの署名をチェックして、次のことを確認します。

  • 修復ワークフローのユーザーが同じ部門に属している

  • 各ユーザーが 1 回だけ署名した

  • ユーザーに対応するロールのシーケンスは、その部門に対して定義されているワークフローのシーケンスと一致します

    部門の詳細については、「 メッセージの修復と新しい送信のための部門とロールの作成」を参照してください。

    A4SWIFTでは、解析されていないメッセージを修復することもできます。 ただし、A4SWIFTは、修復されていないメッセージに対して異なる処理を実行します。 詳細については、「 解析されていないメッセージの修復」を参照してください。