본문 바로가기
카테고리 없음

SAP SUBMIT VIA JOB MESSAGE 추출해오기

by 온레 2023. 11. 22.

타 프로그램 호출 방법

A프로그램에서 B 프로그램 호출 떄, 사용하는 방법은

CALL TRANSACTION B

SUBMIT B

두 방법이있다.

 

SUBMIT 을 이용해, 호출 프로그램 MESSAGE 추출

SUBMIT을 사용할 경우는 B프로그램의 MESSAGE를 받을 방법이

EXPORT MEMORY ID 이용하거나, 

VIA JOB을 이용하는 방법 두가지...

 

오늘은

SUBMIT B VIA JOB 을 이용한 방법으로 작성해보겠습니다.

 

SUBMIT VIA JOB EX.CODE

DATA : LV_JOBCOUNT TYPE TBTCJOB-JOBCOUNT,
       LV_JOBNAME  TYPE TBTCJOB-JOBNAME VALUE 'JOB_TEST'.
DATA : LT_LOG LIKE TABLE OF TBTC5 WITH HEADER LINE,
       LS_LOG LIKE LINE OF LT_LOG.
DATA : LR_DATA TYPE REF TO DATA.


CALL FUNCATION 'JOB_OPEN'
	EXPORTING
      JOBNAME = LV_JOBNAME
    IMPORTING 
      JOBCOUNT = LV_JOBCOUNT
    EXCEPTIONS
      CANT_CREATE_JOB = 1
      INVALID_JOB_DAT = 2
      JOBNAME_MISSING = 3
      OTHERS          =4.
 
 IF SY-SUBRC EQ 0.
 
 	SUBMIT (B_PGMID) WITH PA_BUKRS EQ PA_BUKRS
                     TO SAP-SPOOL
                     WITHOUT SPOOL DYNPRO
                     UWER SY-UNAME
                     VIA JOB LV_JOBNAME NUMBER LV_JOBCOUNT
                     AND RETURN.
 
 	IF SY-SUBRC EQ 0.
    	CALL FUNCTION 'JOB_CLOSE'
        	EXPORTING
             JOBCOUNT = LV_JOBCOUNT
             JOBNAME = LV_JOBNAME
             STRTIMMED = 'X'
            EXCEPTIONS
              CANT_START_IMMEDIATE = 1
              INVALID_STARTDATE = 2
              JOBNAME_MISSING = 3
              JOB_CLOSE_FAILED = 4
              JOB_NOSTEPS = 5
              JOB_NOTEXT = 6
              LOCK_FAILED = 7
              INVALID_TARGET = 8
              INVALIED_TIME_ZONE = 9
              OTHERS          =10.
        IF SY-SUBRC NE 0.
         "JOB CLOSE ERROR
        ENDIF.
    
    ELSE. 
     "SUBMIT ERROR
     DATA(LV_MSG) = CL_ABAP_SUBMIT_HANDLING=>GET_ERROR_MESSAGE( ).
    ENDIF.
 
 	"GET JOG LOG
    CALL FUNCTION 'BP_JOBLOG_READ'
        EXPORTING
             CLIENDT  = SY-MANDT
             JOBCOUNT = LV_JOBCOUNT
             JOBNAME = LV_JOBNAME	
         TABLES
             JOBLOGTBL  = LT_LOG   "B프로그램의 MEESSAGE 담긴 테이블
         EXCEPTIONS
         	CANT_READ_JOBLOG  = 1
            JOBCOUNT_MISSING  = 2
            JOBLOG_DOES_NOT_EXITST = 3
            JOLOG_IS_EMPTY = 4
            JOBLOG_NAME_MISSING = 5
            JOBNAME_MISSING = 6
            JOB_DOES_NOT_EXIST = 7
            OTHERS = 8.
 
   
 ENDIF.