BADI(ビジネスアドイン)の探し方

概要

元々、SAPはユーザEXITと呼ばれるインクルードプログラムを実装することによって標準機能の拡張を実現してきたが、それに置き換わる新拡張技術としてBADI(ビジネスアドイン)を提供している。これにより、今後新たなユーザEXITを提供する事はないと言われている。 また、BADIはクラス化されている為に予め定義された引数・戻り値しか使用する事ができず苦労する事も多い。

BADIの探し方

1.トランザクションコード:SE24でクラス:CL_EXITHANDLERを照会

2.メソッド:GET_INSTANCEを選択しプログラムソースを表示

3.下記にブレイクポイント指定 14行目当たりの”CALL METHOD CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE”

4.確認したいトランザクションを別セッションで実行

4.上記メソッドの戻り値:EXIT_NAMEに返される値が使用されているBADIの定義名にあたる。  ※共通的なBADIも実行されるので、関係のなさそうな名称であればスルーしてください。

例えば、品目マスタの変更(トランザクションコード:MM02)で表示→保存と実行した場合は以下のBADIが実行されている事がわかる。 BADI_MATERIAL_OD GOS_SRV_SELECT BADI_LAYER BADI_MATERIAL_OD ECM_EXIT BADI_GTIN_VARIANT BADI_MATERIAL_CHECK BADI_SCREEN_LOGIC_RT W_RETAILSYSTEM_IDENT BADI_MATN1

これらで品目に関係がありそうなのはBADI_MATERIAL_OD、BADI_MATERIAL_CHECK、BADI_MATN1だろうと推測できる為、 その中で要件が実現可能なメソッドが存在するかを確認していけば良い。 またBADIの定義はトランザクションコード:SE18で確認する事ができ、BADIの実装を行いたい場合は トランザクションコード:SE19にてBADIの定義を継承して拡張登録する事ができる。 また、実装後の変更でクラス名が判っていればトランザクションコード:SE24から直接変更する事も可能だ。

関連トランザクションコードまとめ

SE24: クラス/インタフェース SE18: ビジネスアドイン(定義) SE19: ビジネスアドイン(実装)

原文地址:https://www.cnblogs.com/yjyongil/p/11155169.html