CALL TRANSACTION, SUBMIT

j_wisdom_h·2025년 5월 28일
0

SAP

목록 보기
9/19

1. 호출 대상과 목적

CALL TRANSACTION

- SAP 트랜잭션 코드(T-code)를 실행하는 명령어다.
- 주로 화면이 있는 프로그램(모듈풀, dialog program)을 호출할 때 사용하며, 사용자가 SAP GUI에서 직접 트랜잭션을 입력하는 것과 같은 효과를 코드로 구현한다.

SUBMIT

- ABAP 리포트 프로그램(Report Program, TYPE 1 Executable Program)을 실행하는 명령어다.
- 주로 데이터 조회, 결과 출력 등 화면이 없는 리포트 프로그램을 자동으로 실행할 때 사용한다.

2. 파라미터 및 데이터 전달 방식

CALL TRANSACTION

- 기본적으로 트랜잭션 화면을 띄우고, 사용자가 직접 데이터를 입력하거나, BDC(Batch Data Communication) 기술을 활용해 입력값을 자동으로 넘길 수 있다. BDC는 대량 데이터 입력 자동화에 적합하다.

SUBMIT

- WITH 옵션을 통해 리포트 프로그램의 파라미터(SELECT-OPTIONS, PARAMETERS 등)에 값을 직접 전달할 수 있다.
- 또한, VIA SELECTION-SCREEN 옵션을 사용하면 selection screen을 거쳐 실행할 수 있다.

3. 자동화 및 반복 작업 처리

CALL TRANSACTION

- BDC와 결합하여 대량 데이터 입력, 반복 작업 자동화에 매우 강하다. 실제로 사람이 트랜잭션 화면에서 반복적으로 입력하는 작업을 프로그램이 대신 처리할 수 있다.

SUBMIT

- 리포트 실행 자체를 자동화하는 데 적합하지만, 트랜잭션 화면을 통한 대량 데이터 입력 자동화는 지원하지 않는다.

4. 실행 흐름 및 복귀

CALL TRANSACTION

- RETURN 옵션을 사용하면, 호출한 트랜잭션이 끝난 뒤 원래 프로그램으로 제어가 돌아온다.

SUBMIT

- AND RETURN 옵션을 사용하면, 리포트 실행이 끝난 뒤 원래 프로그램으로 제어가 복귀한다.

5. 사용 예시

CALL TRANSACTION 'SE11'.
데이터 딕셔너리 트랜잭션을 호출(화면 기반)

SUBMIT Z2WEEK_ALV006 WITH s_cname = CNAME VIA SELECTION-SCREEN AND RETURN.
리포트 프로그램을 파라미터와 함께 실행(결과 출력 중심)

CALL TRANSACTION은 트랜잭션 코드 기반, 화면이 있는 프로그램 호출, BDC 자동화에 적합하다.
SUBMIT은 리포트 프로그램 호출, 파라미터 전달 및 selection screen 제어, 리포트 실행 자동화에 적합하다.

SUBMIT 옵션

https://ro-ttung.tistory.com/5

1. WITH

  • 호출하는 리포트의 PARAMETERS, SELECT-OPTIONS에 값을 직접 넘길 때 사용한다.
  • 예시:
    SUBMIT RFITEMGL
      VIA SELECTION-SCREEN
      WITH SD_SAKNR-LOW EQ PA_RACCT
      WITH SD_BUKRS-LOW EQ PA_BUKRS
      AND RETURN.
  • 파라미터 이름과 값을 직접 지정해 넘긴다.
  • 여러 파라미터를 연속해서 넘길 수 있다.

2. VIA SELECTION-SCREEN

  • 호출 프로그램의 selection screen을 거쳐 실행한다.
  • 이 옵션이 있으면 넘긴 파라미터가 selection screen에 자동으로 입력된 상태로 실행된다.
  • 이 옵션이 없으면 selection screen을 거치지 않고 바로 실행 결과 화면이 나타난다.

3. AND RETURN

  • SUBMIT으로 호출한 프로그램 실행이 끝난 후, 제어를 다시 원래 프로그램으로 돌려준다.
  • 이 옵션이 없으면 SUBMIT 이후의 코드는 실행되지 않는다.

4. WITH SELECTION-TABLE itab

  • 여러 파라미터를 한 번에 내부 테이블로 넘길 때 사용한다.
  • 내부 테이블 타입은 RSPARAMS이며, 각 파라미터의 이름(SELNAME), 타입(KIND), 값(LOW, HIGH), 조건(SIGN, OPTION) 등을 세팅한다.
  • 예시:
    DATA: LT_SELTAB TYPE TABLE OF RSPARAMS.
    LT_SELTAB = VALUE #(
      ( SELNAME = 'SD_SAKNR' KIND = 'S' SIGN = 'I' OPTION = 'BT' LOW = '10000000' HIGH = '19999999' )
      ( SELNAME = 'SD_BUKRS' KIND = 'S' SIGN = 'I' OPTION = 'EQ' LOW = '1000' )
      ( SELNAME = 'X_AISEL' KIND = 'P' SIGN = 'I' OPTION = 'EQ' LOW = 'X' )
      ( SELNAME = 'SO_BUDAT' KIND = 'S' SIGN = 'I' OPTION = 'BT' LOW = '20230901' HIGH = '20230930' )
    ).
    SUBMIT RFITEMGL
      VIA SELECTION-SCREEN
      WITH SELECTION-TABLE LT_SELTAB
      AND RETURN.
  • RANGE 타입 파라미터, 라디오버튼, 체크박스 등 다양한 조건을 한 번에 넘길 수 있다.

리포트를 트랜젝션 코드로 만들기

프로젝트 > 우클릭 > create > transaction

트랜젝션 코드와 설명추가


연결할 프로그램명 설정


패키지 선택후 저장

끝!!


트랜잭션 코드 ZA01로 실행시 잘 작동하게 됨

profile
뚜잇뚜잇

0개의 댓글