目錄
【一】調用程式和被調用程式
【二】跳轉到被調用程式選擇螢幕
【三】跳轉到被調用程式執行結果頁面
【四】将被調用程式設定為背景作業模式運作
【一】調用程式和被調用程式
調用程式:ZLXF001
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSPZpWTxEERPRzaXp1ck1mYoR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmLwUDN4ITN1kTM5EDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
被調用程式:ZLXF003
【二】跳轉到被調用程式選擇螢幕
SUBMIT zlxf003 VIA SELECTION-SCREEN
WITH p_date = p_date
WITH s_bukrs IN s_bukrs
WITH s_hkont IN s_hkont
WITH p_rd1 = p_rd1
WITH p_rd2 = p_rd2
WITH p_rd3 = p_rd3
AND RETURN.
【三】跳轉到被調用程式執行結果頁面
SUBMIT lxf003 "VIA SELECTION-SCREEN
WITH p_date = p_date
WITH s_bukrs IN s_bukrs
WITH s_hkont IN s_hkont
WITH p_rd1 = p_rd1
WITH p_rd2 = p_rd2
WITH p_rd3 = p_rd3
AND RETURN.
【四】将被調用程式設定為背景作業模式運作
FORM frm_bajob_data .
DATA: lv_jobname TYPE tbtcjob-jobname,
lv_jobcount TYPE tbtcjob-jobcount.
CONCATENATE 'ZLXF003_' sy-datum sy-uzeit INTO lv_jobname.
**********************************************************************
* 啟動背景作業
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = lv_jobname
sdlstrtdt = sy-datum
sdlstrttm = sy-uzeit
IMPORTING
jobcount = lv_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
RETURN.
ENDIF.
**********************************************************************
* submit 程式
SUBMIT zlxf003 AND RETURN
WITH p_date = p_date
WITH s_bukrs IN s_bukrs
WITH s_hkont IN s_hkont
WITH p_rd1 = p_rd1
WITH p_rd2 = p_rd2
WITH p_rd3 = p_rd3
USER sy-uname
VIA JOB lv_jobname
NUMBER lv_jobcount.
**********************************************************************
* 關閉背景
"參數cant_start_immediate設定後天作業啟動優先級,如果不設定的話,可能導緻作業挂起,不能實時執行
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_jobcount
jobname = lv_jobname
laststrtdt = sy-datum
laststrttm = sy-uzeit
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
invalid_time_zone = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
RETURN.
ENDIF.
ENDFORM.