パケット内のすべての IDoc が同じ IDoc タイプである場合、アダプターは IDoc パケットを 1 作業単位として処理します。
IDoc パケット内のすべての IDoc は、エンドポイントとの 1 つの XA トランザクションの一部です。
イベント処理は、イベント・リカバリー・メカニズムに関しては単一の IDoc と似ています。IDoc パケットは単一の作業単位と見なされるため、いずれか 1 つの IDoc についてエンドポイントにより登録された失敗があれば、パケット全体が失敗します。
失敗すると、IDoc パケット内のすべての IDoc を再度エンドポイントに送信する必要があります。
アダプターは、以下の手順に従い、非分割パケットの Inbound イベントを処理します。
- SAP システムがトランザクション ID をアダプターに送信すると、アダプターはイベントの状況をチェックし、以下のアクションのいずれか 1 つを実行します。
- これが新規のイベントである場合、アダプターは 0 (作成済み) という状況と EVNTID (トランザクション ID に対応する) を、イベント・リカバリー・テーブルに保管します。
- イベント状況が -1 (ロールバック) の場合、アダプターは状況を CREATED に更新します。
- イベント状況が 1 (実行済み) の場合、アダプターは成功したことを SAP システムに示します。
- SAP システムが、IDoc パケットをアダプターに送信します。アダプターはその IDoc パケットを解析して、IDoc オブジェクトの配列に変換し、それをメモリーに保管します。
- アダプターはビジネス・オブジェクトをエンドポイントに送信します。
アダプターは、トランザクションをサポートするエンドポイントと、トランザクションをサポートしないエンドポイントの両方に、オブジェクトを送達できます。
- アダプターによるイベントの処理中に例外が発生した場合、またはエンドポイントが例外を生成した場合、イベント状況は -1 (ロールバック) に更新されます。
- 例外が発生しない場合、SAP システムは以下のタスクを実行します。
- COMMIT 呼び出しをアダプターに送信し、イベント状況は 1 (実行済み) に更新されます。
- CONFIRM 呼び出しをアダプターに送信します。
次に、アダプターは 1 (実行済み) の状況のレコードを削除して、トラッキングおよび監査目的で使用可能な Common Event Infrastructure (CEI) イベントをログに記録します。