用STARTING NEW TASK 方式调用函数ABAP4_CALL_TRANSACTION,会打开一个新的窗口(session)运行tcode。
<img class="alignnone size-full wp-image-3252" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-00-48.png" alt="2017-02-28_18-00-48" width="730" height="304" />函数ABAP4_CALL_TRANSACTION本质上是封装了CALL TRANSACTION
<img class="alignnone size-full wp-image-3255" src="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-04-12.png" alt="2017-02-28_18-04-12" width="759" height="397" srcset="http://www.baidusap.com/wp-content/uploads/2017-02-28_18-04-12.png 759w, http://www.baidusap.com/wp-content/uploads/2017-02-28_18-04-12-740x387.png 740w" sizes="(max-width: 759px) 100vw, 759px" />代码:
REPORT ztest_open_tcode. CALL FUNCTION 'ABAP4_CALL_TRANSACTION' STARTING NEW TASK 'NEW_SESSION' EXPORTING tcode = 'SE38' * SKIP_SCREEN = ' ' * MODE_VAL = 'A' * UPDATE_VAL = 'A' * IMPORTING * SUBRC = * TABLES * USING_TAB = * SPAGPA_TAB = * MESS_TAB = EXCEPTIONS call_transaction_denied = 1 tcode_invalid = 2 OTHERS = 3. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF.