DATA: lv_job_name LIKE tbtco-jobname, "作业名
lv_job_nr LIKE tbtco-jobcount, "作业号
lv_job_released TYPE c,
lv_job_start_sofort TYPE c,
lv_print_parameters TYPE pri_params.
DATA:lt_rspar TYPE TABLE OF rsparams,
lw_line LIKE LINE OF lt_rspar.
"如果是要传给PARAMETER 根据需求设置屏幕参数
lw_line-selname = 'P_MONAT'.
lw_line-kind = 'P'.
lw_line-sign = 'I'.
lw_line-option = 'EQ'.
lw_line-low = p_monat.
APPEND lw_line TO lt_rspar.
"传值给 SELECT-OPTION
lw_line-selname = 'S_WERKS'.
lw_line-kind = 'S'.
lw_line-sign = 'I'.
lw_line-option = 'EQ'.
lw_line-low = '1000'.
APPEND lw_line TO lt_rspar.
APPEND lw_line TO lt_rspar.
"JOB 名称
lv_job_name = job_name .
"打开JOB 通过JOB name 获得JOB号
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = lv_job_name
IMPORTING
jobcount = lv_job_nr
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF syst-subrc = 0.
"调用需要跑JOB的程序
SUBMIT (lv_job_name)
WITH SELECTION-TABLE lt_rspar
USER syst-uname " mandatory
VIA JOB lv_job_name NUMBER lv_job_nr AND RETURN.
"运行结束 关闭JOB
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_job_nr
jobname = lv_job_name
strtimmed = 'X'
IMPORTING
job_was_released = lv_job_released
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF syst-subrc <> 0.
MESSAGE '关闭后台作业出错' TYPE 'I'.
ELSE.
MESSAGE '后台JOB开始运行' TYPE 'I'.
ENDIF.
ENDIF.
ENDIF.
ABAP 在程序中启动后台JOB
最新推荐文章于 2024-08-20 14:36:27 发布