SAPODA は、サポートする必要のある各 RFC 対応機能に対して、ビジネス・オブジェクト定義とビジネス・オブジェクト・ハンドラーを生成するために使用します。生成されたオブジェクトは、変更せずにそのまま使用できます。ただし、機能を洗練されたものにするために、これらのオブジェクトを手動で編集できます。
オブジェクトが生成されたら、ビジネス・オブジェクト定義とそれに対応する BAPI 固有ビジネス・オブジェクト・ハンドラーを、WebSphere Business Integration システムの実行時環境に追加する必要があります。
BAPI 固有ビジネス・オブジェクト・ハンドラーのファイルは、以下のとおりです。
- BAPI Name.java
- BAPI Name.class
例えば、BAPI_SALESORDER_CREATEFROMDAT2 BAPI とユーザー指定プレフィックス sap_ が指定されると、SAPODA は以下のオブジェクトおよびファイルを生成します。
- sap_bapi_salesorder_createfromdat2 (すべての子ビジネス・オブジェクトを含むビジネス・オブジェクト定義)
- Bapi_salesorder_createfromdat2.java
- Bapi_salesorder_createfromdat2.class
- 重要:
- 生成されたビジネス・オブジェクトの名前や、その子ビジネス・オブジェクトの名前を変更することができます。それには、定義を Business Object Designer Express によってではなく、テキスト・ファイルとして編集する必要があります。ビジネス・オブジェクトの名前を変更する場合は、変更する名前に対するすべての参照も必ず変更してください。また、ビジネス・オブジェクト・ハンドラーに対して生成された .class ファイルの名前を変更する場合は、関連するビジネス・オブジェクトのアプリケーション固有情報についても、同じように変更する必要があります。
- 注:
- 開発ネーム・スペースで開発された BAPI や RFC 対応 ABAP 機能の場合、SAPODA は、ビジネス・オブジェクト定義、.java ファイル、および .class ファイルに名前を付ける際に、機能名の「/」文字を削除するか、または「_」で置き換えます。SAPODA は、名前の先頭の文字である場合に限り、「/」文字を削除します。定義名やファイル名に「/」文字が含まれていなくても、コードは指定した機能を、「/」文字を含んだ正しい名前で正確に呼び出します。また、機能名が数字で開始される場合、SAPODA は名前の前にストリング Rfm_ を付加します。
このセクションでは、ビジネス・オブジェクトや BAPI 固有ビジネス・オブジェクト・ハンドラーを開発する際に役立つ、いくつかのヒントとテクニックについて説明します。内容は以下のとおりです。
ほとんどの BAPI では、リターン・オブジェクトに同じ名前を使用します。SAPODA は、ビジネス・オブジェクト定義を生成する際に、このリターン・オブジェクトを表す子ビジネス・オブジェクトを作成します。複数のビジネス・オブジェクト定義に同じ名前の子ビジネス・オブジェクトが含まれている場合は、その子ビジネス・オブジェクトをリポジトリーに追加できるのは 1 回のみです。つまり、リポジトリー・ディレクトリーにコピーできる定義ファイルは 1 つのみです。
複数のビジネス・オブジェクトにリターン・ビジネス・オブジェクトを含めることができるようにするには、リターン・ビジネス・オブジェクトの名前を各ビジネス・オブジェクトに固有になるように変更する必要があります。
リターン・ビジネス・オブジェクトの名前を変更するには、それを含んでいる各ビジネス・オブジェクト定義で、以下の手順を実行してその定義を変更します。子ビジネス・オブジェクトの定義は、その親と同じ定義ファイル内に含まれています。
子の名前を変更するには、以下の手順を行います。
- テキスト・エディターで、トップレベル・ビジネス・オブジェクトの定義ファイルを開きます。
- BOprefix_return 子ビジネス・オブジェクトの定義を見つけます。
- 子の名前を固有な名前に変更します。例えば、テキストに番号を付加します (sap_return_2)。
- 定義内のすべての参照を、その子を新しい名前で参照するように変更します。例えば、子ビジネス・オブジェクトを表すすべての属性の Type プロパティーの値を変更します。
- 変更した定義ファイルを保存します。
- Business Object Designer Express を使用して、新しく名前を付けた子ビジネス・オブジェクトをリポジトリーにロードします。
- 注:
- 統合ブローカーが WebSphere Integration Server である場合は、repos_copy
コマンドを使用して、定義をリポジトリーにロードすることもできます。
SAPODA は、すべての BAPI インターフェース・パラメーターを解釈し、それぞれに対応するビジネス・オブジェクト属性または子ビジネス・オブジェクトを作成します。ビジネス・オブジェクト処理のパフォーマンスを向上させるには、すべての不要な属性やビジネス・オブジェクトをビジネス・オブジェクト定義から削除します。
- 注:
- SAPODA では、定義を生成する前に、すべてのオプションの属性および子ビジネス・オブジェクトをグラフィカルに削除できます。詳細については、"BAPI Module のビジネス・オブジェクトの開発"を参照してください。
ビジネス・オブジェクト処理のパフォーマンスを向上させるために、アプリケーション固有情報から、すべての不要なインポートおよびエクスポート表パラメーター値を削除することもできます。
その他の変更が必要な場合は、定義が生成された後、Business Object Designer Express を使用して手動でビジネス・オブジェクト定義を編集できます。ただし、使用されないことが確実な属性のみを削除するように十分注意してください。
SAPODA は、BAPI 機能モジュールの名前を使用して、ビジネス・オブジェクト定義の名前を生成します。ビジネス・オブジェクトの名前を変更するには、テキスト・エディターを使用します。
- 重要:
- 名前を変更する場合は、その名前に対するすべての参照も必ず変更してください。ただし、生成されたアプリケーション固有情報のパラメーター名は変更しないでください。
生成されたビジネス・オブジェクトの名前を変更するには、以下の手順を行います。
- 定義をファイルに保管します。
- テキスト・エディターを使用して、名前を短縮または変更します。
- Business Object Designer Express を使用して、新しく名前を付けた子ビジネス・オブジェクトをリポジトリーにロードします。
- 注:
- 統合ブローカーが WebSphere Integration Server である場合は、repos_copy
コマンドを使用して、定義をリポジトリーにロードすることもできます。
表パラメーターは、インポート・パラメーターとエクスポート・パラメーターの両方になることができます。表パラメーターの値のインポートまたはエクスポートが不要な場合は、アプリケーション固有情報から削除できます。
例えば、作成操作の場合、作成操作が完了した後に SAP アプリケーションから表データを戻す必要がないときには、エクスポート・パラメーター値 (例えば Etable name) を削除できます。
検索操作の場合は、インポート表パラメーターを指定する必要はありません。したがって、インポート・パラメーター値 (例えば Itable name) を削除できます。
- 注:
- 親ビジネス・オブジェクト内で子を表す属性の AppSpecificInfo や、子ビジネス・オブジェクトのビジネス・オブジェクト・レベルにある AppSpecificInfo からは、不要な値を削除する必要があります。コロン (:) を削除しないでください。
例えば、図 24 の
ETable_7 エクスポート・パラメーターを削除するには、以下の手順を行います。
- Top_Level_BusObj ビジネス・オブジェクトの Child_2 属性で、属性の AppSpecificInfo 値を次のように変更します。
ITable_7:
- Child_2 ビジネス・オブジェクトのビジネス・オブジェクト・レベルにある AppSpecificInfo で、値を次のように変更します。
ITable_7:
- 子ビジネス・オブジェクトの各属性の AppSpecificInfo で、例として Attribute_14 を使用するとすれば、値を次のように変更します。
IField_14:
