限制后台进程的个数

应用背景:

通常我们会限制后台进程的执行个数

实现方法:

   DATAl_jobcount  LIKE  tbtcm-jobcount,
        l_jobname LIKE  tbtcm-jobname,
        l_stepcount LIKE  tbtcm-stepcount.
  DATAl_tbtco LIKE tbtco.
  IF sy-batch 'X'.  “如果是后台执行
******************获取当前系统job信息
    CALL FUNCTION 'GET_JOB_RUNTIME_INFO'  ”用来抓取当前后台JOB
      IMPORTING
        jobcount        l_jobcount
        jobname         l_jobname
        stepcount       l_stepcount
      EXCEPTIONS
        no_runtime_info 1
        OTHERS          2.
    IF sy-subrc <> 0.
      STOP.
    ENDIF.

    SELECT SINGLE *               “用来检查当前系统是否还有其他未处理完的JOB
     FROM tbtco
     INNER JOIN tbtcp ON tbtcp~jobname tbtco~jobname AND tbtcp~jobcount tbtco~jobcount
     INTO CORRESPONDING FIELDS OF l_tbtco
    WHERE tbtco~status 'R'
      AND tbtcp~progname EQ sy-cprog
      AND tbtco~jobcount NE l_jobcount.
    IF sy-subrc 0.
      WRITE'有其他Job未处理完'.
      STOP.
    ENDIF.
  ENDIF.

*********************************备注*****************

'GET_JOB_RUNTIME_INFO'  此接口只能用在后台,方能生效;

即就是说,调用该接口的程序必须是后台job,才能起作用

posted @ 2015-07-11 17:41  林中白狼-LBG  阅读(894)  评论(0编辑  收藏  举报