SAP SM36 后台作业设置全解析

SM36是设置SAP周期性运行的事务码

来测试一下,首先先写一个程序:

我有一个zzp_people2的数据表.

DATA : INT1 TYPE I.
DATA : ITAB LIKE ZZP_PEOPLE2.
CALL FUNCTION 'QF05_RANDOM_INTEGER'
    EXPORTING
      RAN_INT_MAX   = 9999999
      RAN_INT_MIN   = 1000000
    IMPORTING
      RAN_INT       = INT1
    EXCEPTIONS
      INVALID_INPUT = 1
      OTHERS        = 2.
  ITAB-ZID = INT1.
  ITAB-ZNAME = INT1 + 1.
  ITAB-ZPASSWORD = INT1 + 2.
INSERT ZZP_PEOPLE2 FROM ITAB.

 

这段程序的作用,就是产生随机数,然后插入到表里面。 

接下来是用SM36了:

回车

 

然后

 

回退

 

 

 

 

 

可以“立刻”

也可以“日期/时间” 填写“预定的启动”->“日期”->“时间”

 

 

 

SM37查看

 

后台运行,测试程序

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.

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在SAP中创建后台作业的代码示例: ```abap REPORT ztest_job_create. DATA: jobname LIKE tbtcp-jobname, jobcount LIKE tbtcp-jobcount, jobclass LIKE tbtcp-jobclass, jobd AS tbtcp-jobdynpro, jobhead LIKE tbtcp-jobhead, jobselect LIKE tbtcp-jobselect, jobstep LIKE tbtcp-jobstep, jobevent LIKE tbtcp-jobevent, jobpara LIKE tbtcp-jobpara, jobtarget LIKE tbtcp-jobtarget, jobclose LIKE tbtcp-jobclose. * 设置作业名称和作业计数器 jobname = 'ZTEST_JOB'. jobcount = '001'. * 设置作业类别 jobclass = 'A'. * 设置作业头信息 jobhead-stepname = 'STEP_1'. jobhead-progname = 'ZTEST_PROGRAM'. jobhead-jobname = jobname. jobhead-jobcount = jobcount. jobhead-jobclass = jobclass. * 设置作业步骤 jobstep-stepname = 'STEP_1'. jobstep-progname = 'ZTEST_PROGRAM'. jobstep-jobname = jobname. jobstep-jobcount = jobcount. jobstep-jobclass = jobclass. * 设置作业关闭信息 jobclose-jobname = jobname. jobclose-jobcount = jobcount. jobclose-jobclass = jobclass. * 创建作业 CALL FUNCTION 'JOB_OPEN' EXPORTING jobname = jobname jobcount = jobcount jobclass = jobclass EXCEPTIONS cant_create_job = 1 invalid_job_data = 2 jobname_missing = 3 others = 4. * 提交作业 CALL FUNCTION 'SUBMIT' EXPORTING report = 'ZTEST_PROGRAM' variant = '' direct = 'X' jobname = jobname jobcount = jobcount jobclass = jobclass EXCEPTIONS bad_variant = 1 cant_create_job = 2 invalid_report = 3 no_authority = 4 no_batch = 5 no_spool = 6 operation_cancelled = 7 others = 8. * 关闭作业 CALL FUNCTION 'JOB_CLOSE' EXPORTING jobclose = jobclose EXCEPTIONS job_close_failed = 1 others = 2. ``` 这段ABAP代码将创建一个名为`ZTEST_JOB`的后台作业,并在其中运行`ZTEST_PROGRAM`程序。你可以根据自己的需求修改作业名称、作业类别、程序名称等参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值