2025.05.26

SAP RFC ( Remote Function Call )

SAP RFC ( Remote Function Call ) は、SAPシステムにおける通信用のインタフェースとなります。
SAPシステム ⇔ SAPシステム間、SAPシステム ⇔ 非SAPシステム間の通信で使用され、通信先のリモートシステムの機能 ( 汎用モジュールなど ) を呼び出します。
RFCはCPI-CをベースとしたSAP固有プロトコルとなります。

■ RFCの種類

RFCには以下の種類が存在します。
・同期RFC ( sRFC )
・非同期RFC ( aRFC )
・トランザクションRFC ( tRFC )
・キューRFC ( qRFC )
・バックグラウンドRFC ( bgRFC )

同期RFC ( sRFC )

有効な状態にあるシステムの間でのみ同期通信を行うRFC。RFCの初期バージョン。
送信側システムからの送信 ( 呼出し ) 時点で受信側システムが有効な状態になっており、呼出しを受け入れ、必要に応じて処理を行うことが前提となる。

非同期RFC ( aRFC )

ユーザがコールの完了を待たずに送信側システムへの呼出ダイアログを実行できるRFC。
送信側システムからaRFCを開始時点で受信側システムが有効な状態になっている必要がある。またaRFCを使用すると受信側システムと双方向の対話が可能となる。

トランザクションRFC ( tRFC )

aRFCと違い、完全な非同期通信のRFC。送信側システムからの送信時点で、受信側システムが有効な状態になっている必要はない。受信側システムが有効な状態ではない場合は、この呼出しはローカルキューに残ります。
tRFCでは、受信側システムで呼び出された機能は1回のみ実行される。

キューRFC ( qRFC )

複数の作業論理単位 ( LUW ) がアプリケーションで指定されている順序で処理されるようにするtRFCの拡張版のRFC。
送信キュー / 受信キュー を使用してtRFCを直列で処理することができる。

qRFCでのRFC通信では、送信側システムの送信キューのみ使用するシナリオと、受信側システムの受信キューも使用するシナリオがある。
送信側システムの送信キューのみ使用するシナリオでは、送信キューを使用してデータを整流化して受信側システムに送信する。送信前に送信キューでデータが整列されているため、正しい順序で1回のみ送信されることが保証される。
受信側システムの受信キューも使用するシナリオでは、送信側/受信側でそれぞれキューを使用するため、通信の順序が維持される。受信キューの処理は受信スケジューラで処理される。また受信スケジューラは並列処理が可能となる。

バックグラウンドRFC ( bgRFC )

qRFCのデータ転送時のパフォーマンスを向上させるためのRFC。
バックグラウンドRFCを使用するにはデータの転送方向に対して有効化する必要がある。

■ RFC宛先

RFCインタフェースを使用して通信するためには、「 RFC宛先 」 と呼ばれる定義を作成する必要があります。
RFC宛先には、接続タイプ、呼び出すプログラム、対象システムなどの接続パラメータが定義されており、送信元システムは、このRFC宛先を使用して受信側システムの機能を呼び出します。
RFC宛先はABAPシステムではトランザクションコード SM59 から登録することができます。
RFC宛先の接続タイプには、以下の種類が存在します。

RECRUIT

エンジニアが主役となり、未来を明るく照らしていく100年企業へ。

採用情報へ