Иногда случается необходимость в запуске отдельной транзакции в новом режиме, например когда необходимо отобразить доп. информацию о выделенной в ALV записи. Обычно для этих целей пишется RFC функция которая запускается в новой задаче — STARTING NEW TASK. Можно воспользоваться стандартной RFC функцией : CC_CALL_TRANSACTION_NEW_TASK.
Пример её использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
DATA : ls_params TYPE tpara, lt_params TYPE TABLE OF tpara. ls_params-paramid = 'BUK'. ls_params-partext = '0001'. APPEND ls_params TO lt_params. ls_params-paramid = 'BLN'. ls_params-partext = '00000101'. APPEND ls_params TO lt_params. ls_params-paramid = 'GJR'. ls_params-partext = '2011'. APPEND ls_params TO lt_params. CALL FUNCTION 'CC_CALL_TRANSACTION_NEW_TASK' STARTING NEW TASK 'FB03_TASK' DESTINATION 'NONE' EXPORTING transaction = 'FB03' skip_first_screen = 'X' TABLES paramtab = lt_params EXCEPTIONS communication_failure = 97 system_failure = 98 OTHERS = 99. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. |