SAPには多種多様なカスタマイズ設定が提供されていますが、
それでも対応できない場合の手段としてユーザが任意にSAPを拡張できるようになっています。
標準処理の間に独自の処理を挟むイメージです。
(標準処理を直接変更する場合はモディフィケーションと呼びます)
SAP標準でユーザ独自のロジックを埋め込むための穴が用意されており、
その穴にロジックを書くことで、SAP標準の動きを拡張できます。
■拡張の種類
拡張の種類は以下になります。
どの拡張においてもやり方やロジックの挟み方が違うのみで、
「SAP標準処理内のユーザが処理を挟むように用意された場所に独自処理を実装する」
という点は変わりません。
| 拡張の種類 | 例 | 関連トランザクション | メモ |
|---|---|---|---|
| BAdI | 入出庫/発注等 | SE18/SE19 | BAdIの定義と実装を行う。実装を行う際はBAdI用のZクラスを作成することになるため、最初にセッティングした後はZクラスを編集していく。その場合SE24からアクセス可能。 |
| カスタマExit | 入出庫/発注等 | SMOD/CMOD | 拡張プロジェクトを作成し、用意された拡張ポイントにロジックを実装する。実態は汎用モジュールのため、一度拡張を定義した後はその汎用モジュールを編集していく。その場合SE37からアクセス可能。 |
| UserExit | 受注/出荷/請求等 | SE38 | MV45AFZZ(受注伝票UserExit用インクルード)などのプログラムにあらかじめ用意されたFORM内に処理を書いていく。 当然ながらSE38からアクセス可能。 |
| OpenFI | 会計伝票 | GGB0/GBB1 | 会計伝票転記時の様々なタイミングに対して拡張を実装することが可能。標準でのチェック/代入作成機能のほかに、汎用モジュールを指定することもでき、汎用モジュールを指定した際にはロジックを記載できる。 |
| 拡張ソースコードプラグイン | 請求等 | SE37/SE38 | 標準のエンハンスメントポイントに対して独自のロジックを実装することが可能。 |
※実はSE84の拡張フォルダから大体見れます

