2006年03月05日

EXITとBADI 2

4cfa780d.jpgEXITは、
 ユーザEXIT
 カスタマEXIT
に分けることができます。

今回は、この二つのEXITとBADIのそれぞれの
特徴について説明します。

ユーザEXITは、標準プログラム内のuserexitで始まる
サブルーチン内に実装するものです。
実装にはオブジェクトキーが必要となるので、
技術的にはモディフィケーションと同じです。
ユーザEXITはモジュールによって、ばらつきが大きく、
例えば、SDにはたくさんのユーザEXITがありますが、
MMにはあまりありません。

ユーザEXITでは、サブルーチンが定義されている
プログラムの内部テーブルも含むグローバル変数
すべてにアクセスができます。
したがって、かなり自由に色々なことができます。

逆に言うと自由度が高いため、データの不整合が
発生するなど問題のある実装をするリスクも高いです。
前回、ご説明したEXITの問題点が一番、発生しやすい
のがユーザEXITと言えるかも知れません。

カスタマEXITは、カスタマEXIT用の汎用モジュールが
あらかじめ標準プログラムに組み込まれており、
その汎用モジュール内のインクルードプログラムに
実装するものです。

カスタマEXITでは、あらかじめ定義してある受け渡し
パラメータにしかアクセスができません。
よって、ユーザEXITより自由度は低いですが、その分、
リスクも低いです。

BADIは、簡単に言ってしまうと、カスタマEXITの
オブジェクト指向版で、メソッド内に実装します。
OABAP(オブジェクト指向ABAP)では、使用が禁止
されているABAPの文法が幾つかあり、注意が必要です。

今後、SAPから新規にユーザEXITやカスタマEXITが
組み込まれることはなく、BADIのみになるようです。
既に実装済みのユーザEXIT、カスタマEXITが使えなくなる
ことはないかと思いますが、BADIに実装する機会が
今後増えると考えられます。

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/taka1350041/50064149
この記事へのコメント
SAP MM ですが一寸通訳と翻訳があります。僕はそんなに日本語が上手じゃないのでSAPMMの翻訳や通訳(語彙/vocabulary)の資料があったら送っていただけませんか?宜しくお願いします。
my mail id is ajith.no1@gmail.com(ajith。no1@gmail.com)
Posted by sathi at 2011年11月27日 19:05