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-kind = 'P'. 如果是要传给SELECTION lw_line-kind = 'S LOOP AT so_bukrs. lw_line-selname = 'SO_BUKRS'. lw_line-kind = 'P'. lw_line-sign = so_bukrs-sign. lw_line-option = so_bukrs-option. lw_line-low = so_bukrs-low. lw_line-high = so_bukrs-high. APPEND lw_line TO lt_rspar. ENDLOOP. LOOP AT so_prctr. lw_line-selname = 'SO_PRCTR'. lw_line-kind = 'P'. lw_line-sign = so_prctr-sign. lw_line-option = so_prctr-option. lw_line-low = so_prctr-low. lw_line-high = so_prctr-high. APPEND lw_line TO lt_rspar. ENDLOOP. LOOP AT so_werks. lw_line-selname = 'SO_WERKS'. lw_line-kind = 'P'. lw_line-sign = so_werks-sign. lw_line-option = so_werks-option. lw_line-low = so_werks-low. lw_line-high = so_werks-high. APPEND lw_line TO lt_rspar. ENDLOOP. LOOP AT so_gjahr. lw_line-selname = 'SO_GJAHR'. lw_line-kind = 'P'. lw_line-sign = so_gjahr-sign. lw_line-option = so_gjahr-option. lw_line-low = so_gjahr-low. lw_line-high = so_gjahr-high. APPEND lw_line TO lt_rspar. ENDLOOP. LOOP AT so_monat. lw_line-selname = 'SO_MONAT'. lw_line-kind = 'P'. lw_line-sign = so_monat-sign. lw_line-option = so_monat-option. lw_line-low = so_monat-low. lw_line-high = so_monat-high. APPEND lw_line TO lt_rspar. ENDLOOP.
"JOB 名称 lv_job_name = 'ZCO005'. "打开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 zcor010 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.