コンテンツフレーム起動

機能の文書化 非同期 RFC からの結果の受信 文書を SAP ライブラリストラクチャに組み込む

非同期に呼び出した機能から結果を受け取るには、以下の構文を使用してください。

CALL FUNCTION RemoteFunction

STARTING NEW TASK Task

PERFORMING RETURN_FORM ON END OF TASK.

呼び出された機能が終了すると、呼出元のプログラム ( AT USER-COMMAND など ) 内の次のダイアログステップにより、結果をチェックする FORM ルーチンに制御が移ります。 この FORM ルーチンは特別な構文で構成されているので、 FORM ルーチンを呼び出すときにはタスクの名称を参照するパラメータ USING を指定する必要があります。

Client System

CALL FUNCTION ‘TRAVEL_CREATE_FLIGHT’

STARTING NEW TASK ‘FLIGHT’

DESTINATION ‘S11’

PERFORMING RETURN_FLIGHT ON END OF TASK.

...

FORM RETURN_FLIGHT USING TASKNAME.

RECEIVE RESULTS FROM FUNCTION ‘TRAVEL_CREATE_FLIGHT’

IMPORTING FLIGHTID = SFLIGHT-ID

EXCEPTIONS SYSTEM_FAILURE MESSAGE SYSTEM_MSG.

SET USER-COMMAND ‘OKCD’.

ENDFORM.

注記

キーワード RECEIVE は、汎用モジュールコール CALL FUNCTION func STARTING NEW TASK taskname でのみ使用されます。 汎用モジュールが結果を戻さない場合、この部分を定義する必要はありません。

注記

RECEIVE は、 R/3 リリース 3.0 以降の新しいキーワードです。 そのため、パートナシステムであるクライアント、サーバの双方がリリース 3.0 R/3 システムでなければなりません。

RECEIVE の追加情報については、 ABAP エディタのオンラインヘルプを参照してください。

SET USER-COMMAND ' OKCD ' 命令には、ユーザが汎用モジュールをコマンド項目に入力して ENTER を押した場合と同様の効果があります。つまり、一覧とカーソルの現在の位置が考慮されます。

注記

コールバックはサポートされていません。

注意

SET USER-COMMAND ' OKCD ' 命令により REFRESH SCREEN コマンドが置換されます。今後 REFRESH SCREEN は更新されなくなるため、 REFRESH SCREEN を使用しないでください

例

DATA: INFO LIKE RFCSI,

* Result of RFC_SYSTEM_INFO function

MSG(80) VALUE SPACE.

* Exception handling

CALL FUNCTION ‘RFC_SYSTEM_INFO’

STARTING NEW TASK ‘INFO’

PERFORMING RETURN_INFO ON END OF TASK

EXCEPTIONS

COMMUNICATION_FAILURE = 1 MESSAGE MSG

COMMUNICATION_FAILURE = 2.MESSAGE MSG.

IF SY-SUBRC = 0.

WRITE: ‘Wait for reply’.

ELSE.

WRITE MSG

ENDIF.

...

AT USER-COMMAND.

* Return from FORM routine RETURN_INFO via SET USER-COMMAND

IF SY-UCOMM = ‘OKCD’.

IF MSG = SPACE.

WRITE: ‘Destination =‘, INFO-RFCDEST.

ELSE.

WRITE MSG.

ENDIF.

ENDIF.

...

FORM RETURN_INFO USING TASKNAME.

RECEIVE RESULTS FROM FUNCTION ‘RFC_SYSTEM_INFO’

IMPORTING RFCSI_EXPORT = INFO

EXCEPTIONS

COMMUNICATION_FAILURE = 1 MESSAGE MSG

SYSTEM_FAILURE = 2 MESSAGE MSG.

SET USER-COMMAND ‘OKCD’. “Set OK-code

ENDFORM.

 

 

コンテンツフレーム終了