본문 바로가기

SAP ABAP

SUBMIT / CALL TRANSACTION 비교

<SUBMIT>  

프로그램을 수행하라는 명령어로 지정된 프로그램의 Type은 Executable Program이어야 합니다. 



사용 형식

SUBMIT report_na me . Static 형식으로 Executable program name을 지정하여 수행

SUBMIT (string_var) . Dynamic 형식으로 지정하기 때문에 수행 속도는 Static 형식이 빠름



추가 옵션

1. LINE-SIZE col LINE-COUNT line

- 수행할 프로그램의 Line Size와 Line Count의 값을 지정



2. USING SELECTION-SCREEN screen_number

- Program의 SELECTION SCREEN으로 지정된 screen 번호를 가진 화면을 사용하고

 SELECT-OPTIONS, PARAMETERS로 선언된 변수들에 대한 값을 넘겨 줄 수 있음.



3. VIA SELECTION-SCREEN

- SELECTION SCREEN에 입력 값을 화면에 표시하지 않겠다는 것이지만 값은 넘겨 줄 수 있음.



4. AND RETURN  

- Executable Program을 수행한 후 되돌아와서 호출한 프로그램의 나머지 부분의 Processing을 진행

- 이 항목이 없으면 SUBMIT을 수행한 후 호출한 프로그램은 종료



5. EXPORTING LIST TO MEMORY

- 출력된 List의 내용을 Memory에 저장하여 호출되는 프로그램으로 넘겨 줌.



6. USER user VIA JOB job NUMBER n

- 프로그램을 실행하되 Back ground Job으로 수행

- Back-ground Job으로 수행되면 그 결과나 출력 List가 Spool에 남게 되며 Job의 결과에서 확인



7. USING SELECTION-SETS OF PROGRAM prog

- 프로그램을 실행하되 Variant를 이용하여 수행, Variant가 존재해야 함.



8. WITH (호출되는 프로그램 변수) = (호출하는 프로그램 변수)

- Selection screen에서 정의된 SELECT-OPTIONS 혹은 Paramters로

  선언된 변수들에게 값을 넘겨 줄 경우 사용

- 위의 옵션과 함께 사용할 수 없음.



​예시 1

DATA : lt_para TYPE TABLE OF rsparams WITH HEADER LINE.



CLEAR lt_para.

lt_para-selname = 'SO_MATNR'.  (*호출될 프로그램에 존재하는 조회조건)

lt_para-kind = 'S'.

lt_para-sign = 'I'.

lt_para-option = 'EQ'.

lt_para-low = 'M0001'.

APPEND lt_para.



SUBMIT (호출될 프로그램 ) WITH SELECTION-TABLE lt_para 

                                     AND RETURN.



​예시 2

lt_para  를 생성할 필요없이 바로 전송 

Select-options: so_matnr for mara-matnr.



SUBMIT (호출될 프로그램 ) WITH SO_MATNR = SO_MATNR

                                    AND RETURN.





Call Transaction 

Module Pool 프로그램이나 트랙잭션을 실행하라는 명령어입니다.





사용 형식

CALL TRANSACTION 'T-CODE'. 



추가 옵션

1. AND SKIP FIRST SCREEN

- SUBMIT의 VIA SELECTION-SCREEN 과 동일하게 첫번째 화면은 skip한다.



1. USING (bdc_tab) [bdc_option]

- BDC를 이용하여 트랜젝션을 호출한다.



**BDC 사용법: 추가 예정



​예시 1

call transcation은 sumbit과 다르게 직접변수를 전송할 수가 없기 때문에

memory를 이용하여 데이터를 전송한다.



SET PARAMETER ID 'MAT' FIELD GT_DISP-MATNR.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN .



*호출되는 트랜잭션에서 어떤 메모리를 사용하는 확인 후 사용

 (CBO 프로그램에서는 PARAMETER p_matnr like mara-matnr  MEMORY ID  MAT 

  이런식으로 선언이 되어있어아한다. )