SAP_ABAP 프로그램 구조 (이벤트)

2021. 10. 25. 15:22SAP_ABAP

728x90

*이벤트 기능

  • INITIALIZATION : SELECTION SCREEN 화면이 열리기 전에 화면 필드 값을 초기화하는데 사용.
  • AT SELECTION-SCREEN : 값을 SELECTION-SCREEN에 입력하기 전/후에 작동.
  • START-OF-SELECTION : 사용자가 실행 버튼(F8)을 클릭하면 DB에서 값을 읽어온다. <SELECT>
  • END-OF-SELECTION
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
*&---------------------------------------------------------------------*
*& Report ZCCC
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
 
INCLUDE ZCCCTOP                                 .    " Global Data
INCLUDE ZCCCSCR.
INCLUDE ZCCCO01                                 .  " PBO-Modules
INCLUDE ZCCCI01                                 .  " PAI-Modules
INCLUDE ZCCCF01                                 .  " FORM-Routines
 
 
*----------------------------------------------------------------------*
 " INITIALIZATION (DEFAULT VALUE)
*----------------------------------------------------------------------*
 
INITIALIZATION.
   PERFORM ATTACHED_DOC.
 
 
*----------------------------------------------------------------------*
   " AT SELECTION-SCREEN (SCREEN EVENT)
* 회면에서 값 검색
*----------------------------------------------------------------------*
*초기화된 p_b에  회사코드 선언.....  AT SELECTION-SCREEN -> 변수지정
 
AT SELECTION-SCREEN.
  PERFORM AT_SELECTION_SCREEN.
 
   AT SELECTION-SCREEN OUTPUT.
  PERFORM AT_SELECTION_SCREEN_OUTPUT.
 
*----------------------------------------------------------------------*
   " START-OF-SELECTION (READ AN ENTRY)
*----------------------------------------------------------------------*
 
*실행 구문
 START-OF-SELECTION.
   PERFORM start_of_selection.
   
*----------------------------------------------------------------------*
   " END-OF-SELECTION (DISPLAY)
*----------------------------------------------------------------------*
 END-OF-SELECTION.
   PERFORM end_of_selection.
cs

1. INITIALIZATION : 이벤트 중 프로그램을 실행했을 때 가장 먼저 수행.

  • SELECTION-SCREEN이 조회되기 전에 작동하므로 변수에 초깃값을 지정 할 때 사용.

 

2. AT SELECTION-SCREEN : SELECTION-SCREEN에서 Input Field의 값이 번동되었을 때 실행되는 이벤트.

  • INITIALIZATION 과 START-OF-SELECTION 사이에 수행, 사용자 액션에 대해 반응하고, 화면 필드 조절
    1. AT SELECTION-SCREEN ON <FIELD>
      • SELECTION-SCREEN에서 전달되는 특정 필드에 대해 수행, 오류가 발생하면 해당 필드는 다시 값을 입력받도록 커서가 위치한다.
    2. AT SELECTION-SCREEN OUTPUT
      • 화면의 LAYOUT 속성 설정
    3. AT SELECTION-SCREEN ON END OF
      • 하한/ 상한값, 미입력 값 등을 체크할 때 사용

3. START-OF-SELECTION : SQL 수행, CLEAR, REFRESH 구문 등 로직 상의 준비 작업 후 수행.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
*&---------------------------------------------------------------------*
*&      Form  START_OF_SELECTION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
********** 테이블 초기화
FORM start_of_selection .
 
  REFRESH gt_outtab.
 
*--------------------------------------------------------------------*
  "  구분."
*--------------------------------------------------------------------*
****** 체크 박스의 파라미터 저장
  PERFORM set_sec_class.
 
*--------------------------------------------------------------------*
  " 보유원장 + 관리 원장 내역 추출."
*--------------------------------------------------------------------*
 
******** sql로 파라미터에 해당하는 값 추출
 PERFORM get_data_from_tab.
 
*--------------------------------------------------------------------*
  " 출력 데이터 구성."
*--------------------------------------------------------------------*
  PERFORM arrage_output_data.
 
ENDFORM.
cs

 

4. END-OF-SELECTION 실행 환경에서 호출되는 마지막 이벤트로서

  • SELECT 구문에서 조회 후 데이터를 Write 하기 전에 수행, 인터널 테이블에 저장된 데이터를 변형하는 작업 수행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
*&---------------------------------------------------------------------*
*& Form end_of_selection
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM end_of_selection .
 
 
***** call_screen -> 공통모듈
 
 PERFORM call_screen TABLES gt_outtab
                       USING '0100'.
 
ENDFORM.
cs
728x90

'SAP_ABAP' 카테고리의 다른 글

SAP_ABAP Module Pool Program(모듈 풀)_1  (0) 2021.10.26
SAP_ABAP Calling Program  (0) 2021.10.26
SAP_ABAP 구현  (0) 2021.10.25
SAP/ABAP - Report program 만들기  (0) 2021.10.25
1. Easy ABAP 2.0  (0) 2021.10.05