SAP ABAP 创建后台job

DATA:
  gt_sel    TYPE TABLE OF rsparams,
  gs_sel    TYPE rsparams,
  lv_jobcount TYPE tbtcjob-jobcount,
  lv_jobname  TYPE tbtcjob-jobname.

* 填充选择屏幕参数
CLEAR gs_sel.
gs_sel-selname = 'S_BANFN'. "选择屏幕字段名
gs_sel-kind    = 'S'.       "S选择表/P参数
gs_sel-sign    = 'I'.
gs_sel-option  = 'EQ'.
gs_sel-low     = '4000000011'.
"gs_sel-high    = '1000100'.
APPEND gs_sel TO gt_sel.

CLEAR gs_sel.
gs_sel-selname = 'S_BANFN'. "选择屏幕字段名
gs_sel-kind    = 'S'.       "S选择表/P参数
gs_sel-sign    = 'I'.
gs_sel-option  = 'EQ'.
gs_sel-low     = '4000000021'.
"gs_sel-high    = '1000100'.
APPEND gs_sel TO gt_sel.

lv_jobname = 'ZSRM008'."作业名称

"创建后台JOB
CALL FUNCTION 'JOB_OPEN'
  EXPORTING
    jobname          = lv_jobname
  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 sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  RETURN.
ENDIF.

SUBMIT zsrm008                   "被调用程序              
  WITH SELECTION-TABLE gt_sel    "调用程序的SELECT-OPTIONS的参数设置
   VIA JOB lv_jobname
   NUMBER  lv_jobcount
   AND RETURN.

"关闭后台JOB
CALL FUNCTION 'JOB_CLOSE'
  EXPORTING
    jobcount             = lv_jobcount
    jobname              = lv_jobname
    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
    OTHERS               = 8.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

 

posted on 2026-07-07 20:42  seven1314pp  阅读(5)  评论(0)    收藏  举报