본문 바로가기

ABAP 물타기/Report

batch job schedule 생성 function


USER-EIXT 을 사용하다 보면 트랜잭션 후속 작업이 필요할 경우가 있다.
예를 들자면 생성된 전표번호를 사용하여 후속 작업을 할 경우이다.
이미 생성될 전표번호를 갖고 있는 트랜잭션도 있지만,
그렇지 않은 트랜잭션의 경우에는 다음과 같이 레포트를 예약 걸어서 사용하면,
약간의 시간 텀은 있지만 후속 작업을 수행 할 수 있다.

아래 예는 검사로트생성 후 로트번호를 Z33QMR013 이라는 프로그램에서 후속 작업 하도록 한다.
물론 아래 FUNCTION 은 로트가 생성되는 시점의 BADI나 EXIT 에서 호출 되게 된다.


  FUNCTION Z33QMF_CREATE_JOB_INSP_LOT01 .
*"----------------------------------------------------------------------
*"*"Local interface:
*"----------------------------------------------------------------------

*Z33QMR013

  TABLES: TBTCJOB, RALDB, TRDIR.
  DATA: REPID LIKE SY-REPID.
  DATA: RELEASED LIKE  BTCH0000-CHAR1.


      raldb-report = 'Z33QMR013'.

      tbtcjob-authcknam = sy-uname.
      tbtcjob-jobname   = raldb-report.
      CALL FUNCTION 'JOB_OPEN'
        EXPORTING
          jobname  = tbtcjob-jobname
        IMPORTING
          jobcount = tbtcjob-jobcount
        EXCEPTIONS
          OTHERS   = 01.
      IF sy-subrc = 0.
**        IF print_para_specified = space.
          repid = raldb-report.
          CALL FUNCTION 'JOB_SUBMIT'
            EXPORTING
              authcknam = tbtcjob-authcknam
              jobcount  = tbtcjob-jobcount
              jobname   = tbtcjob-jobname
              report    = repid
              variant   = raldb-variant
            EXCEPTIONS
              OTHERS    = 01.
**        ELSE.
**          repid = raldb-report.
**          CALL FUNCTION 'JOB_SUBMIT'
**            EXPORTING,
**              priparams = print_para
**              arcparams = archive_para
**              authcknam = tbtcjob-authcknam
**              jobcount  = tbtcjob-jobcount
**              jobname   = tbtcjob-jobname
**              report    = repid
**              variant   = raldb-variant
**            EXCEPTIONS
**              OTHERS    = 01.
**        ENDIF.
        IF sy-subrc = 0.
          CALL FUNCTION 'JOB_CLOSE'
            EXPORTING
              jobname   = tbtcjob-jobname
              jobcount  = tbtcjob-jobcount
              strtimmed = 'X'
            IMPORTING
              JOB_WAS_RELEASED = RELEASED
            EXCEPTIONS
              OTHERS    = 01.
        ENDIF.
      ENDIF.

ENDFUNCTION.