手順
ALEレイヤーによって実行されるアウトバウンド処理は、データフィルタリング、 BAPI呼び出しのIDocへの変換、セグメントフィルタリング、フィールド変換、バージョン変更、およびディスパッチ制御のステップに分割できます。
データフィルタリング
分散モデルのBAPIにデータフィルタが定義されている場合、このフィルタリングはアウトバウンド汎用モジュールによって自動的に実行されます。データフィルタリングは、2つのフィルターサービスを提供します。条件を持たないインターフェイスリダクションと、条件に関連付けられたパラメーターフィルタリングです。
-
インターフェイスリダクションにより、BAPIインターフェイスによるフィールド抑制が可能になります。これは、これらのフィールドが受信側によって無視されることを意味します。これは、たとえば、特定のフィールドが上書きされないようにするために使用できます。ただし、インターフェイスがこのタイプのフィルタリングを明示的にサポートしている特定のタイプのBAPIにのみ使用できます。
-
パラメータフィルタリングを使用すると、定義された条件を満たすことができないBAPIテーブルパラメータを除外することにより、BAPIで送信するデータセットのスコープを制御できます。BAPIの2つのテーブルパラメータ間に階層的な依存関係が存在する場合は、追加のパラメータ階層を定義する必要があります。詳細については、ALEプログラミングガイドのBAPIパラメータ間の階層の定義を参照してください。
パラメータフィルタリングは条件にリンクできるため、このタイプのフィルタリング用にフィルタオブジェクトを作成する必要があります(インターフェイスの削減とは対照的です)。データフィルタリングの詳細については、「データフィルタリング」の「ALEプログラミングガイド」を参照してください。
BAPI呼び出しのIDocへの変換
データがフィルタリングされると、転送されるデータを含むIDocが、アウトバウンド汎用モジュールによってBAPIコールから登録されます。以下の点に注意してください。
-
インターフェイスの縮小中に完全なパラメータが抑制された場合、これらのパラメータはIDocに含まれません。一方、構造化パラメーターに個々のフィールドのみを含めない場合でも、パラメーター全体がIDocに含まれます。
-
パラメータフィルタリングでは、フィルタリングされたテーブル行はIDocに含まれません。
セグメントフィルタリング
IDocが作成されると、IDocセグメントを再度フィルタリングできます。このフィルタリングがBAPIに使用されることはめったにありません。
フィールド変換
セグメントフィルタリングの後に行われるフィールド変換は、たとえば、フィールド形式が送信側システムと受信側システムで異なる場合に特に関係があります。この機能は、R/2とSAPシステム間のデータ交換中にフィールドフォーマットを変換する場合に特に重要です。ただし、フィールド変換がBAPIに対して果たす役割はごくわずかであることに注意してください。
バージョン変更
異なるリリースのSAPシステム間でALEが正しく機能するようにするために、IDoc形式の変換を実行して、異なるリリースで使用されるメッセージタイプを変更することができます。
バージョンの変更が完了すると、IDocがデータベースに保存され、ディスパッチ制御が開始されて、これらのIDocのどれがすぐに送信されるかが決定されます。
ディスパッチ制御
ディスパッチ管理には、時間ベースの管理と数量管理の両方が含まれます。
-
時間ベースの制御
IDocは、すぐに送信することも、バックグラウンドで送信することもできます。この設定は、パートナープロファイルで行われます。IDocがバックグラウンドで送信される場合は、ジョブをスケジュールする必要があります。バックグラウンドジョブをスケジュールする頻度を選択できます。
-
数量管理
デフォルトでは、ALEはBAPI内のすべてのIDocの結果をデータベースにすぐに書き込みます。ただし、IDocを収集してパッケージで送信することは可能です。結果として、IDocまたはBAPIの結果は、パッケージ全体が処理されるまで更新されません。パッケージアプローチでは、ALE内の単一のLUWに複数のBAPIをバンドルすることもできます。パッケージサイズは、ALEカスタマイジングで特定のパートナーごとに設定されます。
IDocがディスパッチされる場合、ディスパッチ制御は論理レシーバシステムのパートナ契約を使用して、対応するRFC宛先を自動的に決定します。次に、IDocを通信層に渡します。
アウトバウンド処理の詳細については、ALEプログラミングガイドのアウトバウンド処理の実装を参照してください。