コンテンツフレーム起動

RfcDispatch 文書を SAP ライブラリストラクチャに組み込む

ルーチン 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 の使用中、常に自動的に提供される汎用モジュールがあります。その汎用モジュールは以下のものです。

例

典型的な RFC サーバは次のものになります。

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 ハンドルが内部的にわたされます。

 

 

 

コンテンツフレーム終了