关闭

用ABAP实现SM36的设置后台JOB

588人阅读 评论(0) 收藏 举报
分类:

设置后台Job,更多功能请看函数组:BTCH                             

DATA: jobcount LIKE tbtcjob-jobcount.
DATA: abort TYPE c,
      finish TYPE c,
      prelim TYPE c,
      ready TYPE c,
      run TYPE c,
      sched TYPE c.

PARAMETERS: p_name LIKE tbtcjob-jobname OBLIGATORY DEFAULT 'Z_BARRY_TEST_JOB',
            p_date LIKE sy-datum OBLIGATORY,
            p_time LIKE sy-uzeit OBLIGATORY.
SELECT-OPTIONS s_rept FOR sy-repid NO INTERVALS OBLIGATORY .

START-OF-SELECTION.
CALL FUNCTION 'JOB_OPEN' "定义一个Job
    EXPORTING
      jobname          = p_name
    IMPORTING
      jobcount         = jobcount "Job id
    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.
ENDIF.

LOOP AT s_rept .
    CALL FUNCTION 'JOB_SUBMIT' "Scheduled 这个Job
      EXPORTING
        authcknam               = sy-uname
        jobcount                = jobcount
        jobname                 = p_name
        report                  = s_rept-low
*        VARIANT                 = 'TEST'
      EXCEPTIONS
        bad_priparams           = 1
        bad_xpgflags            = 2
        invalid_jobdata         = 3
        jobname_missing         = 4
        job_notex               = 5
        job_submit_failed       = 6
        lock_failed             = 7
        program_missing         = 8
        prog_abap_and_extpg_set = 9
        OTHERS                  = 10.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
ENDLOOP.

CALL FUNCTION 'JOB_CLOSE' "Release 这个Job
    EXPORTING
      jobcount             = jobcount
      jobname              = p_name
      sdlstrtdt            = p_date
      sdlstrttm            = p_time
    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.

CALL FUNCTION 'SHOW_JOBSTATE'
    EXPORTING
      jobcount         = jobcount
      jobname          = p_name
    IMPORTING
      aborted          = abort
      finished         = finish
      preliminary      = prelim
      ready            = ready
      running          = run
      scheduled        = sched
    EXCEPTIONS
      jobcount_missing = 1
      jobname_missing = 2
      job_notex        = 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.
ENDIF.

WRITE : / 'Canceled              :' , abort ,
          / 'Finished              :' , finish,
          / 'Scheduled Temporarily :' , prelim,
          / 'Ready for Execution   :' , ready,
          / 'Active                :' , run,
          / 'Scheduling Released   :' , sched.

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

SM37job状态意义

已计划(Sched): 后台作业的步骤(Step)已经定义,但是作业的开始条件(Start condition)没有定义。 已释放(Released): 后台作业的步骤(Step)和开始条件(Start condition)都已经定义好了,并且相关的作业也经过有相关作业权限的人Release。 ...
  • zhongguomao
  • zhongguomao
  • 2016-10-20 16:27
  • 985

ABAP 在程序中启动后台JOB

DATA: lv_job_name         LIKE tbtco-jobname,     "作业名  ...
  • zhongguomao
  • zhongguomao
  • 2016-08-29 17:12
  • 880

SAP 如何定义后台job

SAP 如何定义后台job   有两种方法 1是se38执行可执行程序后,菜单栏‘程序’--->'后台执行',输入输出设备,ENTER两次后,选择开始时间(立刻执行,或定义日期时间,也可周期执行。。)后保存。 2是SM36,定义作业名,点击‘开始条件’选择job开始...
  • Wengyuyu1234
  • Wengyuyu1234
  • 2014-03-21 14:49
  • 7565

用ABAP实现SM36的设置后台JOB

*&———————————————————————**& Report Z_BARRY_SET_JOB **& **&———————————————————————**& 设置后台Job,更多功能请看函数组:BTCH **&——————————————...
  • zeewjj
  • zeewjj
  • 2012-10-12 12:27
  • 1933

ABAP 在程序中启动后台JOB

DATA: lv_job_name         LIKE tbtco-jobname,     "作业名  ...
  • zhongguomao
  • zhongguomao
  • 2016-10-20 16:11
  • 866

后台JOB DEBUG

后台JOB DEBUG SM37 勾选JOB  输入JDBG即可。
  • zeewjj
  • zeewjj
  • 2013-03-13 18:53
  • 1682

ABAP 在程序中启动后台JOB

DATA: lv_job_name         LIKE tbtco-jobname,     "作业名  ...
  • zhongguomao
  • zhongguomao
  • 2016-08-29 17:12
  • 880

SAP 如何定义后台job

有两种方法 1是se38执行可执行程序后,菜单栏‘程序’--->'后台执行',输入输出设备,ENTER两次后,选择开始时间(立刻执行,或定义日期时间,也可周期执行。。)后保存。 2是SM36,定义作业名,点击‘开始条件’选择job开始时间(立刻执行,或定义日期时间,也可周期执...
  • LCF9781
  • LCF9781
  • 2016-09-26 15:19
  • 257

在HANA里设置后台Job

文字版(CSDN的图片上传太不方便了,实在没辙,最后就用为知笔记另存为了一张超大图片。。): HANA Schedule Background Job 序 最近在做BW&HANA的项目,鉴于BW的强大Schedule Job能力,于是摸索了一下HANA里的实现方式; 从目前...
  • yin_chuan_lang
  • yin_chuan_lang
  • 2016-04-11 15:26
  • 3684

SM36 定义后台作业之日期变量

在定义后台作业时,我们需要根据时间变量取数,以为用sy-datum变量就够了,但是后台定义作业完成之后,每次sy-datum都是取定义作业当天的日期。 解决办法:1.定义变式,用变式动态赋值。         ...
  • flyume
  • flyume
  • 2015-04-08 10:40
  • 134
    个人资料
    • 访问:4404942次
    • 积分:62546
    • 等级:
    • 排名:第46名
    • 原创:1742篇
    • 转载:2522篇
    • 译文:101篇
    • 评论:333条
    博客专栏
    微信公众号
      为你推荐最新的博文~更有惊喜等着你