RFC Server Module の動作方法

RFC Server Module は、init()terminate()pollForEvents()、および process() の各メソッドを実装します。

このセクションで説明する内容は次のとおりです。

初期化と終了

init() メソッドは、SAP Gateway へのハンドルを開く構成可能な数のリスナー・スレッドを作成するメイン・スレッドを作成します。コネクターは、初期化に失敗すると terminate() メソッドを使用して終了します。コネクターは、SAP Gateway への接続を切断することで終了します。

初期化プロセス中に、RFC Server Module は指定された Program ID を使用して SAP Gateway に登録します。この Program ID は、RfcProgramID コネクター構成プロパティーを使用して設定し、 SAP アプリケーション内の TCP/IP ポートとしてセットアップする必要があります。TCP/IP ポートのセットアップの詳細については、"RFC Server Module の SAP gateway への登録"を参照してください。

ビジネス・オブジェクトの処理

RFC Server Module の WebSphere ビジネス・オブジェクトのすべての処理は、 SAP アプリケーションの RFC 対応機能によって開始されます。RFC Server Module では、 1 つの RFC Server 固有ビジネス・オブジェクト・ハンドラーは 1 つの RFC 対応機能だけをサポートするため、SAP アプリケーションでサポートされる機能ごとに、関連付けられた RFC Server 固有ビジネス・オブジェクト・ハンドラーが必要になります。さらに、それぞれの RFC Server 固有ビジネス・オブジェクト・ハンドラーについて、関連付けられたビジネス・オブジェクトが必要になります。

図 26 に、RFC Server Module のビジネス・オブジェクト処理を示します。

図 26. ビジネス・オブジェクトの処理


RFC Server Module のビジネス・オブジェクト処理は、以下の方法で実行されます。

  1. リスナー・スレッドは、サブスクライブされたイベントを SAP Gateway から選出し、対応する RFC 対応機能の名前を RFC Server 固有ビジネス・オブジェクト・ハンドラーと突き合わせます。
  2. リスナー・スレッドは、SAP Gateway での RFC イベントからのデータに基づいて適切な RFC Server 固有ビジネス・オブジェクト・ハンドラーのインスタンスを生成した後、対応するビジネス・オブジェクトのインスタンスを生成します。
  3. RFC Server 固有ビジネス・オブジェクト・ハンドラーは、SAP Gateway で RFC インターフェース・データを検索し、SAP 用の WebSphere ビジネス・オブジェクトに取り込みます。
  4. RFC Server 固有ビジネス・オブジェクト・ハンドラーは、ビジネス・オブジェクトを統合ブローカーに渡します。RFC Server Module では、SAP が同期呼び出しを行うため、RFC Server Module は SynchronousRequestQueue および SynchronousResponseQueue をメッセージ・ブローカーとの通信に使用します。
  5. ビジネス・オブジェクト・ハンドラーは、統合ブローカーから戻されたビジネス・オブジェクトを受け取り、RFC インターフェースに変換して、SAP Gateway に戻します。

RFC Server Module は SAP Gateway を使用して、イベントを処理する順序やイベントの状況を保守します。リスナー・スレッドは同期呼び出しを行うため、イベントが SAP Gateway に戻された場合にのみ、そのイベントは正常に処理されたと見なされます。

注:
RFC 対応モジュールが Return Structure または Return Table を持つ場合、コネクターはメッセージ・タイプ A (打ち切り) および E (エラー) の有無を調べ、イベントが正常に処理されたかどうかを判別します。メッセージ・タイプ A または E は、イベントの処理が失敗したことを示します。RFC 対応機能モジュールに Return Structure または Return Table がない場合は、独自のエラー処理を実装する必要があります。 Return Structure または Return Table にあるエラー・メッセージ (1つまたは複数) が、リターン状況記述子の中に返されます。

RFC 対応機能のサポート

開発環境 Connector for mySAP.com では、RFC 対応機能に基づいたビジネス・オブジェクト定義を生成するためのユーティリティー、SAPODA が提供されています。 SAPODA は、RFC 対応機能のインターフェースを解釈し、そのインターフェース・パラメーターをビジネス・オブジェクト属性にマップし、各属性のアプリケーション固有情報を追加します。

各ビジネス・オブジェクト定義に対して、関連する RFC Server 固有ビジネス・オブジェクト・ハンドラーを生成する必要があります。これは、対応するビジネス・オブジェクトを呼び出します。ビジネス・オブジェクトと RFC Server 固有ビジネス・オブジェクト・ハンドラーの開発の詳細については、"RFC Server Module のビジネス・オブジェクトの開発"を参照してください。

注:
一部の RFC 対応機能は、WebSphere ビジネス・オブジェクトの単純属性に対応する単一フィールド・パラメーターを持ちません。コネクターは、すべてのトップレベル・ビジネス・オブジェクトが、キー属性として使用される単純属性を持つことを要求します。そのため、単一フィールド・パラメーターを持たない RFC 対応機能からビジネス・オブジェクトおよびビジネス・オブジェクト・ハンドラーを生成すると、SAPODA はトップレベルのビジネス・オブジェクトに Dummy_key という名前のキー属性を作成し、それにキー属性としてマークを付け、dummy_key をこの属性のアプリケーション固有情報として追加します。Dummy_key は、コネクターにキー属性を提供して、ビジネス・オブジェクトを処理できるようにします。ただしコネクターは、アプリケーション・データを変更する際には Dummy_key 属性の値を無視します。

イベントの起動

RFC Server Module 用のイベントを起動するには、リモート関数呼び出しで RFC 宛先を指定する必要があります。リモート関数呼び出しは、プログラマチックに実行するか、トランザクション SE37 を使用して実行することができます。プログラマチックに実行する場合は、宛先を指定する CALL FUNCTION コマンドのバリエーションを使用する必要があります。宛先に指定する値は、 RFC Server Module を登録するために作成した値です。詳しくは、『RFC Server Module の SAP gateway への登録』を参照してください。トランザクション SE37 を使用して、RFC ターゲット・システムを RFC 宛先を一致させる必要があります。RFC Server Module 用の RFC 宛先の作成と登録の詳細については、『RFC Server Module の SAP gateway への登録』を参照してください。

Copyright IBM Corp. 2004