๐ง๐ผ SAP/ABAP
[SAP ABAP] Docking Container๋? ๋ํน ์ปจํ ์ด๋ ์ฌ์ฉ ๋ฐฉ๋ฒ
Jay Din
2025. 2. 28. 19:13
728x90
๋ฐ์ํ
1๏ธโฃ Docking Container๋?
๐ฆ ํด๋์ค๋ช : CL_GUI_DOCKING_CONTAINER
- Docking Container ๋ SAP GUI ํ๋ฉด(Dynpro) ๋ด์์ ํน์ ์์ญ์ ์ฐจ์งํ๋๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ ํด๋์ค์ ๋๋ค.
- Docking Container ์์๋ ALV(Grid) ๊ฐ์ UI ์์๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค.
๐น ์ฃผ์ ํน์ง
- SAP ํ๋ฉด์ ์ข/์ฐ/์/ํ ์ํ๋ ์์น์ ๋ํน ๊ฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ํฌ๊ธฐ๋ฅผ ์ง์ ์กฐ์ ํ ์ ์์ (Resizable)
- SAP GUI ํ๋ฉด ๋ด์์ ALV๋ฅผ ๊ณ ์ ํ์ผ๋ก ์ถ๋ ฅํ ์ ์์
- ๊ฐ์ ํ๋ฉด ๋ด ์ฌ๋ฌ ๊ฐ Docking Container๋ ์์ฑ ๊ฐ๋ฅ
2๏ธโฃ ์ Docking Container๋ฅผ ์ฌ์ฉํ๋๊ฐ?
- ํ ํ๋ฉด์์ ์ฌ๋ฌ ๋ฐ์ดํฐ ๋น๊ต๋ฅผ ํด์ผ ํ ๋
- ALV๋ฅผ SAP GUI ํ๋ฉด ์์ ๊ณ ์ ํ ๋ ์ด์์์ผ๋ก ๋ณด๊ณ ์ถ์ ๋
- ์ฌ์ฉ์๊ฐ ALV ํฌ๊ธฐ๋ฅผ ์ง์ ์กฐ์ ํ๋๋ก ๋ง๋ค๊ณ ์ถ์ ๋
- ๋ฉ์ธ ํ๋ฉด ๋ด์ ๋ฐ์ดํฐ ์์ญ๊ณผ ์ปจํธ๋กค ์์ญ์ ๊ตฌ๋ถํ๊ณ ์ถ์ ๋
3๏ธโฃ Docking Container์ ์๋ ์๋ฆฌ
Docking Container๋ ํ๋ฉด์ ๋น ์ปจํ ์ด๋ ๊ณต๊ฐ์ ๋ง๋ญ๋๋ค.
์ด ๊ณต๊ฐ ์์ ALV Grid, Text Editor, Custom Control ๋ฑ์ ์ฌ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
SAP๋ Docking Container์ ๋ถ๋ชจ๋ฅผ ํ์ฌ ํ๋ก๊ทธ๋จ/ํ๋ฉด์ผ๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์
์ด๋ค Dynpro์์ ์คํ๋ ์ง ๋ฐ๋์ ์๋ ค์ค์ผ ํฉ๋๋ค.
4๏ธโฃ ์ฝ๋ ์์ธ ์ค๋ช
๐ Docking Container ์์ฑ
DATA: G_DOCKING_CONTAINER1 TYPE REF TO CL_GUI_DOCKING_CONTAINER.
ํญ๋ชฉ | ์ค๋ช |
TYPE REF TO | ์ฐธ์กฐ ๋ณ์๋ก ์ ์ธํ๋ค๋ ์๋ฏธ (ํด๋์ค ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํด) |
CL_GUI_DOCKING_CONTAINER | SAP GUI์ ๋ํน ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ํ์ค ํด๋์ค |
*&---------------------------------------------------------------------*
*& Form CREATE_DOCKING_CONTAINER
*&---------------------------------------------------------------------*
* text : ALV๋ฅผ ๋์ธ Docking Container ์์ฑ
*----------------------------------------------------------------------*
FORM CREATE_DOCKING_CONTAINER .
" Create ALV
CREATE OBJECT G_DOCKING_CONTAINER1
EXPORTING
REPID = SY-REPID " ์ปจํ
์ด๋๊ฐ ์ํ ํ๋ก๊ทธ๋จ๋ช
DYNNR = '0100' " ์ปจํ
์ด๋๊ฐ ์ํ ์คํฌ๋ฆฐ ๋ฒํธ.
SIDE = G_DOCKING_CONTAINER1->DOCK_AT_LEFT " ํ๋ฉด์ ์ผ์ชฝ์ ๋ถ์ด๊ฒ ๋ค
EXTENSION = 3000
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6.
IF SY-SUBRC <> 0.
MESSAGE 'Docking Container ์์ฑ ์คํจ' TYPE 'E'.
ENDIF.
ENDFORM. " CREATE_DOCKING_CONTAINER
ํ๋ผ๋ฏธํฐ | ์ค๋ช |
STYLE | ์์ ์ปจํธ๋กค(WS_CHILD), SAP GUI ์์์ ๋์ |
REPID | ํ์ฌ ํ๋ก๊ทธ๋จ ์ด๋ฆ |
DYNNR | ํ๋ฉด ๋ฒํธ(Dynpro) |
SIDE | ๋ํน ์์น (์ข์ธก, ์ฐ์ธก, ์๋จ, ํ๋จ) |
LIFETIME | ์ธ์ ์ด ์ข ๋ฃ๋ ๋ ๊ฐ์ฒด๋ ํจ๊ป ์ญ์ |
EXTENSION | ์ปจํ ์ด๋ ํฌ๊ธฐ (ํฝ์ ๋จ์) |
- `STYLE = CL_GUI_CONTROL=>WS_CHILD`
- ๋ํน ์ปจํ ์ด๋์ ์คํ์ผ์ ์์ ์ปจํธ๋กค(WS_CHILD)๋ก ์ค์
- ์ปจํ ์ด๋๊ฐ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด๊ฐ ์๋, SAP GUI ํ๋ฉด ๋ด์์ ๋์ํ๋๋ก ์ง์
- ์ด ์ฝ๋๊ฐ ์์ผ๋ฉด, ์ปจํ ์ด๋๊ฐ ์ ๋๋ก ๋ณด์ด์ง ์์ ์ ์์.
- ` REPID = SY-CPROG`, ` DYNNR = SY-DYNNR`
- ` REPID = SY-CPROG`: ํ์ฌ ํ๋ก๊ทธ๋จ์ ์ปจํ ์ด๋์ ๋ถ๋ชจ๋ก ์ค์
- ` DYNNR = SY-DYNNR`: ํ์ฌ Dynpro(ํ๋ฉด ๋ฒํธ)๋ฅผ ์ปจํ ์ด๋๊ฐ ์ํ ํ๋ฉด์ผ๋ก ์ค์
- ์ด ์ฝ๋๊ฐ ์์ผ๋ฉด, ์ปจํ ์ด๋๋ฅผ ์ด๋ ํ๋ฉด์ ๋ฐฐ์นํ ์ง ์์คํ ์ด ๋ชจ๋ฆ → ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ!
- ` SIDE = G_DOCKING_CONTAINER1->DOCK_AT_LEFT`
- ์ปจํ ์ด๋๋ฅผ ํ๋ฉด์ ์ผ์ชฝ์ ๋ํน
- ๊ฐ๋ฅํ ๊ฐ:
- `DOCK_AT_LEFT `→ ์ผ์ชฝ
- `DOCK_AT_RIGHT` → ์ค๋ฅธ์ชฝ
- `DOCK_AT_TOP `→ ์์ชฝ
- `DOCK_AT_BOTTOM `→ ์๋์ชฝ
- ์ด ์ฝ๋๊ฐ ์์ผ๋ฉด, ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ๋จ → ํน์ ์์น๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ์ปจํ ์ด๋๊ฐ ํ๋ฉด์์ ์ ๋ณด์ผ ์๋ ์์.
- ` LIFETIME = CL_GUI_CONTROL=>LIFETIME_IMODE`
- ์ปจํ ์ด๋๊ฐ SAP ์ธ์ ์ด ์ข ๋ฃ๋ ๋ ์๋ ์ญ์ ๋๋๋ก ์ค์
- `LIFETIME_IMODE` → ์ธ์ ์ด ๋๋๋ฉด ์ปจํ ์ด๋๋ ์ญ์ ๋จ
- ์ด ์ฝ๋๊ฐ ์์ผ๋ฉด, SAP ์ธ์ ์ด ์ข ๋ฃ๋ ํ์๋ ๊ฐ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์์ ๊ฐ๋ฅ์ฑ์ด ์์.
- `EXTENSION = 3000`
- ์ปจํ ์ด๋์ ํฌ๊ธฐ(๊ฐ๋ก ๋๋น)๋ฅผ 3000 ํฝ์ ๋ก ์ค์
- ๊ฐ์ด ํด์๋ก ์ปจํ ์ด๋์ ํฌ๊ธฐ๊ฐ ์ปค์ง.
- ์ด ์ฝ๋๊ฐ ์์ผ๋ฉด,๊ธฐ๋ณธ๊ฐ์ผ๋ก ์์ ํฌ๊ธฐ๋ก ์์ฑ๋จ → UI๊ฐ ์ ๋๋ก ๋ณด์ด์ง ์์ ์๋ ์์.
- EXCEPTIONS ์ฒ๋ฆฌ
EXCEPTIONS
OTHERS = 1.
- ์์ธ(Exception)๊ฐ ๋ฐ์ํ๋ฉด OTHERS = 1. → ๋ฌด์กฐ๊ฑด 1๋ก ์ค์
5๏ธโฃ Docking Container์ ๋ผ์ดํ ์ฌ์ดํด
์ปจํธ๋กค ์์ฑ ์ LIFETIME ๊ฐ | ์๋ฏธ |
`CL_GUI_CONTROL=>LIFETIME_IMODE` | SAP ์ธ์ ์ข ๋ฃ ์ ์๋ ์ญ์ |
`CL_GUI_CONTROL=>LIFETIME_DEFAULT` | ๋ช ์์ ์ผ๋ก ์ญ์ ํ๊ฑฐ๋ Dynpro ์ข ๋ฃ ์ ์ญ์ |
- ๋ํน ์ปจํ ์ด๋๋ ๋ณดํต SAP ์ธ์ ๊ณผ ํจ๊ป ์์ง์ด๊ธฐ ๋๋ฌธ์ `LIFETIME_IMODE`๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค.
728x90
๋ฐ์ํ