• 検索結果がありません。

ABAP Extension module でのビジネス・オブジェクトの開発

ドキュメント内 SAP4X.PS (ページ 95-119)

この章では、ABAP Extension module のビジネス・オブジェクト開発について説明 します。また、ビジネス・オブジェクトおよび ABAP Handler を開発するためのス テップや、背景情報を提供します。本書の読者は、コネクターがビジネス・オブジ ェクトを処理する方法について、十分な知識と経験を持っている必要があります。

この章の内容は以下のとおりです。

v 77 ページの『背景情報』

v 83ページの『動的トランザクションを使用したビジネス・オブジェクトの開発』

v 90 ページの『IDoc を使用したビジネス・オブジェクトの開発』

v 100 ページの『ABAP Extension module および ABAP handler の呼び出し』

背景情報

ABAP Extension module 用のビジネス・オブジェクト開発は、アプリケーション固

有ビジネス・オブジェクト定義と、それに関連付けられた、サポートする必要のあ る各動詞用の ABAP Handler の作成から成り立っています。

アプリケーション固有のビジネス・オブジェクトを開発するには、ビジネスのニー ズをサポートするビジネス・オブジェクト定義を作成する必要があります。IBM WebSphere Business Integration Adapter for mySAP.com では、SAP アプリケーショ ン内でのビジネス・オブジェクト定義の開発過程を容易にするツールを提供しま す。ABAP Extension module のビジネス・オブジェクト定義は、 Business Object

Designer またはテキスト・エディターを使用して作成することもできますが、最初

はアダプターのビジネス・オブジェクト開発ツールを使用することを推奨します。

これらのツールでは、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 アプリケーションとの間で出し入れします。

© Copyright IBM Corp. 1997, 2003

77

注: SAP は、WebSphere Business Integration システムがサポートする動詞

(Create、Retrieve、Update、および Delete) のほかにも多くの動詞をサポートし ます。ABAP Handler は、任意の動詞をサポートするように開発できます。

ABAP Handler を開発するには、コネクターが SAP アプリケーションとの間でどの

ようにデータを出し入れするか、およびこのプロセス中にデータがどのような形式 になるかについて理解する必要があります。ビジネス・オブジェクト処理について の高度な説明は、35ページの『第 3 章 ABAP Extension module の概要』を参照し てください。ビジネス・オブジェクト処理の詳細については、63ページの『第 5 章 ABAP Extension module でのビジネス・オブジェクトの処理』を参照してくださ い。

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

SAP ネイティブ API

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

v 『ABAP SQL』

v 79ページの『呼び出しトランザクション』

v 79ページの『バッチ・データ通信 (BDC)』

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

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 (画面 を通した情報のやり取り) と呼ばれます。呼び出しトランザクションを使用するに は、次のタイプの命令を指定します。

v Initiation — 呼び出すトランザクション v Navigation — 処理する画面の順序

v Mapping — 画面上の各フィールドに入力する入力データ

Initiation は、「呼び出しトランザクション」呼び出しでは、単一値パラメーターと

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

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

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

v 画面 — プログラム名および画面番号によって識別されます。

v 入力フィールド — 通常は、それが参照するデータベース表およびフィールド名 によって識別されます。

v トランザクション内のコマンド — save、new items、details、および exit などの コマンド (1 文字〜 8 文字のコードで識別されます)。

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

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

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

6 ABAP Extension moduleでのビジネス・オブジェクトの開発

79

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

BAPI モジュールは、BAPI をサポートするために使用します。詳細については、

177ページの『第 14 章 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 つの例外が定義されています。そ の代わりに、エクスポート・パラメーターを使用することをお勧めします。

ドキュメント内 SAP4X.PS (ページ 95-119)