コンテンツエリア開始

SAP システムでのRFC Locate the document in its SAP Library structure

すべての SAP システムでは、CALL FUNCTION ABAP 言語にとって不可分の部分を表しています。この命令は、同じシステムで機能 (汎用モジュール) を実行します。

REMOTE FUNCTION CALL (RFC) は、CALL FUNCTION を拡張し、分散環境に対応したものです。既存の汎用モジュールは、リモートシステムからの RFC を使用して実行することができます。これを行うには、CALL FUNCTION 命令にDESTINATION 句を追加します。

This graphic is explained in the accompanying text

宛先パラメータはテーブル RFCDES 内のエントリを表します (テーブル RFCDES はトランザクション SM59 で定義されます)。このエントリには、宛先システムへの接続やログインに必要なパラメータがすべて含まれています。 

RFC は、2 つの SAP システム間で使用することができます。

RFC ライブラリ (RFC API) を使用すると、異なるプラットフォームにある SAP システムと C プログラムの間でも、RFC の機能を使用することができます。SAP システムと C プログラムのどちらでリモート機能が提供されるかどうかは、呼出元にとって特に重要ではありません。

RFC を使用すれば、ABAP プログラマは独自の通信ルーチンを作成する必要がなくなります。RFC コールを実行すると、RFC インタフェースは以下の処理を行います。

     すべてのパラメータデータを、リモートシステムで必要な形式に変換します。これには、必要となるハードウェア依存の変換 (整数、浮動小数点 など) や文字列変換が含まれます。ABAP データ型はすべてサポートされています。

     リモートシステムとの通信には、通信ルーチンを呼び出す必要があります。

     通信エラーを処理し、指定された場合呼は呼出元に通知します (呼出元は、CALL FUNCTION 命令のパラメータ EXCEPTIONS を使用して通知を要求します)

RFC インタフェースは実際には ABAP プログラマからは見えないようになっています。リモートプログラム呼び出し処理は、CALL FUNCTION命令内に組み込まれます。リモートとして登録されている汎用モジュールの場合、呼び出される処理は自動的に生成されます (RFCスタブ形式で)。このスタブは呼出元のプログラムと汎用モジュールの間のインタフェースの役割を果たします。

RFC クライアント RFC サーバは区別されます。RFC クライアントは、RFC サーバの機能を実行するために、リモートファンクションコールを呼び出すインスタンスです。以降の説明では、リモートで実行できる機能を RFC 機能RFC API を介して提供される機能を RFC コールと呼びます。

RFC クライアントによって呼び出され、リモート RFC サーバシステム内で利用できる RFC 機能は、すべてトランザクションとして処理されます。つまり、RFC サーバシステム内で最初の RFC 機能の実行が終了すると、完全なコンテキスト (RFC サーバプログラムまたは汎用モジュールのメインプログラム内でグローバルに定義されているすべての変数) がそれ以降の RFC 機能で使用できるようになります。RFC 接続がクローズするのは、以下の場合だけです。

     呼出元のABAP プログラムのコンテキストが終了した場合

     外部プログラム内の明示的な RfcAbort または RfcClose による場合

アプリケーションサーバは、直接割り当てることも、負荷分散の一環としてメッセージサーバを通じて割り当てることもできます。これは、2 つの SAP システム間の RFC にも、SAP システムと外部システムの間の RFC にも適用されます。

RFC 機能を、RFC サーバや RFC サーバシステムに依存せず、信頼性があり安全なものにするために、SAP システムにはトランザクション RFC (tRFC) が用意されています。これにより、呼び出される汎用モジュールがRFC サーバシステム内で1度だけ実行されることが保証されます。

トランザクションRFC コールでは、RFC 機能に属するデータを、まずRFC クライアントシステム内のSAP データベース上に一時的に格納する必要があります。処理の終了時には、これを呼出元の ABAP プログラムにレポートバックしなければなりません。その他はすべて SAP システム内の tRFC コンポーネントにより処理されます。

外部システム上でデータベースを常に使用できるわけではないため、RFC API にもとづくクライアントプログラムまたはサーバプログラムが管理機能を使用して各汎用モジュールが一度だけ実行されることを保証するように、tRFC インタフェースへのリンクを実装します。

Note

SAP システムでは、他の SAP システムを認証済システムとして定義することができます。認証済システムから呼出先システム (認証システム) へは、パスワードを使用せずにアクセスすることができます。
追加情報については、認証済システムを参照してください。

 

RFC 宛先

 

 

コンテンツエリア終了