SAP/์„œ๋ธŒ์Šคํฌ๋ฆฐ Subscreen

[SAP] ABAP Subscreen (2) ๋™์  Subscreen ํ˜ธ์ถœ ๋ฐฉ์‹ – ์กฐ๊ฑด์— ๋”ฐ๋ผ ์„œ๋ธŒ์Šคํฌ๋ฆฐ ์ „ํ™˜ํ•˜๊ธฐ

์ธํฌ๋งˆํ‹ฑ 2025. 3. 21. 18:00

์•ž์„œ ์‚ดํŽด๋ณธ ์ •์  Subscreen ๋ฐฉ์‹์€ ํ•ญ์ƒ ๊ณ ์ •๋œ Subscreen์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋ผ๋ฉด, ์ด๋ฒˆ CASE 2๋Š” ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ Subscreen์„ ๋™์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ํ•ญ๊ณต์‚ฌ ์ฝ”๋“œ(CARRID)์— ๋”ฐ๋ผ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ž…๋ ฅ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ํ™”๋ฉด์„ ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, Subscreen ๋ฒˆํ˜ธ๋ฅผ ๋ณ€์ˆ˜๋กœ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹์ด ํ•„์š”ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์˜ ์˜ˆ์ œ๋Š” ์•„๋ž˜ ํฌ์ŠคํŒ…๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

์ •์  Subscreen ๋ฐฉ์‹๊ณผ ๊ด€๋ จํ•œ ํฌ์ŠคํŒ… ๋ณด๋Ÿฌ๊ฐ€๊ธฐ โฌ‡๏ธ

 

[SAP] ABAP Subscreen (1) ๊ตฌ์กฐ์™€ ๊ธฐ๋ณธ ๊ฐœ๋… / ์ •์  Subscreen ํ˜ธ์ถœ ๋ฐฉ์‹ (๊ณ ์ •๋œ ์„œ๋ธŒ์Šคํฌ๋ฆฐ) ๊ตฌํ˜„ํ•˜๊ธฐ

SAP GUI์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ UI ๊ธฐ์ˆ ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ์ค‘ Subscreen์€ ๋ฉ”์ธ ํ™”๋ฉด ๋‚ด์— ์ž‘์€ ํ™”๋ฉด์„ ์‚ฝ์ž…ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜

informatik.tistory.com

 


 

 

โ“ Subscreen์ด๋ž€?

Subscreen(์„œ๋ธŒ์Šคํฌ๋ฆฐ)์€ SAP ABAP ๋‹ค์ด์–ผ๋กœ๊ทธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฉ”์ธ ํ™”๋ฉด(Screen 100) ๋‚ด์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ์ž‘์€ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฐ์€ ๋‹จ๋…์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋ฐ˜๋“œ์‹œ ๋ฉ”์ธ ์Šคํฌ๋ฆฐ ๋‚ด์—์„œ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๋ณ„๋„์˜ PBO/PAI(Process Before Output / Process After Input) ๋กœ์ง์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

โœ… Subscreen์˜ ํŠน์ง•

  • ๋ฉ”์ธ ์Šคํฌ๋ฆฐ ๋‚ด์—์„œ ๋ณ„๋„๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ, ๋ถ€๋ชจ ์Šคํฌ๋ฆฐ์— ์ข…์†๋จ.
  • ๋…๋ฆฝ์ ์ธ PBO(Process Before Output) / PAI(Process After Input) ๋กœ์ง์„ ๊ฐ€์ง.
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Œ (์˜ˆ: ์‚ฌ์šฉ์ž ์ž…๋ ฅ, ์กฐํšŒ ๊ฒฐ๊ณผ ํ‘œ์‹œ ๋“ฑ).
  • ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ, ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ Subscreen์„ ๋™์ ์œผ๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ.
  • OK_CODE ๋ฐ Application Toolbar๋Š” ๋ถ€๋ชจ ์Šคํฌ๋ฆฐ์—์„œ ์ œ์–ด๋จ (โœ”๏ธ์„œ๋ธŒ์Šคํฌ๋ฆฐ์—์„œ ์ง์ ‘ ์„ค์ • ๋ถˆ๊ฐ€).

 

๐Ÿ› ๏ธ Subscreen์ด ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ

  • SAP ํ‘œ์ค€ ํŠธ๋žœ์žญ์…˜์—์„œ ํ•˜๋‹จ์— ์œ„์น˜ํ•œ ํƒญ(Tab) ์˜์—ญ → ์˜ˆ: ME21N์˜ ํ•ญ๋ชฉ ์ž…๋ ฅ ์˜์—ญ
  • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ์ž…๋ ฅ ํ•„๋“œ ๊ทธ๋ฃน → ์˜ˆ: ๊ณ ๊ฐ ์ •๋ณด ์ž…๋ ฅ ์‹œ ‘๊ธฐ์—… ๊ณ ๊ฐ’๊ณผ ‘๊ฐœ์ธ ๊ณ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ž…๋ ฅ ํ•„๋“œ ์ œ๊ณต
  • ๋™์  UI ๊ตฌ์„ฑ → ์˜ˆ: ํŠน์ • ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ถ”๊ฐ€ ์ •๋ณด ์˜์—ญ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ

 

 

 


 

๐ŸŽฏ ๋™์  Subscreen ํ˜ธ์ถœ ๋ฐฉ์‹ – ์กฐ๊ฑด์— ๋”ฐ๋ผ ์„œ๋ธŒ์Šคํฌ๋ฆฐ ์ „ํ™˜ํ•˜๊ธฐ

Subscreen์€ ํ•˜๋‚˜์˜ ์˜์—ญ์— ๋‹ค์–‘ํ•œ ํ™”๋ฉด์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” UI ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.
๋™์  Subscreen์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด๋‚˜ ๋‚ด๋ถ€ ๊ฐ’์— ๋”ฐ๋ผ ์„œ๋ธŒ์Šคํฌ๋ฆฐ์„ ๋™์ ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

โœ… Subscreen ์กฐ๊ฑด ์ „ํ™˜ ๋ฐฉ์‹์˜ ํŠน์ง•

  • ๋™์ผํ•œ Subscreen Area์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ Subscreen ํ™”๋ฉด์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Œ
  • ์กฐ๊ฑด์— ๋”ฐ๋ผ GV_DYNNR ๊ฐ’์„ ๋ฐ”๊พธ์–ด ๋‹ค๋ฅธ ํ™”๋ฉด๋ฒˆํ˜ธ๋ฅผ ๋ณด์—ฌ์คŒ
  • ํƒญ ์ปจํŠธ๋กค ์—†์ด๋„ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™”๋ฉด ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • ์„œ๋ธŒ์Šคํฌ๋ฆฐ ๋ฒˆํ˜ธ๋Š” ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๋กœ ์ œ์–ดํ•ด์•ผ ํ•จ

 

์กฐ๊ฑด ์ „ํ™˜ ๋ฐฉ์‹์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ผ€์ด์Šค์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค:

  • ํ•ญ๊ณต์‚ฌ ์ฝ”๋“œ์— ๋”ฐ๋ผ ์ž…๋ ฅ ํ™”๋ฉด ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑ
  • ๊ณ ๊ฐ ์œ ํ˜•(๊ธฐ์—…/๊ฐœ์ธ)์— ๋”ฐ๋ผ ์ž…๋ ฅ ํ•„๋“œ ๋ถ„๊ธฐ
  • ๋ฉ”๋‰ด ์„ ํƒ๊ฐ’์— ๋”ฐ๋ผ ํ™”๋ฉด ๋‚ด์šฉ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ

 

 

1. Subscreen ์กฐ๊ฑด ๋ถ„๊ธฐ ์„ค๊ณ„ํ•˜๊ธฐ

  • SCREEN 100: ์‚ฌ์šฉ์ž๊ฐ€ CARRID๋ฅผ ์ž…๋ ฅ
  • SCREEN 200: CARRID์— ๋”ฐ๋ผ 0201 ๋˜๋Š” 0202๋ฅผ SUBSCREEN์œผ๋กœ ํ‘œ์‹œ
  • SUBSCREEN 0201, SUBSCREEN 0202: ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ž…๋ ฅ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ

๐Ÿ“Œ Subscreen์„ ์„ค๊ณ„ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ Screen Type : Subscreen์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž˜๋ชป ์„ค์ •ํ•˜๋ฉด ๋คํ”„๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ์›์ธ์ด ๋ฉ”์‹œ์ง€์— ๋ช…ํ™•ํžˆ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋‹ˆ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!

 

 

2. Subscreen ๊ตฌํ˜„ํ•˜๊ธฐ

๊ธฐ์กด ์˜ˆ์ œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์  Subscreen ํ˜ธ์ถœ ๋ฐฉ์‹์„ ๊ตฌ์„ฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Screen 100, 200, 201์€ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ํ›„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

โ–ถ  Screen 202 ์ƒ์„ฑํ•˜๊ธฐ

 

๐Ÿ“Œ ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜ ์ค€๋น„

์กฐ๊ฑด์— ๋”ฐ๋ฅธ ํ™”๋ฉด ์ „ํ™˜ Subscreen์€ Subscreen Area ์„ ์–ธ์„ ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

XXXXXTOP

" SUBSCREEN ํ˜ธ์ถœ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜
DATA GV_DYNNR TYPE SY-DYNNR VALUE '0201'.

 

โ–ถ ๋ฐ์ดํ„ฐ ํ‘œ์‹œ ๋ชจ๋“ˆ (Screen 200)

 MODULE SET_SUBSCREEN_NO.
  CALL SUBSCREEN SUB INCLUDING SY-CPROG GV_DYNNR.
  (CALL SUBSCREEN SUB INCLUDING 'SAPMZCARRIER1_07' '201'. ์ด ๋ฐฉ์‹์„ ์œ„์˜ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ ํ•œ ๊ฒƒ)

 

 

XXXXXO01 (PBO)

CARRID๊ฐ€ 'LH' ํ•ญ๊ณต์ด๊ฑฐ๋‚˜ 'JL' ํ•ญ๊ณต์ด๋ฉด 202 ํ™”๋ฉด์„ ๋‚˜๋จธ์ง€๋ฉด 201 ํ™”๋ฉด์„ ์„ค์ •ํ•˜๋„๋ก ์กฐ๊ฑด์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

MODULE set_subscreen_no OUTPUT.
  CASE SCARR-CARRID.
    WHEN 'LH' or 'JL'.
      GV_DYNNR = '0202'.
    WHEN OTHERS.
      GV_DYNNR = '0201'.
  ENDCASE.
ENDMODULE.

โœ… ๋ณดํ†ต SY-DYNNR ํƒ€์ž…์„ ๋”ฐ๋ฅด๋ฉฐ, PBO์—์„œ ๊ฐ’์ด ๋™์ ์œผ๋กœ ์„ค์ •๋˜๋ฏ€๋กœ VALUE๋Š” ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

" SUBSCREEN ํ˜ธ์ถœ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜
DATA GV_DYNNR TYPE SY-DYNNR.

 

 

3. Subscreen ์—ฐ๊ฒฐํ•˜๊ธฐ

๋ถ€๋ชจ ํ™”๋ฉด(SCREEN 200)์—์„œ CALL SUBSCREEN์œผ๋กœ ๋™์ ์œผ๋กœ ํ™”๋ฉด์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

PROCESS BEFORE OUTPUT.
  MODULE SET_SUBSCREEN_NO.
  CALL SUBSCREEN SUB INCLUDING SY-CPROG GV_DYNNR.

PROCESS AFTER INPUT.
  CALL SUBSCREEN SUB.
  MODULE USER_COMMAND_0200.

โœ”๏ธ PBO์™€ PAI ๋ชจ๋‘์—์„œ CALL SUBSCREEN ๊ตฌ๋ฌธ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ˜์˜ํ•˜๋ ค๋ฉด PAI์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๐Ÿ“Œ PBO & PAI ์‹คํ–‰ ํ๋ฆ„ ์ •๋ฆฌ

  1. SCREEN 100 → PBO ์‹คํ–‰
  2. CALL SUBSCREEN (์˜ˆ: '0202')์˜ PBO ์‹คํ–‰
  3. ๋‹ค์‹œ SCREEN 100 PBO
  4. SCREEN 100 PAI
  5. CALL SUBSCREEN PAI
  6. ๋ฉ”์ธ ํ™”๋ฉด์˜ USER_COMMAND ๋ชจ๋“ˆ ์‹คํ–‰

 

 

5. ๋™์ ์œผ๋กœ ์ „ํ™˜๋œ ํ™”๋ฉด ํ™•์ธํ•˜๊ธฐ

LH ํ•ญ๊ณต์‚ฌ๋‚˜ JL ํ•ญ๊ณต์‚ฌ๋ฅผ ์„ ํƒํ•˜๋ฉด SUBSCREEN 0202๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  ๊ทธ ์™ธ ํ•ญ๊ณต์‚ฌ๋Š” SUBSCREEN 0201์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.