コンテンツフレーム起動

SAP システム内での RFC 文書を SAP ライブラリストラクチャに組み込む

どの R/3 システムでも、 CALL FUNCTION ABAP 言語の基本的な命令です ( R/2 リリース 5.0 以降 ) CALL FUNCTION は、同一システム ( R/2 または R/3 ) で機能 ( 汎用モジュール ) を実行するために使用されます。

REMOTE FUNCTION CALL (RFC) は、 CALL FUNCTION を拡張し、分散環境に対応したものです。 既存の汎用モジュールをリモートシステム ( R/2 または R/3 ) から実行するには、 RFC コールを使用します。 これを行うには、 CALL FUNCTION 命令に DESTINATION 句を追加します。 このグラフィックは添付のテキストに説明されています

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

RFC SAP システム間 (R/3 および R/2) で使用することができます。 IBM 環境の R/2 では、 DC システムとしての CICS ( リリース 5.0D 以降 ) でのみ RFC を使用することができます。 IMS 環境では、 4.1 またはそれ以上のバージョンで、かつ LU6.2 プロトコル ( MVS/APPC 経由 ) を完全にサポートしている IMS RFC を使用することができます。

OS/2 Windows Windows NT R/3 ベースの UNIX プラットフォームで RFC API を使用すると、 SAP システム ( R/3 リリース 2.1 以降、 R/2 リリース 5.0D 以降 ) とこれらのプラットフォーム上の C プログラムとの間で RFC 機能を使用することができます。 SAP システムと C プログラムのどちらでリモート機能が提供されるかどうかは、呼出元にとって特に重要ではありません。

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

注記

ディクショナリ構造はサポートされていません。

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

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

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

リリース 3.0 までは、 R/3 システムへの接続はあらかじめ定義されたアプリケーションサーバに対して確立される必要がありました。 リリース 3.0 以降は、ロードバランス方式に基づいてメッセージサーバが割り当てるアプリケーションサーバも使用できるようになりました。 これは、 R/3 システム間、および外部システムと R/3 の間のいずれにもあてはまります。

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

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

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

注記

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

 

 

 

コンテンツフレーム終了