一、什麼是ABAPSubmit?
ABAPSubmit是SAP系統中的一個函數模塊,它允許在一個程序中提交並執行另一個可執行程序,從而將不同的程序鏈接起來實現流程式控制制、數據傳輸等。
使用ABAPSubmit的好處是可以方便地間接調用和控制其他程序的執行,同時可以在不改變原始程序的代碼邏輯和性能的前提下,實現程序間的有序協作。
二、ABAPSubmit的使用方法
ABAPSubmit有兩種使用方法:通過函數模塊調用和通過ABAP語句調用。下面我們將詳細介紹這兩種方法的具體實現。
1. 通過函數模塊調用
ABAPSubmit的函數模塊為」SUBMIT」(或「JOB_SUBMIT」),所以我們可以使用這個函數模塊參數組合來調用可執行程序:
DATA: v_jobname TYPE tbtcjob-jobname,
v_appl TYPE progname.
v_appl = 'ZPROGRAM'.
v_jobname = 'MY_JOB_NAME'.
CALL FUNCTION 'SUBMIT'
EXPORTING
report = v_appl
variant = ' '
jobname = v_jobname
listen = 'X'
hold_until = 'X'
EXCEPTIONS
others = 1.
在執行FUNCION ‘SUBMIT’函數時,需要填寫以下參數:
- report:代表需要ABAPSubmit調用的可執行程序名稱。這個參數是必須的
- variant:代表傳給ABAPSubmit調用的選項或變數,具體應根據被執行程序要求設置。這個參數是可選的
- jobname:代表被執行程序的作業名稱,也可以理解為當前執行的任務名稱,具體命名應該根據規範設定。這個參數是必須的
- listen:代表當前任務是否是可用的(按照順序或按照模式執行)。
- hold_until:代表當前任務是否在調度器中等待。此選項特別適用於長時間運行的過程,因為如果任務被放置到後台隊列中,則應該輪詢它以獲得新的運行時間。
2. 通過ABAP語句調用
另一種使用ABAPSubmit的方法,是在ABAP語句中直接調用。同樣,我們需要填寫以下參數:
SUBMIT zprogram AND RETURN.
SUBMIT zprogram VIA JOB v_jobname NUMBER v_jobnumber.
在使用ABAP語句調用ABAPSubmit時,需要注意以下幾點:
- 通過AND RETURN調用:用於提交並執行預定程序,並在其中進行一些處理之後可直接返回程序
- VIA JOB和NUMBER:用於在調用程序中提交和執行另一個程序,需向ABAPSubmit提供作業名稱和編號
- 在語句後面添加參數表示調用程序時要傳遞給程序使用的變數或選項
三、ABAPSubmit的優點
ABAPSubmit的最大優點是可以協調不同程序之間的運行順序,從而實現複雜邏輯,實現程序之間的數據傳遞和共享。同時,它的使用也能夠簡化代碼的編寫,提高程序的整體效率和可維護性,從而為企業提供更廣闊的發展空間。
四、ABAPSubmit的實例演示
下面我們演示一下使用ABAPSubmit函數模塊的具體操作。假設我們現在有一個ZPROGRAM1,它在執行的時候還需要運行另一個程序ZPROGRAM2。
1、ZPROGRAM1程序代碼
REPORT ZPROGRAM1.
DATA: name TYPE string.
PARAMETERS: p_name TYPE string.
name = p_name.
WRITE: name, / 'Running ZPROGRAM1'.
SUBMIT ZPROGRAM2 USING name.
WRITE: / 'End of ZPROGRAM1'.
COMMIT WORK.
此程序使用了一個變數name作為參數調用ZPROGRAM2程序,並在程序中間提交並執行了ZPROGRAM2。執行時輸出如下:
2、ZPROGRAM2程序代碼
REPORT ZPROGRAM2.
DATA: name TYPE string.
START-OF-SELECTION.
WRITE: / 'Running ZPROGRAM2'.
IF sy-subrc = 0.
WRITE: / 'With parameter: ', name.
ENDIF.
此程序接收一個name參數並輸出執行結果。在ZPROGRAM1調用之後運行並輸出如下:
五、總結
ABAPSubmit是SAP系統中連接不同程序或ABAP語句的重要工具,可以允許在一個程序中提交並執行另一個可執行程序。本文從ABAPSubmit的定義、使用方法、優點及實例等方面進行了詳細闡述,相信對於SAP系統開發人員來說,能夠更好的使用ABAPSubmit來實現程序間協作。
原創文章,作者:BDVNN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/313367.html