SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

Enhancing the BAPI by Including Additional Customer Database Tables

使用する

得意先拡張の概念により、得意先はBAPIで自分で定義したテーブルを処理することができます。

実装に関する考慮事項

お客様がこのタイプの拡張を実装できるようにするには、少なくとも次の予防措置をBAPIに実装する必要があります。

  1. BAPIインターフェースで拡張パラメーターを作成する

    BAPIインタフェースの拡張パラメータ問題のBAPIの要件に応じて、BAPI汎用モジュールのインタフェースには、データインポート用の1つの拡張パラメータ( ExtensionIn)および/またはデータエクスポート用の1つの拡張パラメータ( ExtensionOut )が含まれている必要があります。

  2. ビジネスアドイン(BadIs)

    この場合も、各BAPI汎用モジュールには、アプリケーションによって提供される出口に加えて、最大2つの追加BAdIが含まれている必要があります。

得意先は、これらのBAdIでデータ検証またはその他の処理を実行することができます。BAPIインターフェイスとBAdIの拡張パラメータは必須です。対照的に、新しい顧客テーブルからのデータが拡張コンテナに渡される、または拡張コンテナから取得される順序は、完全に顧客次第です。結果として、BAPIテーブル拡張の使用は、上記のタイプの拡張に絶対に必要なわけではありません。ただし、拡張コンテナをより確実に入力および評価できるため、新しいテーブルのヘルプ構造を定義することをお勧めします。

以下の例では、BAPI TravelAgency.CreateFromDataを使用して、このタイプの拡張に関与するコンポーネントを示しています。この例では、顧客はBAPIの基礎となるSAPテーブルに加えて、独自のテーブルYSTRAVELAGを作成し、このテーブルを使用してオブジェクトTravelAgencyの追加データを保存します。

定義された顧客テーブル

得意先テーブルYSTRAVELAGの構造は次のとおりです。

対応するヘルプ構造

拡張パラメータの入力と分析を簡素化するために、各顧客テーブルには、BAPIで考慮される対応する顧客テーブルのフィールドを含むデータ構造が必要です。その過程で、次の点に注意してください。

  • このデータ構造の個々のフィールドは、customerテーブルの対応するフィールドと同じ名前とデータ型である必要があります。

  • 特に、データ構造には、データレコードの一意の識別を可能にするために、顧客テーブルのすべてのキーフィールドが含まれている必要があります。

  • データ構造の名前は、データベーステーブルへの一意の割り当てを可能にするために、命名規則<namespace>BAPI_<table_name>に従う必要があります。

次の図は、この例でヘルプ構造YBAPI_YSTRAVELAGがどのように表示されるかを示しています。

拡張パラメータとBAPI

上記のように、BAPIインタフェースの2つの拡張パラメータ( ExtensionInおよびExtensionOut)を使用して、拡張機能をBAPI汎用モジュールに渡すか、汎用モジュールから呼び出し元プログラムにコンテナ形式で転送します。

BAPIテーブル拡張を使用した拡張とは対照的に、この場合、拡張コンテナにデータを配置するためのガイドラインはありません。

ヘルプ構造が上記の形式で使用されている場合、これらのコンテナのデータ構造は、顧客フィールドの追加で説明されている構造と同じです(1つの例外を除く)。唯一の違いは、構造BAPIPAREXの項目STRUCTUREが、BAPIテーブル拡張の名前ではなく、対応するヘルプ構造の名前を渡すことです。

上記の例を続けると、ヘルプ構造YBAPI_YSTRAVELAGが使用された場合、拡張コンテナーは次のようになります。

最初のデータレコードの値「BOEING747」と「LUFTHANSA」は、YBAPI_YSTRAVELAGで指定された顧客テーブルYSTRAVELAGのフィールドに書き込まれます。値が挿入されるテーブル行は、キー「4711」で識別されます。

インポートコンテナからのデータのチェックとさらなる処理、およびエクスポートコンテナの入力は、その後、BAPI開発者によって提供されたBAdIで行われます。

タイトルとURLをコピーしました