!--a11y-->
ルーチン
RfcDispatch は単一の RFC 依頼を受信し、それを実行させます。コールの構文は以下のようになります。RFC_RC SAP_API RfcDispatch(RFC_HANDLE handle);
RfcAcceptをコールした後か、 RfcReceiveまたは RfcCallReceiveから RFC_CALL が返された後に、 RfcDispatch を使用します。 RFC 依頼を発送するには、 RfcInstallFunction (または RfcWinInstallFunction )を使用してリモートファンクションも登録しておく必要があります。この機能は、
RFC コールに対応する登録済み機能を内部的に呼び出します。登録済み機能のリターンコードは、再度 RfcDispatdch によって返されます。サンプルプログラムに、
RfcDispatch の使用方法を示します。(特に、 RFC SDK に含まれているプログラム rfcexec.c )は、 RFC サーバをインプリメントします。この機能は
SAPRFC.H 内に定義されます。戻り値
:
機能パラメータ
:コメント
:RfcDispatch
の使用中、常に自動的に提供される汎用モジュールがあります。その汎用モジュールは以下のものです。

典型的な
int main(int argv, char** argv)
{
RFC_HANDLE handle;
RFC_RC rc;
handle = RfcAccept(argv);
if(handle == RFC_HANDLE_NULL)
{
... error processing
return 1;
}
rc = RfcInstallFunction(...);
if(rc != RFC_OK)
{
error processing
return 1;
}
do
{
rc = RfcDispatch(handle);
}
while(rc == RFC_OK);
RfcClose(handle);
return 0;
}

RfcDispatch
(ハンドル)が C- 機能を呼び出す場合に、機能には RfcDispatch() にわたされたハンドルとは異なるハンドルがわたされます。 RfcDispatch() にわたされたオリジナルのハンドル上で RfcGetData() を実行しようとすると誤動作します。これは、トランザクション型 RFC の内部的な構造によるものです。ファンクションコールは直接的にではなく、 librfc から間接的に行われるので、 RFC コールを実行するために独自の RFC ハンドルが内部的にわたされます。
