ABAP how to get Background Job Status Report Code

本文介绍了一个ABAP程序,用于生成后台作业的状态报告。该程序可以显示作业名称、运行日期、运行时间及作业状态等信息,并通过循环检查作业状态直至作业完成或取消。

转载自:https://archive.sap.com/discussions/thread/689425

-----------

Problem

-----------

Hi Experts,

My requirement is to Genarate a report that will display the background job Status.

I.e. job cancelled or job abended or job still running like that.

My selection screen will be :

Job Name.

Run Date .

Run time .

Status of Job .

Can any one please send me the report code , i searched in google in many ways but i didnt get suitable report for my above requirement.

Its very urgent ...Help me.


Thank you & Regards,

Vanky.


-----------

Code

-----------

types: begin of gty_jobs,
           JOBCOUNT     type         TBTCO-JOBCOUNT,
           JOBNAME      type	TBTCO-JOBNAME,
           ABORTED	type	TBTCV-ABORT,
           FINISHED	type	TBTCV-FIN,
           PRELIMINARY	type	TBTCV-PRELIM,
           READY	type	TBTCV-READY,
           RUNNING	type	TBTCV-RUN,
           SCHEDULED	type	TBTCV-SCHED,
       end of gty_jobs.
 
types: gty_t_jobs type table of gty_jobs,
 
  data: gt_jobs type gty_t_jobs,
        gv_subrc type sysubrc,
        gv_aborted type i,
        gv_finished type i,
        gv_total type i.
 
  field-symbols: <lfs_jobs> type gty_jobs.
 
* Get the job status
  loop at gt_jobs assigning <lfs_jobs>.
    CALL FUNCTION 'SHOW_JOBSTATE'
      EXPORTING
        jobcount               = <lfs_jobs>-jobcount
        jobname                = <lfs_jobs>-jobname
       IMPORTING
         ABORTED                = <lfs_jobs>-ABORTED
         FINISHED               = <lfs_jobs>-FINISHED
         PRELIMINARY            = <lfs_jobs>-PRELIMINARY
         READY                  = <lfs_jobs>-READY
         RUNNING                = <lfs_jobs>-RUNNING
         SCHEDULED              = <lfs_jobs>-SCHEDULED
       EXCEPTIONS
         JOBCOUNT_MISSING       = 1
         JOBNAME_MISSING        = 2
         JOB_NOTEX              = 3
         OTHERS                 = 4
              .
  endloop.
 
* keep on checking the job status until it is finished or cancelled
  while gv_subrc eq 0.
 
    loop at gt_jobs assigning <lfs_jobs>.
      if <lfs_jobs>-finished ne 'X' and
         <lfs_jobs>-aborted ne 'X'.
 
**      reduce the frequency of checking the job status to *reduce the network traffic
        wait up to 60 seconds.       
 
        CALL FUNCTION 'SHOW_JOBSTATE'
          EXPORTING
            jobcount               = <lfs_jobs>-jobcount
            jobname                = <lfs_jobs>-jobname
           IMPORTING
             ABORTED                = <lfs_jobs>-ABORTED
             FINISHED               = <lfs_jobs>-FINISHED
             PRELIMINARY            = <lfs_jobs>-PRELIMINARY
             READY                  = <lfs_jobs>-READY
             RUNNING                = <lfs_jobs>-RUNNING
             SCHEDULED              = <lfs_jobs>-SCHEDULED
           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.
 
        gv_subrc = 0.
        exit.
 
      else.
        gv_subrc = 4.
      endif.
    endloop.
  endwhile.
 
* Output job summary
  write: /55  'J O B   S U M M A R Y' color 4.
  write: / sy-uline(150).
  skip 2.
  describe table gt_jobs lines gv_total.
 
 
*  loop at gt_jobs assigning <lfs_jobs> where finished ne 'X'.
  loop at gt_jobs assigning <lfs_jobs>.
 
    if <lfs_jobs>-aborted eq 'X'.
      add 1 to gv_aborted.
      write: / 'Jobname :', <lfs_jobs>-jobname,
            50 'Job ID :', <lfs_jobs>-jobcount color 6.
      write: / sy-uline(150).
 
    elseif <lfs_jobs>-finished eq 'X'.
      add 1 to gv_finished.
      write: / 'Jobname :', <lfs_jobs>-jobname,
            50 'Job ID :', <lfs_jobs>-jobcount.
      write: / sy-uline(150).
    endif.
  endloop.
      write: / 'Jobs Cancelled :', 15 gv_aborted color 6.
      write: / 'Jobs Finished :', 15 gv_finished.
      write: / 'Total Jobs :', 15 gv_total.
 
 
*  clear: gv_aborted, gv_finished, gv_total, gt_jobs.
  clear: gv_aborted, gv_finished, gv_total.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值