背景情報

ABAP Extension Module 用のビジネス・オブジェクト開発は、アプリケーション固有ビジネス・オブジェクト定義と、それに関連付けられた、サポートする必要のある各動詞用の ABAP Handler の作成から成り立っています。

アプリケーション固有のビジネス・オブジェクトを開発するには、ビジネスのニーズをサポートするビジネス・オブジェクト定義を作成する必要があります。Adapter for mySAP.com (R/3 V.4.x) では、SAP アプリケーション内でのビジネス・オブジェクト定義の開発過程を容易にするツールを提供します。ABAP Extension Module のビジネス・オブジェクト定義は、 Business Object Designer Express またはテキスト・エディターを使用して作成することもできますが、最初はアダプターのビジネス・オブジェクト開発ツールを使用することを推奨します。これらのツールでは、SAP アプリケーションのネイティブ定義をテンプレートとして使用します。

開発する各アプリケーション固有のビジネス・オブジェクト定義は、アダプター提供の ABAP Handler を使用するか、またはカスタム ABAP Handler を開発してサポートする必要があります。ABAP Handler は、SAP アプリケーション・データベースとの間でデータを出し入れする機構です。

注:
アプリケーション固有のビジネス・オブジェクトおよび ABAP Handler は、お互いの整合性に依拠して SAP アプリケーションとの間でデータを受け渡しします。このため、ビジネス・オブジェクト定義を変更すると、ABAP Handler も変更する必要があります。

コネクター用の ABAP Handler は ABAP 機能モジュールとして実装されています。ABAP Handler は、ビジネス・オブジェクト・ルーター /CWLD/RFC_DO_VERB_NEXTGEN からのビジネス・オブジェクト要求を実行するために共同して動作する、1 つ以上の機能モジュールです。ABAP Handler は、ビジネス・オブジェクト・データを SAP アプリケーションとの間で出し入れします。

注:
SAP は、WebSphere Business Integration システムがサポートする動詞 (Create、Retrieve、Update、および Delete) のほかにも多くの動詞をサポートします。ABAP Handler は、任意の動詞をサポートするように開発できます。

ABAP Handler を開発するには、コネクターが SAP アプリケーションとの間でどのようにデータを出し入れするか、およびこのプロセス中にデータがどのような形式になるかについて理解する必要があります。ビジネス・オブジェクト処理についての高度な説明は、ABAP Extension Module の概要を参照してください。ビジネス・オブジェクト処理の詳細については、ABAP Extension Module でのビジネス・オブジェクトの処理を参照してください。

注:
ビジネス・オブジェクトを開発する際には、そのオブジェクトを SAP R/3 アプリケーションにあるコネクターの表の /CWLD/OBJECTS に追加する必要があります。追加しないと、オブジェクトをカスタマイズ (例えばオブジェクトをイベント分配用にセットアップする場合) する際にアクセスできなくなります。

SAP ネイティブ API

アダプターの提供する ABAP Handler は、SAP ネイティブ API を使用することで、SAP アプリケーションとの間でデータを出し入れできます。WebSphere Business Integration システムには、以下のネイティブ API が実装されています。

ABAP SQL

ABAP SQL は、SQL の SAP 所有バージョンです。これはデータベースおよびプラットフォームに非依存なため、どのような SQL コードを記述しても、SAP がサポートするデータベースとプラットフォームの任意の組み合わせの上で実行できます。ABAP SQL は SQL のほかのバージョンと同様の構文を持っており、update、 insert、modify、select、delete などの基本的なデータベース表コマンドをすべてサポートします。ABAP SQL とその使用方法、構文、および機能についての完全な説明は、SAP の資料を参照してください。

ABAP SQL を使用すると、ABAP Handler は作成、更新、および削除操作のために、ビジネス・オブジェクト・データを持つ SAP データベース表を変更できます。ABAP の SELECT ステートメントの where 文節内のビジネス・オブジェクト・データをキーとして使用することもできます。

注:
WebSphere Business Integration システムでは、データベースの整合性を破壊する可能性があるため、ABAP SQL を使用して SAP 表を変更することはありません。コネクターでは、ABAP SQL はデータを検索する場合、およびアダプター提供のデータベース表を変更する場合にのみ使用されます。

呼び出しトランザクション

呼び出しトランザクションは、SAP システムにデータを入力するための SAP 提供の機能です。呼び出しトランザクションは、トランザクション時にオンライン・ユーザーに対して表示されるのと同じ画面を使用することで、データが SAP のデータ・モデルに準拠することを保証します。この処理は、一般に screen scraping (画面を通した情報のやり取り) と呼ばれます。呼び出しトランザクションを使用するには、次のタイプの命令を指定します。

Initiation は、「呼び出しトランザクション」呼び出しでは、単一値パラメーターとして渡されます。Navigation および Mapping 命令は、表に特定の形式で同時に渡されます。この形式は、任意の SAP トランザクションについて呼び出しトランザクションを呼び出すために使用できます。この形式では、これらの命令は BDC データ、BDC 表、または BDC セッションと呼ばれます。

バッチ・データ通信 (BDC)

バッチ・データ通信 (Batch Data Communication、BDC) は、ユーザー介入なしにトランザクションを実行するために SAP が従うことのできる命令セットです。これらの命令は、トランザクションの画面が処理される順序や、どの画面のどのフィールドにデータを取り込むかを指示します。オンライン・ユーザーに対して公開される SAP トランザクションのすべての要素は、BDC で使用できる識別情報を持っています。それらの要素を次に示します。

画面の BDC 識別情報を取得するには、画面上の任意のフィールドにカーソルを置きます。F1 キーを押してヘルプを表示します。次に F9 キーを押すと、技術情報が表示されます。プログラム名および画面番号は、「Screen Data」の下にリストされています。

入力フィールドの BDC 識別情報を取得するには、画面上でデータを入力する各フィールドにカーソルを置きます。F1 キーを押してヘルプを表示します。次に F9 キーを押すと、技術情報が表示されます。「Field Description for Batch Input」というボックスが存在する場合は、「Screen Field」フィールドの情報を使用します。このボックスが存在しない場合は、「Field Data」ボックスの「Table Name」と「Field Name」の情報をハイフンで連結します。

コマンドの BDC 識別情報を取得するには、メニューでそのコマンドを強調表示し、F1 キーを押してヘルプを表示します。「Function」フィールドの値を使用します。

ビジネス・アプリケーション・プログラミング・インターフェース (BAPI)

BAPI Module は、BAPI をサポートするために使用します。詳細については、BAPI Module の概要を参照してください。

IBM WebSphere 機能モジュール・インターフェース

すべての ABAP Handler は、同じ機能モジュール・インターフェースを実装する必要があります。この機能モジュール・インターフェースは、ビジネス・オブジェクト・ルーター /CWLD/RFC_DO_VERB_NEXTGEN が ABAP Handler との間でビジネス・オブジェクト・データを受け渡しできることを保証します。インターフェースは次のとおりです。

*"*"Local interface: 
 *"  IMPORTING 
 *"        VALUE(PROC_FUNC_1) LIKE  RS38L-NAME OPTIONAL 
 *"        VALUE(PROC_FUNC_2) LIKE  RS38L-NAME OPTIONAL 
 *"        VALUE(OBJECT_NAME) LIKE  /CWLD/LOG_HEADER-OBJ_NAME OPTIONAL 
 *"        VALUE(OBJECT_VERB) LIKE /CWLD/WIZ_IN-OBJ_VERB OPTIONAL 
 *"        VALUE(ARCHIVE) OPTIONAL 
 *"        VALUE(TEXT) LIKE  T100-TEXT OPTIONAL 
 *"  EXPORTING
 *"        VALUE(RETURN_TEXT) LIKE /CWLD/LOG_HEADER-OBJ_KEY 
 *"        VALUE(RFCRC) LIKE /CWLD/RFCRC_STRU-RFCRC 
 *"  TABLES 
 *"        RFC_STRUCTURE STRUCTURE /CWLD/OBJ_STRU 
 *"  EXCEPTIONS 
 *"        NOT_FOUND 
 *"        ERROR_PROCESSING 
 

インターフェースのインポート・セクションでは、ABAP Handler 名、ビジネス・オブジェクト名、およびビジネス・オブジェクトなどの値を通知できます。

インターフェースのエクスポート・セクションは、ABAP Handler の処理の結果を通知するために使用します。戻りコードである RFCRC パラメーターは、コネクターが戻すコードを判別するために使用される単一フィールドです。可能な値は次のとおりです。

RC = 0 (正常、VALCHANGE)

RC = 1 (失敗、FAIL)

RC = 21 (正常、SUCCESS)

RETURN_TEXT パラメーターは 120 文字のフリー・テキスト・フィールドで、コネクターによって書き込まれたり、また戻り状況記述子にエラー・メッセージとして記録されたりします。ABAP Handler がこのパラメーターの値を提供しない場合は、 /CWLD/RFC_DO_VERB_NEXTGEN が戻りコードに応じてデフォルトのテキストを提供します。

注:
インターフェースの例外セクションでは、2 つの例外が定義されています。その代わりに、エクスポート・パラメーターを使用することをお勧めします。

IBM WebSphere ABAP Handler API

アダプターは、SAP 用の WebSphere ビジネス・オブジェクトのための ABAP Handler 開発に役立ついくつかの API を提供しています。これらの API は、任意のタイプの追加ビジネス・オブジェクトをサポートするためにメタデータのみを必要とするため、「汎用の」ABAP Handler として開発されています。アダプターは、以下の ABAP Handler API を提供します。

アダプターでは、これらの API をサポートする一連のツールを提供しています。この 3 つの ABAP Handler API のツールは、すべて IBM CrossWorlds Station にあります (トランザクション /n/CWLD/HOME)。アダプターは SAPODA も提供しています。詳細については、付録 C, SAPODA を使用したビジネス・オブジェクト定義の生成を参照してください。

以下のセクションでは、アダプター提供の API について説明し、IBM CrossWorlds Station ツールと SAPODA を使用してこれらに対応するビジネス・オブジェクトを開発するためのステップを示します。

重要:
IBM CrossWorlds Station ツールを使用して、ビジネス・オブジェクト定義または ABAP Handler を生成するためには、SAP システムに英語でログオンする必要があります。CrossWorlds Station ログは英語でのみ、使用可能です。また、SAPODA 用として SAP システムに英語でログオンする必要があります。

ビジネス・オブジェクト属性のプロパティー

ビジネス・オブジェクト・アーキテクチャーでは、属性のためのさまざまなプロパティーを定義しています。このセクションでは、これらのプロパティーのいくつかをコネクターが解釈する方法と、ビジネス・オブジェクトを変更する際にこれらのプロパティーを設定する方法について説明します。 表 13 に、ABAP Extension Module のビジネス・オブジェクト属性プロパティーをリストしています。


表 13. ABAP Extension Module のビジネス・オブジェクト属性プロパティー
プロパティー名 説明
Name 各ビジネス・オブジェクト属性は、固有の名前を持つ必要があります。
Type 値は String です。
MaxLength このプロパティーは使用されていません。
IsKey ビジネス・オブジェクトの最初の単純な属性は、キー属性として設定されます。すべてのキー属性は String タイプである必要があります。子オブジェクトをキー属性として設定することはサポートされていません。
IsForeignKey このプロパティーは使用されていません。
IsRequired このプロパティーは、属性が値を含んでいる必要があるかどうかを指定します。
AppSpecificInfo このプロパティーの値は、そのビジネス・オブジェクトをどの ABAP Handler がサポートするかによって異なります。アダプターでは、この値を自動的に設定するビジネス・オブジェクト生成ツールを提供しています。生成された値を変更すると、ビジネス・オブジェクトは正しく処理されなくなる場合があります。
DefaultValue このプロパティーは、実行時値がない場合にこの属性に割り当てる値を指定します。

アダプター開発ツール

アダプターでは、SAP アプリケーション内から WebSphere ビジネス・オブジェクト定義ファイルを生成できる、ビジネス・オブジェクト開発ツールを提供しています。このビジネス・オブジェクト定義ファイルは、それを生成した SAP ビジネス・プロセスおよび API に直接対応します。

注:
統合ブローカーが IBM WebSphere Business Integration Server Express である場合は、最後のビジネス・オブジェクト定義ファイルの先頭にバージョンが含まれていることを確認してください。WebSphere InterChange Server Express の初期のバージョンでは、バージョン・テキストが、製品ディレクトリーの下の ¥repository¥ReposVersion.txt ファイル内に置かれていることが必要とされます。定義に、すべての必須ビジネス・オブジェクトおよび属性 (ObjectEventID 属性を含む) が含まれていることも確認してください。

IBM CrossWorlds Station では、以下の開発ツールを使用できます。

重要:
IBM CrossWorlds Station を使用して、ビジネス・オブジェクト定義または ABAP Handler を生成するためには、SAP システムに英語でログオンする必要があります。CrossWorlds Station ログは英語でのみ、使用可能です。また、SAPODA 用として SAP システムに英語でログオンする必要があります。

注:
必要な SAP トランザクションを 1 ステップずつたどっていくことで、階層型またはフラットなビジネス・オブジェクトの定義を作成する、Advanced Outbound Wizard の使用方法の詳細については、ビジネス・オブジェクトの生成: Advanced Outbound Wizardを参照してください。

Inbound wizard

Inbound Wizard ツールを使用すると、必要な機能をサポートする SAP トランザクションを 1 ステップずつたどっていく際のアクションを記録することにより、ビジネス・オブジェクトおよびその処理に必要なメタデータを定義することが可能です。ABAP コードを記述したり、ビジネス・オブジェクトの基礎となっているデータベース・スキーマについて知っておく必要はありません。

Inbound Wizard は、SAP トランザクションでのユーザーのアクションを記録および解釈することで、動的トランザクション表のデータを生成します。このウィザードは、フラットな (非階層型の) ビジネス・オブジェクトの定義をサポートします。つまり、子ビジネス・オブジェクトを含んだビジネス・オブジェクトはサポートされません。Inbound Wizard は、静的コードを必要とする、より複雑なオブジェクトを開発するためのコード生成プログラムとして利用できます。

注:
動的トランザクション表でエントリーを追加したり、変更することにより、手動で新しいビジネス・オブジェクトを開発したり、既存のビジネス・オブジェクトを変更することができます。

ビジネス・オブジェクト要求に対応するビジネス・オブジェクトの開発の詳細については、動的トランザクションを使用したビジネス・オブジェクトの開発を参照してください。

Object Definition Generator を使用したビジネス・オブジェクト定義の開発

Object Definition Generator を使用すると、IDoc、または動的トランザクション表のメタデータに基づいて、WebSphere ビジネス・オブジェクト定義を作成できます。作成したビジネス・オブジェクト定義ファイルでは、IDoc の関係および構造が維持されます。IDoc Handler は、これらの IDoc から発展したビジネス・オブジェクトを使用します。このため、この生成プログラムで、ビジネス・オブジェクト定義を生成する際にオブジェクト固有の IDoc Handler 機能モジュールを追加できます。

ビジネス・オブジェクト定義が生成されたら、属性名を変更し、必要なすべての機能がその定義でサポートされていることを確認します。

注:
このツールは、主に IDoc に基づいたビジネス・オブジェクト生成に使用されますが、動的トランザクションにも使用できます。

Object Definition Generator を使用したビジネス・オブジェクトの開発の詳細については、IDoc を使用したビジネス・オブジェクトの開発を参照してください。

SAPODA を使用したビジネス・オブジェクト定義の開発

SAPODA を使用すると、IDoc、または動的検索と動的トランザクションが使用する表に基づいて、WebSphere ビジネス・オブジェクト定義を作成することができます。 SAPODA を使用したビジネス・オブジェクトの開発の詳細については、付録 C, SAPODA を使用したビジネス・オブジェクト定義の生成を参照してください。

Copyright IBM Corp. 2004