๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง‘‍๐Ÿ’ผ SAP/ABAP

[SAP ABAP] ํ”„๋กœ๊ทธ๋žจ(๋ ˆํฌํŠธ) ์‹คํ–‰ ์ˆœ์„œ

by Jay Din 2025. 2. 6.
728x90
๋ฐ˜์‘ํ˜•

1. SAP ABAP ํ”„๋กœ๊ทธ๋žจ(๋ ˆํฌํŠธ) ์‹คํ–‰ ์ˆœ์„œ

SAP ABAP์—์„œ ๋ ˆํฌํŠธ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ˆœ์„œ๋Š” ํŠน์ • ์ด๋ฒคํŠธ ๋ธ”๋ก์— ๋”ฐ๋ผ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

SAP ๋ ˆํฌํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์„ ์–ธ๋ถ€ → ์ดˆ๊ธฐํ™” → ๋ฐ์ดํ„ฐ ์„ ํƒ → ํ™”๋ฉด ์ถœ๋ ฅ์˜ ํ๋ฆ„์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ํŠน์ • ์ด๋ฒคํŠธ ๋ธ”๋ก(`START-OF-SELECTION`, `END-OF-SELECTION` ๋“ฑ)์„ ๋”ฐ๋ผ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 

2. ๋ ˆํฌํŠธ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ˆœ์„œ (์ด๋ฒคํŠธ ๋ธ”๋ก ๊ธฐ์ค€)

SAP ABAP์˜ ์‹คํ–‰ ํ๋ฆ„์„ ์ด๋ฒคํŠธ ๋ธ”๋ก(Event Blocks) ์ˆœ์„œ๋กœ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ˆœ์„œ์ด๋ฒคํŠธ ๋ธ”๋ก์„ค๋ช…

์ˆœ์„œ ์ด๋ฒคํŠธ ๋ธ”๋ก ์„ค๋ช…
1 ๋ฐ์ดํ„ฐ ์„ ์–ธ๋ถ€ `DATA`, `TABLES`, `TYPES` ๋“ฑ์„ ์„ ์–ธ
2 INITIALIZATION ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •
3 AT SELECTION-SCREEN ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ฒดํฌ ๋ฐ ๋ณ€๊ฒฝ
4 START-OF-SELECTION ๋ณธ๊ฒฉ์ ์ธ ๋ฉ”์ธ ๋กœ์ง ์‹คํ–‰ (๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ)
5 END-OF-SELECTION ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚œ ํ›„ ํ›„์ฒ˜๋ฆฌ
6 TOP-OF-PAGE ์ถœ๋ ฅํ•  ๋ฆฌ์ŠคํŠธ์˜ ํ—ค๋”๋ฅผ ์ •์˜
7 NEW-PAGE ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑ
8 TOP-OF-PAGE DURING LINE-SELECTION ์‚ฌ์šฉ์ž ์•ก์…˜(ํด๋ฆญ) ํ›„ ๋ฆฌ์ŠคํŠธ ํ—ค๋” ์ฒ˜๋ฆฌ
9 AT LINE-SELECTION ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋ผ์ธ์„ ํด๋ฆญํ•˜๋ฉด ์‹คํ–‰
10 AT USER-COMMAND ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์—์„œ ๋ฒ„ํŠผ ๋“ฑ์„ ํด๋ฆญํ•˜๋ฉด ์‹คํ–‰
11 END-OF-PAGE ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€ ๋ถ€๋ถ„ ์ •์˜

 

3. SAP ABAP ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ˆœ์„œ ์˜ˆ์ œ

์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ํ๋ฆ„์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DATA: GV_NAME TYPE STRING,
      GV_AGE  TYPE I.

PARAMETERS: P_NAME TYPE STRING DEFAULT 'ํ™๊ธธ๋™',
            P_AGE  TYPE I DEFAULT 30.

* 1๏ธ. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •
INITIALIZATION.
  WRITE: / 'INITIALIZATION ์‹คํ–‰: ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • ์™„๋ฃŒ.'.

* 2๏ธ.์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ฒดํฌ
AT SELECTION-SCREEN.
  IF P_AGE < 0.
    MESSAGE '๋‚˜์ด๋Š” 0 ์ด์ƒ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.' TYPE 'E'.
  ENDIF.

* 3๏ธ.๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (MAIN LOGIC)
START-OF-SELECTION.
  GV_NAME = P_NAME.
  GV_AGE = P_AGE.
  WRITE: / 'START-OF-SELECTION ์‹คํ–‰: ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ค‘...'.

* 4๏ธ.์ถœ๋ ฅ ๋ฆฌ์ŠคํŠธ ํ—ค๋”
TOP-OF-PAGE.
  WRITE: / '======= ๋ณด๊ณ ์„œ ํ—ค๋” ======='.

* 5๏ธ.๊ฒฐ๊ณผ ์ถœ๋ ฅ
END-OF-SELECTION.
  WRITE: / 'END-OF-SELECTION ์‹คํ–‰: ๊ฒฐ๊ณผ ์ถœ๋ ฅ'.
  WRITE: / '์ด๋ฆ„:', GV_NAME.
  WRITE: / '๋‚˜์ด:', GV_AGE.

* 6.์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ํ–‰์„ ํด๋ฆญํ•˜๋ฉด ์‹คํ–‰
AT LINE-SELECTION.
  WRITE: / 'AT LINE-SELECTION ์‹คํ–‰: ์ƒ์„ธ ๋ณด๊ธฐ ์ถœ๋ ฅ'.

 

ํŒŒ๋ผ๋ฏธํ„ฐ ์ž…๋ ฅ ํ™”๋ฉด

 

์‹คํ–‰ ๊ฒฐ๊ณผ ํ™”๋ฉด

 

4. ์‹คํ–‰ ์ˆœ์„œ ๋ถ„์„

1. ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ์ž…๋ ฅ (PARAMETERS)

PARAMETERS: P_NAME TYPE STRING DEFAULT 'ํ™๊ธธ๋™',
            P_AGE  TYPE I DEFAULT 30.

 

2. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ (INITIALIZATION)

  • `INITIALIZATION`๋ธ”๋ก์ด ์‹คํ–‰๋˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

 

3. ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’ ์ฒดํฌ (AT SELECTION-SCREEN)

  • `SELECTION SCREEN`์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚˜์ด๊ฐ€ `0`๋ณด๋‹ค ์ž‘์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

 

4. ๋ฉ”์ธ ๋กœ์ง ์‹คํ–‰ (START-OF-SELECTION)

  • ๋ณธ๊ฒฉ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋กœ์ง์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
START-OF-SELECTION ์‹คํ–‰: ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ค‘...

 

5. ๋ฆฌ์ŠคํŠธ ํ—ค๋” ์ถœ๋ ฅ (TOP-OF-PAGE)

  • ์ถœ๋ ฅ ๋ฆฌ์ŠคํŠธ์˜ ํ—ค๋”๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
======= ๋ณด๊ณ ์„œ ํ—ค๋” =======

 

6. ์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ (END-OF-SELECTION)

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
END-OF-SELECTION ์‹คํ–‰: ๊ฒฐ๊ณผ ์ถœ๋ ฅ
์ด๋ฆ„: ํ™๊ธธ๋™
๋‚˜์ด: 30

 

7. ์‚ฌ์šฉ์ž ํŠน์ • ๋ฐ์ดํ„ฐ ํด๋ฆญ (AT LINE-SELECTION)

  • ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 

 

 

728x90
๋ฐ˜์‘ํ˜•