SAP 프로그램 실행 시 기본 프로세스를 정리해보았다.

 

EVENT 흐름

AT SELECTION-SCREEN -> INITIALIZATION -> AT SELECTION-SCREEN OUTPUT -> AT SELECTION-SCREEN [ON] [VALUE-REQUEST FOR] -> START-OF-SELECTION -> END-OF-SELECTION

 

1. AT SELECTION-SCREEN
실행조건 입력받는 화면으로, PARAMETER/SELECT-OPTION으로 값 입력

 

2. INITIALIZATION
PARAMETER/SELECT-OPTION 초기값 세팅으로, 프로그램 실행되는 순간 AT SELECTION-SCREEN 직전에 실행

 

3. AT SELECTION-SCREEN OUTPUT
선택한 화면 수정

 

4. AT SELECTION-SCREEN [ON] [VALUE-REQUEST FOR]
변수 및 레이아웃 등의 값을 미리 입력할 수 있는 구문으로, 원하는 필드에 Search Help 설치

 

5. START-OF-SELECTION
실행(F8) 시 SELECTION-SCREEN 구동하기 위한 구문으로, 명시하지 않으면 모든 코드가 속하게 되는 이벤트 블록
프로그램의 메인으로, 로직 구현부 시작 명시

 

6. END-OF-SELECTION
화면 종료 구문

 

구현 예시

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Internal Table 선언  (0) 2021.12.02

ABAP 개발을 하다보니, Internal Table을 선언하는 문법(구문, 방식)을 다양하게 접하며 헷갈리기 시작했다.
그래서 크게 2가지의 경우로 정리해보았다.

  1. 실제 DB 기반 Internal Table 선언
  2. 개발자가 필요한 컬럼들로 구성한 Internal Table 선언

먼저 Internal Table의 기본 정의와 종류에 대해서 설명한 후 선언 방식을 정리하였다.

- Internal Table 이란?

DB의 데이터에 접근 및 조작할 때, Local 메모리 영역에 담아두어 사용하는 것
매번 DB에 직접적으로 접근하지 않아도 되어 부하를 줄일 수 있다.

- Internal Table 종류

  • Standard Table 
    : 순차적으로 Index를 가지는 테이블로 Index로 조작할 수 있다.
      Key는 항상 non-unique
  • Sorted Table
    : Key로 자동 정렬되며 Index와 Key로 조작할 수 있다. 
      Key에 WITH UNIQUE 사용 가능
      SORT 명령어 사용 불가능
      INSERT는 사용 가능하나 APPEND는 불가능
  • Hashed Table
    : Index가 없어서 READ TABLE ~ INDEX 구문 사용 불가능
      Hash로 계산된 Key값으로 조회할 수 있어, READ TABLE ~ WITH [TABLE] KEY 구문 사용 가능
      반드시 Unique하게 선언되어야 한다.

- 실제 DB 기반 Internal Table 선언

#1
(internal) LIKE TABLE OF (DB) WITH HEADER LINE.
#2
(internal) LIKE (DB) OCCURS 0 WITH HEADER LINE.
  • LIKE TABLE OF 과 OCCURS 0 동시 사용 불가능
    : OCCURS 0 -> 메모리 제한을 두지 않겠다는 것(무한대)
  • WITH HEADER LINE 
    : Header(Work Area)를 생성할 때 사용하며, 대부분 사용하는 것이 더 편하다.

    # WITH HEADER LINE 사용하는 경우(가공 필요X)
    LOOP AT (internal) ~ ENDLOOP.
    # LOOP를 돌면서 Header가 자동으로 올라와서 반복문 바로 수행

    # WITH HEADER LINE 사용하지 않는 경우(가공 필요O)
    LOOP AT (internal) INTO (struct) ~ ENDLOOP.
    # LOOP를 돌면서 한 line씩 structure에 넣어서 반복문 수행

 

- 개발자가 필요한 컬럼들로 구성한 Internal Table 선언

#1
DATA : BEGIN OF (struct),
              (val1) LIKE (table1-val1),
              (val2) LIKE (table2-val2),
          ENDOF (struct),
      
(internal) LIKE TABLE OF (struct) [WITH HEADER LINE].
#2
DATA : BEGIN OF (struct),
              (val1) LIKE (table1-val1),
              (val2) LIKE (table2-val2),
         ENDOF (struct),
       
 (internal) LIKE (struct) OCCURS 0 [WITH HEADER LINE].
  • #1, #2 : structure를 생성 후 위의 <실제 DB 기반 Internal Table 선언>과 같이 internal table 선언
#3
DATA : BEGIN OF (internal) OCCURS 0,
              (val1) LIKE (table1-val1),
              (val2) LIKE (table2-val2),
         ENDOF (internal),
  • structure와 internal table 구분하지 않고 선언하는 방식으로, 테이블 구조 선언 부에 OCCURS 0 을 사용한다.

'SAP > ABAP' 카테고리의 다른 글

[ABAP] EVENT 구문  (0) 2021.12.27

+ Recent posts