分割されて構文解析された IDoc パケットのイベント処理

分割された IDoc パケットには、複数の IDoc が含まれます。この場合、各 IDoc は単一のビジネス・オブジェクトに対応します。

アダプターは、以下の手順に従い、複数の個々の IDoc で構成される IDoc パケットの Inbound イベントを処理します。
  1. SAP システムがトランザクション ID をアダプターに送信すると、アダプターはイベントの状況をチェックし、以下のアクションのいずれか 1 つを実行します。
    • これが新規のイベントである場合、アダプターは 0 (作成済み) という状況と EVNTID (トランザクション ID に対応する) を、イベント・リカバリー・テーブルに保管します。
    • イベント状況が -1 (ロールバック) の場合、アダプターは状況を 0 (作成済み) に更新します。
    • イベント状況が 1 (実行済み) の場合、アダプターは成功したことを SAP システムに示します。
  2. SAP システムが IDoc パケットをアダプターに送信します。アダプターはその IDoc を解析して複数のビジネス・オブジェクトに変換し、メモリーに保管します。
  3. アダプターは、イベント・リカバリー・テーブルの BQTOTAL 列 (またはテーブルのフィールド) をパケット内の IDoc の数に更新します。 この数は、監査とリカバリーの目的で使用されます。
  4. アダプターは、IDoc パケットの処理中にエラーに遭遇すると、IDocPacketErrors の無視 (IgnoreIDocPacketErrors) 構成プロパティーに応じて、以下の 2 つのうちの一方の方法で対処します。
    • IDocPacketErrors の無視 (IgnoreIDocPacketErrors) プロパティーが false に設定されている場合、アダプターは、パケット内の他の IDoc の処理続行を中止し、SAP システムにエラーを報告します。
    • IDocPacketErrors の無視 (IgnoreIDocPacketErrors) プロパティーが true に設定されている場合、アダプターはエラーをログに記録し、パケット内の残りの IDoc の処理を続行します。トランザクションの状況は、3 (進行中) とマークされます。この場合、アダプター・ログに失敗した IDoc の番号が記録されているので、それを使用して個々の IDoc を個別に再サブミットする必要があります。さらに、それらのレコードをイベント・リカバリー・テーブル内で手動で保守する必要があります。
  5. SAP システムが、アダプターに COMMIT 呼び出しを送信します。
  6. アダプターは、ビジネス・オブジェクトを 1 つずつメッセージ・エンドポイントへ送信し、BQPROC プロパティーを、処理中の IDoc のシーケンス番号に更新します。アダプターは、アプリケーション・サーバーが制御する固有の XA トランザクション (2 フェーズ・コミット・トランザクション) の一部として、オブジェクトを適切なエンドポイントに配信します。
  7. エンドポイントがイベントを受け取り、トランザクションがコミットされると、アダプターは BQPROC プロパティーの数値をインクリメントします。
    注: メッセージ・エンドポイントは、XA トランザクションをサポートするように構成する必要があります。
  8. アダプターは、IDoc パケット内のすべてのビジネス・オブジェクトをメッセージ・エンドポイントに配信した後、イベント状況を 1 (実行済み) に更新します。
  9. IDoc パケットの処理が異常中断した場合、アダプターは現行シーケンス番号から IDoc の処理を再開します。IDocPacketErrors の無視 (IgnoreIDocPacketErrors) が true に設定されている場合でも、アダプターは、BQPROC プロパティーの更新を続行します。 アダプターが IDoc パケットを処理しているときにアダプターを手動で終了した場合、アダプターは処理を継続します。
  10. アダプターによるイベントの処理中に例外が発生した場合、またはエンドポイントが例外を生成した場合、イベント状況は -1 (ロールバック) に更新されます。
  11. 例外が発生しない場合、アダプターは以下のタスクを実行します。
    • COMMIT 呼び出しをアダプターに送信し、イベント状況は 1 (実行済み) に更新されます。
    • CONFIRM 呼び出しをアダプターに送信します。

    次に、アダプターは 1 (実行済み) の状況のレコードを削除して、トラッキングおよび監査目的で使用可能な Common Event Infrastructure (CEI) イベントをログに記録します。


ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
(C) Copyright IBM Japan 2006
このインフォメーション・センターでは Eclipse テクノロジー (http://www.eclipse.org) が採用されています。