既存システムの追加ロジックを調べるとき、クラシックなカスタマEXITの定義と実装プロジェクトを分けて確認すると効率的です。入口となるテーブルはMODSAPとMODACTですが、テーブルの存在だけで『実行されている』とは判断できません。最後はSMOD・CMOD、実装コード、プロジェクトの有効化状態を確認します。
カスタマEXITの構成
SAPがあらかじめ用意した拡張(enhancement)の構成要素に、関数EXIT、画面EXIT、メニューEXITなどがあります。関数EXITでは標準プログラムのCALL CUSTOMER-FUNCTIONからEXIT_...関数が呼ばれ、顧客実装をZX...で始まるインクルードへ記述する形式が一般的です。SMODは拡張定義の確認、CMODは拡張プロジェクトへの割当と有効化に使います。
主な管理テーブル
| テーブル | 確認できる内容 | 使い方 |
|---|---|---|
| MODSAP | SAP拡張と構成要素の対応 | EXIT名や構成要素から拡張名を探す |
| MODACT | 拡張プロジェクトと拡張の割当 | 見つけた拡張がどのプロジェクトに割り当てられているか調べる |
| MODSAPT | 拡張の説明テキスト | 技術名だけでは分かりにくい用途を確認する |
項目名やキーはリリース差を考慮し、対象環境のSE11で確認してください。テーブル照会は候補の絞り込みに使い、実装の有無や動作は画面とコードで追います。
調査の進め方
- 対象トランザクション、プログラム、処理時点を特定します。必要ならデバッグで呼出箇所を調べます。
SMODやSE84で関連する拡張を探します。EXIT名が分かっている場合はMODSAPから拡張を逆引きできます。- MODACTまたは
CMODでプロジェクトへの割当と有効化を確認します。 - 構成要素のEXIT関数と
ZX...インクルードを確認し、実際の処理条件を読みます。
BAdIやプログラム固有のユーザーEXITは管理場所・呼出方法が異なります。MODSAP/MODACTに見つからないだけで拡張がないとは判断しないでください。また、CMODのテキスト拡張は項目ラベルの変更機能であり、この関数EXIT調査とは別です。
参考・関連記事
- CMODで標準項目のテキストを変更する方法:同じ画面にある別機能を区別する
- SE16Nでテーブルを照会する方法:MODSAP・MODACTの確認に使う
- ABAPデバッグの基本:EXITの呼出と条件を追う