关闭

ABAP 在程序中启动后台JOB

1048人阅读 评论(0) 收藏 举报
分类:
DATAlv_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.


附:
JOB相关系统表:TBTC*
JOB的状态: 可以使用系统函数查看  BDL_READ_JOB_STATUS  或者是自己去表 TBTCO 中查找根据STATUS 字段判断是否完成  F 就是结束 A 出错终止  R 是运行中
JOB运行时间:TBTCO中有开始日期,开始时间和结束日期结束时间 两者直接相减就得出JOB运行的时间
JOB日志查看:系统中的日志好像是没有存放在系统表而是文件中,可以通过函数 BP_JOBLOG_READ 获取,传入JOB名和JOB编号就可以获得日志信息。
 "获取失败日志
  DATA:lt_log TYPE TABLE OF tbtc5 WITH HEADER LINE.
    CALL FUNCTION 'BP_JOBLOG_READ'
      EXPORTING
        client                sy-mandt
        jobcount              lw_job-jobcount
        jobname               lw_job-jobname
      TABLES
        joblogtbl             lt_log
      EXCEPTIONS
        cant_read_joblog      1
        jobcount_missing      2
        joblog_does_not_exist 3
        joblog_is_empty       4
        joblog_name_missing   5
        jobname_missing       6
        job_does_not_exist    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.
0
0
查看评论

SAP 如何定义后台job

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

ABAP 在程序中启动后台JOB

http://blog.sina.com.cn/s/blog_66110f6201018fkt.html
  • caiguangming
  • caiguangming
  • 2015-07-17 15:35
  • 159

SAP强制取消后台作业

SM50,找到你的那个后台Job的行,然后在菜单点击Process,Cancel with core,回到SM37查看Background Job,此时应该为“取消”状态,再通过SM35,选中Session,点击release即可。
  • m15188153014
  • m15188153014
  • 2016-09-01 16:40
  • 2016

SAP后台执行大数据量报表(鹦鹉学舌篇)

适用场景:查询类报表。 适用人员:所有。 案例需求:如需要查询导出整年或者近几年的所有采购合同的执行情况表,由于此报表纵深查询了采购合同对应的采购订单以及发货信息,开票信息等多个环节,查询速度相当缓慢,直接查询容易出现如下“Time Limit Exceeded”错误。 此时我们不妨使用后台作业...
  • zhongguomao
  • zhongguomao
  • 2017-02-06 09:16
  • 1740

ABAP后台进程创建

*****此程序可以创建调用程序的后台进程,一般用于程序运行时间比较长,并且有前后关联关系的前面程序当中。 DATA: jobname LIKE tbtcjob-jobname VALUE 'ZSRM_MATERIAL_SHORTAGE...
  • ioumm2008
  • ioumm2008
  • 2014-01-24 11:43
  • 460

ABAP程序运行中,状态动态提示

 代码如下:  SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L1S33 {color: #4DA619;}.L1S52 {...
  • wren2004
  • wren2004
  • 2008-08-25 17:06
  • 962

ABAP 在程序中启动后台JOB

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

用ABAP实现SM36的设置后台JOB

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

用ABAP实现SM36的设置后台JOB

设置后台Job,更多功能请看函数组:BTCH                     &#...
  • zhongguomao
  • zhongguomao
  • 2016-05-30 13:08
  • 618

调试后台作业的方法

有一些情况下,我们需要调试后台作业。 首先我们在SM37中找到这个已release的后台作业,选择它; 然后输入事务码:JDBG, 回车进入调试环境,单步调试或者打断点调试。
  • fiberoptics
  • fiberoptics
  • 2013-09-04 21:44
  • 1898
    个人资料
    • 访问:4641216次
    • 积分:65260
    • 等级:
    • 排名:第42名
    • 原创:1753篇
    • 转载:2551篇
    • 译文:101篇
    • 评论:343条
    博客专栏
    最新评论
    微信公众号
      为你推荐最新的博文~更有惊喜等着你