BAPI Module の動作方法

BAPI Module は、 init()terminate()pollForEvents()、および doVerbFor() の各メソッドを実装します。ただし、BAPI Module は要求操作のみをサポートするため、pollForEvents() メソッドは使用されません。

初期化と終了

init() メソッドは、SAP Gateway を経由した SAP R/3 アプリケーションとの RFC 接続を開きます。コネクターは、初期化に失敗すると terminate() メソッドを使用して終了します。コネクターは、SAP Gateway への接続を切断することで終了します。

ビジネス・オブジェクトの処理

すべてのビジネス・オブジェクト要求は、Vision コネクター・フレームワークのビジネス・オブジェクト・ハンドラー内にある doVerbFor() メソッドの単一の実装で開始されます。 Vision ビジネス・オブジェクト・ハンドラーは、BAPI Module と統合ブローカーとの間で受け渡しされるすべてのビジネス・オブジェクトを処理します。BAPI Module 内では、1 つの BAPI 固有ビジネス・オブジェクト・ハンドラーは 1 つの BAPI のみをサポートするため、SAP R/3 アプリケーションでサポートされるそれぞれの BAPI について、関連付けられた BAPI 固有ビジネス・オブジェクト・ハンドラーが必要になります。

Vision ビジネス・オブジェクト・ハンドラーは、ビジネス・オブジェクトの動詞のアプリケーション固有情報を使用して、適切な BAPI 固有ビジネス・オブジェクト・ハンドラーを呼び出します。 ビジネス・オブジェクト・ハンドラーが適切な BAPI に対して RFC 呼び出しを実行できるように、BAPI のパラメーター名や形式は、BAPI 固有ビジネス・オブジェクト・ハンドラーにハードコーディングされています。

図 22 に、BAPI Module のビジネス・オブジェクト処理を示します。

図 22. BAPI Module ビジネス・オブジェクト処理


BAPI 固有ビジネス・オブジェクト・ハンドラーは、Vision ビジネス・オブジェクト・ハンドラーによって呼び出されると、以下の動作を実行します。

  1. Vision ビジネス・オブジェクト・ハンドラーから SAP 用の WebSphere ビジネス・オブジェクトを受け取ります。
  2. BAPI パラメーターにビジネス・オブジェクト・データを取り込みます。
  3. RFC を使用して BAPI 呼び出しを実行し、SAP R/3 アプリケーションに BAPI パラメーターを渡します。ビジネス・オブジェクト・ハンドラーは、ビジネス・オブジェクト・データが戻されるまで待機します。
  4. ビジネス・オブジェクト・データ (BAPI パラメーター) を受け取ります。
  5. BAPI パラメーターを、WebSphere ビジネス・オブジェクト・データに変換します。
  6. ビジネス・オブジェクトを Vision ビジネス・オブジェクト・ハンドラーに渡し、最終的には統合ブローカーに渡します。

注:
BAPI Module が Return Structure または Return Table を持つ場合、コネクターはメッセージ・タイプ A (打ち切り) および E (エラー) の有無を調べ、サービス呼び出し要求が正しく処理されたかどうかを判別します。メッセージ・タイプ A または E は、サービス呼び出し要求の処理が失敗したことを示します。BAPI に Return Structure または Return Table がない場合は、独自のエラー処理を実装する必要があります。 Return Structure または Return Table にあるエラー・メッセージ (1つまたは複数) が、リターン状況記述子の中に返されます。

BAPI のサポート

ビジネス・オブジェクト生成ユーティリティーの SAPODA は、BAPI をサポートするビジネス・オブジェクト定義を生成します。 SAPODA は、BAPI のインターフェースを解釈し、そのパラメーターをビジネス・オブジェクト属性にマップし、各属性のアプリケーション固有情報を追加します。

また、各 WebSphere ビジネス・オブジェクト定義に対して、関連する BAPI 固有ビジネス・オブジェクト・ハンドラーを SAPODA を使用して生成する必要があります。ビジネス・オブジェクトと BAPI 固有ビジネス・オブジェクト・ハンドラーの開発の詳細については、"BAPI Module のビジネス・オブジェクトの開発"を参照してください。

注:
一部の BAPI は、WebSphere ビジネス・オブジェクトの単純属性に対応する単一フィールド・パラメーターを持ちません。コネクターは、すべてのトップレベル・ビジネス・オブジェクトが、キー属性として使用される単純属性を持つことを要求します。そのため、単一フィールド・パラメーターを持たない BAPI からビジネス・オブジェクトおよびビジネス・オブジェクト・ハンドラーを生成すると、SAPODA はトップレベル・ビジネス・オブジェクトに Dummy_key という名前のキー属性を作成し、それにキー属性としてマークを付け、dummy_key をこの属性のアプリケーション固有情報として追加します。Dummy_key は、コネクターにキー属性を提供して、ビジネス・オブジェクトを処理できるようにします。ただしコネクターは、アプリケーション・データを変更する際には Dummy_key 属性の値を無視します。

Copyright IBM Corp. 2004