コンテンツフレーム起動

機能の文書化 非同期リモートファンクションコールの使用 文書を SAP ライブラリストラクチャに組み込む

非同期リモートファンクションコール (aRFC) は、ユーザがそのコールの終了を待たずにダイアログのコールを続行できるという点において、トランザクション RFC と似ています。 ただし、非同期 RFC とトランザクション RFC を区別する特徴が 3 つあります。

非同期 RFC のパラメータはデータベースに記録されずに、直接サーバに送信されます。

リモートシステムとの接続が必要であるが、機能の実行結果を待たずに処理を続行したいというような場合にはいつでも、非同期リモートファンクションコールを使用することができます。 非同期 RFC を同一システムに送信することもできます。 この場合、新規セッション ( あるいはウインドウ ) が開かれ、呼出元ダイアログと呼び出されるセッションを切り替えることができます。

リモートファンクションコールを非同期に開始するには、以下の構文を使用してください。

CALL FUNCTION RemoteFunction STARTING NEW TASK taskname

Destination ...

EXPORTING...

TABLES ...

EXCEPTIONS...

注記

以下の呼出パラメータを使用することができます。

内部テーブルへの参照を受け渡します。 汎用モジュールのテーブルパラメータには値が指定されている必要があります。

呼出元のプログラムから汎用モジュールへ項目の値と項目文字列を受け渡します。 汎用モジュールでは、該当する仮パラメータがインポートパラメータとして定義されます。

RFC に関する既定の例外の使用を参照してください。

RECEIVE RESULTS FROM FUNCTION func は、非同期リモートファンクションコールの結果を受信するために、 FORM ルーチン で使用されます。 以下の受信パラメータを使用することができます。

オプション KEEPING TASK を指定すると、処理結果を受信した後で非同期接続がクローズするのを防ぐことができます。 該当するリモートコンテキスト ( ロール領域 ) は、呼出元が接続を終了するまで再利用のために維持されます。

例

トランザクションを非同期に呼び出して非モーダルウィンドウに表示します。

DATA: MSG_TEXT(80) TYPE C. “Message text

...

* Asynchronous call to transaction SM59 ->

* Create a new session

CALL FUNCTION ‘ABAP4_CALL_TRANSACTION’ STARTING NEW TASK ‘TEST’

DESTINATION ‘NONE’

EXPORTING

TCODE = ‘SM59’

EXCEPTIONS

COMMUNICATION_FAILURE = 1 MESSAGE MSG_TEXT

SYSTEM_FAILURE = 2 MESSAGE MSG_TEXT

IF SY-SUBRC NE 0.

WRITE: MSG_TEXT.

ELSE.

WRITE: ‘O.K.’

ENDIF.

詳細は以下のトピックで説明されています。

非同期 RFC の呼出要件

非同期 RFC からの結果の受信

リモートコンテキストの維持

非同期 RFC を使用した並列処理

 

 

コンテンツフレーム終了