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