次の方法で共有


受信バッチの逆アセンブル

受信メッセージのバッチ解除

SWIFT 逆アセンブラーは、受信バッチ (複数の SWIFT メッセージを含むファイルまたはメッセージ) を処理または逆アセンブルする受信デバッチ処理を実行できます。 同じ名前の SWIFT 逆アセンブラー構成プロパティを使用して、受信デバッチ処理を有効にします。 受信デバッチ処理を有効にすると、SWIFT 逆アセンブラーは、受信するすべてのメッセージが複数の SWIFT メッセージを含むバッチであると想定します。 バッチにはバッチ エンベロープ (バッチ ヘッダーとバッチ トレーラー) が含まれる場合と含まれていない場合があり、バッチ内の各 SWIFT メッセージにはメッセージ エンベロープ (メッセージ ヘッダーとメッセージ トレーラー) が含まれる場合と含まれていない場合があります。 これらのバッチ属性 (形式) は、次の SWIFT 逆アセンブラー構成プロパティを使用して構成できます。

  • Batch ヘッダー スキーマ

  • Batch トレーラー スキーマ

  • メッセージ ヘッダー スキーマ

  • メッセージ トレーラー スキーマ

    Note

    これらのプロパティのいずれかを "None" に設定すると、受信バッチにその特定の部分が含まれていないことが示されます。

    SWIFT 逆アセンブラーでは、すべての受信バッチに次の構造が必要です。

    バッチ ヘッダー

    メッセージ ヘッダー

    SWIFT インターチェンジ/メッセージ (SWIFT ブロック 1 から 5)

    メッセージ トレーラー

    バッチ トレーラー

    この構造内では、"メッセージ ブロック" を メッセージ ヘッダー – SWIFT インターチェンジ – メッセージ トレーラー パーツと見なすことができます。 一連の複数の "メッセージ ブロック" は、バッチ内の複数の SWIFT メッセージを構成します。 Batch ヘッダー、メッセージ ヘッダー、メッセージ トレーラー、および Batch トレーラーは省略可能ですが、繰り返し間で一貫している必要があります。

Note

メッセージ エンベロープ (メッセージ ヘッダーとメッセージ トレーラー) と SWIFT ヘッダーブロックとトレーラー ブロックを混同しないでください。 バッチのコンテキストでは、SWIFT ヘッダーブロックとトレーラー ブロックを含む SWIFT メッセージ (インターチェンジ) を包括的 (アトミック) ユニットとして表示する必要があります。 このコンテキストでは、メッセージ ヘッダーとメッセージ トレーラーは、各 SWIFT メッセージをバッチでラップするエンベロープを参照します。

この構造、そのオプション、および再現性をより正式に表現するには、バッチA4SWIFT定義する方法を検討します。

  • バッチ ヘッダーBH で表されます

  • メッセージ ヘッダーMH によって表されます

  • SWIFT インターチェンジSI によって表されます

  • メッセージ トレーラーMT によって表されます

  • バッチ トレーラーBT で表されます。

    予想されるバッチ構造を表す式は次のとおりです。

    [BH] ([MH] SI [MT])* [BT]

    角かっこ ( [ ] ) は、パーツが省略可能であることを示します。 アスタリスク (*) は、ブロックが反復可能であることを示します。 メッセージ バッチをビルドするユーザーは、() の繰り返し[MH] SI [MT]ごとにメッセージ ヘッダー (MH) とトレーラー (MT) を一貫して使用する必要があります。

    SWIFT 逆アセンブラーは、構造体の各部分がフラット ファイル スキーマに準拠しているため、上記の構造に従う受信バッチを処理できます。 ただし、省略可能なバッチ ヘッダー/トレーラーとメッセージ ヘッダー/トレーラーを使用しない場合、メッセージはこれらのスキーマに準拠しません。 その結果、連続する SWIFT メッセージのみを含むバッチでは、Batch ヘッダー スキーマ、バッチ トレーラー スキーマ、メッセージ ヘッダー スキーマ、およびメッセージ トレーラー スキーマの各プロパティが "None" に設定されます。

バッチ処理用にスキーマをカスタマイズする

バッチ ヘッダー/トレーラーとメッセージ ヘッダー/トレーラーのスキーマをカスタマイズできます。 例を次に示します。

4  
SWIFT Message # 1  
$  
SWIFT Message # 2  
$  
SWIFT Message # 3  
$  
SWIFT Message # 4  
$  

この種類のバッチを処理するには、バッチのスキーマ プロパティを次のように設定します。

  • Batch ヘッダー スキーマ プロパティは、復帰で区切られた単一の数値 (メッセージ数) を解析するフラット ファイル スキーマに設定します。

  • メッセージ トレーラー スキーマは、1 つの $ 記号と復帰を解析するフラット ファイル スキーマに設定します。

  • 残りのエンベロープ スキーマ (Batch Trailer Schema と Message Header Schema) を None に設定します。

    フラット ファイル エンベロープ スキーマの適切な組み合わせを作成して指定することで、SWIFT メッセージ バッチを処理するように SWIFT 逆アセンブラーを構成できます。 この機能は非常に柔軟です。

    SWIFT 逆アセンブラーは、途中でエラーが発生した場合でも、常にバッチ全体の処理を完了しようとします。 これにより、一度にできるだけ多くのエラーを収集して報告できます。 この "ベスト エフォート" ヒューリスティックを実行するには、SWIFT 逆アセンブラーは、新しい部分が発生したときに使用するスキーマを選択するとき、または解析エラーが発生した場合に特定の決定と想定を行う必要があります。 解析エラーの性質と場所、エンベロープ スキーマと SWIFT インターチェンジ スキーマ間のあいまいさ/類似性によっては、正しいスキーマを選択できるわけではありません。 場合によっては、適切に設計されたエンベロープ スキーマを使用して、間違ったスキーマを選択する可能性を最小限に抑えることができます。 逆アセンブラーで致命的な解析エラーが発生した場合、または逆アセンブラーが正しいスキーマを特定できない場合、逆アセンブラーは残りのデータを処理せずにバッチを失敗させます。

    受信デバッチ処理が有効になっている (True に設定されている) 場合、SWIFT 逆アセンブラーは、バッチ エンベロープ (バッチ ヘッダー スキーマとバッチ トレーラー スキーマ) とメッセージ エンベロープ (メッセージ ヘッダー スキーマとメッセージ トレーラー スキーマ) に指定されたスキーマと、バッチ内の SWIFT メッセージ (インターチェンジ) を解析するために指定されたスキーマを使用してバッチを解析します。 バッチ内の SWIFT メッセージの場合、メッセージの種類とスキーマは、(SWIFT ヘッダー スキーマを指定することで) 単一の非バッチ メッセージと同じ方法で動的に検出および読み込むことができます。 SWIFT 逆アセンブラーがスキーマ解決を実行する方法の詳細については、「 動的メッセージの種類の検出」と「スキーマ解決」を参照してください。

    SWIFT 逆アセンブラーは、受信バッチ内の各 SWIFT メッセージを個別に解析して検証します。 次のバッチ処理シーケンスが実行されます。

  1. バッチ ヘッダー スキーマを指定した場合は、バッチ ヘッダーを解析します。

  2. メッセージ ヘッダー スキーマを指定した場合は、メッセージ エンベロープ ヘッダーを解析します。

  3. SWIFT インターチェンジ (メッセージ) を解析します。

  4. XML 検証を有効にしている場合は、XML 制約に対して SWIFT メッセージを検証します。

  5. BRE 検証を有効にしている場合は、BRE ポリシー (SWIFT ネットワークと使用規則) に対して SWIFT メッセージを検証します。

  6. メッセージ トレーラー スキーマが指定されている場合は、メッセージ エンベロープ トレーラーを解析します。

  7. 逆アセンブラーでバッチ内のメッセージが見つからないまで、手順 2 から 6 を繰り返します。

  8. Batch トレーラー スキーマを指定した場合は、バッチ トレーラーを解析します。

    SWIFT 逆アセンブラーを構成して、次の SWIFT 逆アセンブラー構成プロパティを使用して解析および検証するバッチ データでさまざまな処理を行うことができます。

  • Fragmentation プロパティは、SWIFT 逆アセンブラーがバッチ内の各メッセージを個別に MessageBox データベースに発行する必要があるかどうかを決定します (つまり、上記の手順 6 が発生するたびにメッセージごとに)、または手順 1 から 8 のすべての手順を完了し、バッチ全体をネイティブ形式 (入力の正確なコピー) で発行する必要があるかどうかを判断します。 1 つのメッセージとして MessageBox データベースに送信します。 断片化を有効にし、バッチからのメッセージを個別に発行するには、断片化を True に設定します。 断片化を無効にし、バッチ全体をネイティブ形式で 1 つのメッセージとして発行するには、バッチ全体を処理した後にのみ、 断片化False に 設定します。 通常、受信バッチを解析して検証するために BizTalk Accelerator for SWIFT (A4SWIFT) のみを必要とし、受信バッチを受信したのと同じ形式で失敗または転送する必要がある場合は、[ 断片化][無効]に設定A4SWIFT。 通常、解析と検証後にバッチ内でメッセージを変換または変更するA4SWIFT、またはメッセージをバッチ内で最初に受信した順序とは異なる順序に並べ替えるA4SWIFTする場合は、[ 断片化 ] を [有効] に設定 A4SWIFTします。 また、受信バッチに異なる最終宛先を持つメッセージが含まれるシナリオでは、[ 断片化][有効] に 設定します。

  • バッチ ヘッダーの保持/バッチ トレーラーの保持プロパティは、SWIFT 逆アセンブラーがバッチ エンベロープ (ヘッダーとトレーラー) データを解析後に破棄または保持するかどうかを決定します。 [ バッチ ヘッダーの保持] または [バッチ トレーラーの保持]True に設定した場合、逆アセンブラーは対応するバッチ パーツ (解析された XML) を個別のメッセージとして MessageBox データベースに発行します。 逆アセンブラーは、マルチパート メッセージの本文部分にデータを発行します。 逆アセンブラーは、特殊なコンテキスト プロパティを昇格させ、BizTalk Serverがこれらのメッセージを元のバッチと、バッチ内の序数位置 (バッチ ヘッダーの最初の位置、バッチ トレーラーの最後の位置) に関連付けることができます。 [ バッチ ヘッダーの保持] または [バッチ トレーラーの保持]False に設定した場合、逆アセンブラーは、解析後に対応するバッチ パーツ (解析されたデータ) を破棄します。

    Note

    これらの構成プロパティは、断片化が有効になっている (断片化True に設定されている) 場合にのみ有効です。 断片化が無効になっている場合、逆アセンブラーはバッチ全体の正確なコピーをネイティブ形式で MessageBox データベースに公開するため、保持設定は無関係です (すべてが 保持されます)。

  • メッセージ ヘッダー / の保持 メッセージ トレーラーの保持 プロパティは、SWIFT 逆アセンブラーがメッセージ エンベロープ (メッセージ ヘッダーとトレーラー) を解析した後に破棄するか保持するかを決定します。 [ メッセージ ヘッダーの保持] または [メッセージ トレーラーの保持]True に設定した場合、逆アセンブラーは、対応するバッチ パーツ (解析された XML) を 、ラップする個々の SWIFT メッセージと共に MessageBox データベースに発行します。 逆アセンブラーは、マルチパート メッセージの ヘッダー 部分にメッセージ エンベロープ ヘッダーを発行します。 逆アセンブラーは、マルチパート メッセージのトレーラー部分にメッセージ エンベロープ トレーラー を発行します。 逆アセンブラーは、同じマルチパート メッセージの 本文 部分のメッセージ エンベロープに含まれる SWIFT メッセージを発行します。 逆アセンブラーは、特殊なコンテキスト プロパティを昇格させ、BizTalk Serverがこれらのメッセージを元のバッチとバッチ内の序数位置に関連付けることができます。 [ メッセージ ヘッダーの保持] または [メッセージ トレーラーの保持]False に設定すると、逆アセンブラーは解析後に対応するバッチ パーツ (解析されたデータ) を破棄します。

    Note

    これらの構成プロパティは、断片化が有効になっている (断片化True に設定されている) 場合にのみ有効です。 断片化が無効になっている場合、逆アセンブラーはバッチ全体の正確なコピーをネイティブ形式で MessageBox データベースに公開するため、保持設定は無関係です (すべてが 保持されます)。

    各構成プロパティの詳細、およびその他の使用法と構成情報については、「 SWIFT 逆アセンブラー構成プロパティ」を参照してください。 MessageBox データベースの発行とマルチパート メッセージの詳細については、「BizTalk Server ヘルプ」を参照してください。

次のステップ

バッチに関連する昇格プロパティ