函數使用六:ABAP4_CALL_TRANSACTION


此函數是在程序中調用一個事物代碼,跳轉或者執行事物代碼的程序。

參數說明:

Import

TCODE                            執行的事物代碼

SKIP_SCREEN                  跳轉事務代碼的初始屏幕,只在跳轉時用

MODE_VAL                      BDC時使用,對應 默認A:前台,顯示屏幕    E:遇到錯誤停止並顯示    N:后台模式      

UPDATE_VAL                   BDC時使用,對應 默認A:異步   S:同步     L:本地模式,LOCAL UPDATE

Export

SUBRC                            SY-SUBRC     返回值

Table

USING_TAB                      DBC DATA TABLE   如果調用BDC事務,BDC DATA的內容通過此表傳值

SPAGPA_TAB                    Parameter   一般做跳轉的參數設置 SET PARAMETER ID

MESS_TAB                       Message Table BDC 返回消息內表

 

EX.

"
REPORT ZABAP4_CALL_TRANSACTION.
"事務界面跳轉
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'SE11'
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2
    OTHERS                  = 3.
IF SY-SUBRC <> 0.
ENDIF.

"功能跳轉
DATA:GT_RFC_SPAGPA TYPE TABLE OF RFC_SPAGPA,
     GW_RFC_SPAGPA LIKE LINE OF GT_RFC_SPAGPA.
GW_RFC_SPAGPA-PARID = 'AUN'.
GW_RFC_SPAGPA-PARVAL = '10000140'.
APPEND GW_RFC_SPAGPA TO GT_RFC_SPAGPA.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'VA03'
    SKIP_SCREEN             = 'X' "SKIP FIRST SCREEN
  TABLES
    SPAGPA_TAB              = GT_RFC_SPAGPA
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2
    OTHERS                  = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

"BDC
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
DATA:MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0102'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'VBAK-VBELN'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'VBAK-VBELN'
                              '10000141'.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'VA03'
    MODE_VAL                = 'A'
    UPDATE_VAL              = 'S'
  TABLES
    USING_TAB               = BDCDATA
    MESS_TAB                = MESSTAB
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2.



*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  CLEAR BDCDATA.
  BDCDATA-FNAM = FNAM.
  BDCDATA-FVAL = FVAL.
  APPEND BDCDATA.
ENDFORM.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM