λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] CREATE OBJECT G_DOCKING_CONTAINER1 도킹 μ»¨ν…Œμ΄λ„ˆ μ‚¬μš© 방법

by Jay Din 2025. 2. 28.
728x90
λ°˜μ‘ν˜•

1. Docking Containerλž€?

Docking Container (`CL_GUI_DOCKING_CONTANINER`)λŠ” SAP GUI ν™”λ©΄(Dynpro) λ‚΄μ—μ„œ νŠΉμ • μ˜μ—­μ„ μ°¨μ§€ν•˜λ„λ‘ μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•˜λŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€.

Docking Container μ•ˆμ—λŠ” ALV(Grid) 같은 UI μš”μ†Œλ₯Ό μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

1) Docking Container의 νŠΉμ§•

  • SAP ν™”λ©΄μ˜ μ™Όμͺ½, 였λ₯Έμͺ½, μœ„, μ•„λž˜μ— κ³ μ •λœ UI μ˜μ—­μ„ λ§Œλ“€ 수 있음
  • ALV 같은 κ·Έλ¦¬λ“œλ‚˜ λ‹€λ₯Έ UI μš”μ†Œλ₯Ό SAP ν™”λ©΄ μ•ˆμ— μžμ—°μŠ€λŸ½κ²Œ 포함 κ°€λŠ₯
  • μ‚¬μš©μžκ°€ 크기λ₯Ό μ‘°μ •ν•  μˆ˜λ„ 있음

2) Docking Container μ—†μœΌλ©΄?

  • ALVλ₯Ό νŒμ—…μœΌλ‘œλ§Œ λ„μšΈ 수 있음
  • SAP ν™”λ©΄ λ‚΄μ—μ„œ κ³ μ •λœ μœ„μΉ˜μ— ν‘œμ‹œν•  수 μ—†μŒ
  • `CL_GUI_ALV_GRID` 같은 UI μš”μ†Œλ₯Ό μ μš©ν•  μœ„μΉ˜κ°€ μ—†μŒ

 

2. G_DOCKING_CONTAINER1 μ½”λ“œ 뢄석

 
CREATE OBJECT G_DOCKING_CONTAINER1
  EXPORTING
    STYLE     = CL_GUI_CONTROL=>WS_CHILD
    REPID     = SY-CPROG
    DYNNR     = SY-DYNNR
    SIDE      = G_DOCKING_CONTAINER1->DOCK_AT_LEFT
    LIFETIME  = CL_GUI_CONTROL=>LIFETIME_IMODE
    EXTENSION = 3000
  EXCEPTIONS
    OTHERS    = 1.

 

1) `CREATE OBJECT G_DOCKING_CONTAINER1`

  • ` G_DOCKING_CONTAINER1` μ΄λΌλŠ” 도킹 μ»¨ν…Œμ΄λ„ˆ 객체λ₯Ό 생성
  • SAP GUI ν™”λ©΄μ˜ νŠΉμ • μ˜μ—­μ— UI μš”μ†Œ(ALV λ“±)λ₯Ό λ°°μΉ˜ν•  수 μžˆλ„λ‘ μ„€μ •
  • ` CL_GUI_DOCKING_CONTAINER` 클래슀λ₯Ό 기반으둜 μž‘λ™

βœ… λ§Œμ•½ 이 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ§€ μ•ŠμœΌλ©΄?

  • SAP 화면에 ALV 같은 UIλ₯Ό κ³ μ •λœ μœ„μΉ˜μ— ν‘œμ‹œν•  수 μ—†μŒ
  • SAP ν™”λ©΄ μ•ˆμ΄ μ•„λ‹Œ, νŒμ—…(ALV Grid Display)으둜만 ALVλ₯Ό λ„μšΈ 수 있음

 

2) EXPORTING νŒŒλΌλ―Έν„° 상세 μ„€λͺ…

νŒŒλΌλ―Έν„° μ„€λͺ… 예제 κ°’
STYLE μ»¨ν…Œμ΄λ„ˆ μŠ€νƒ€μΌ μ„€μ • CL_GUI_CONTROL=>WS_CHILD (μžμ‹ 컨트둀)
REPID ν”„λ‘œκ·Έλž¨ 이름 SY-CPROG (ν˜„μž¬ ν”„λ‘œκ·Έλž¨)
DYNNR ν™”λ©΄ 번호 (Dynpro) SY-DYNNR (ν˜„μž¬ Dynpro ν™”λ©΄)
SIDE 도킹 μœ„μΉ˜ μ„€μ • G_DOCKING_CONTAINER1->DOCK_AT_LEFT
LIFETIME μ»¨ν…Œμ΄λ„ˆμ˜ 수λͺ… CL_GUI_CONTROL=>LIFETIME_IMODE
EXTENSION μ»¨ν…Œμ΄λ„ˆ 크기 (ν”½μ…€) 3000

 

    1. `STYLE = CL_GUI_CONTROL=>WS_CHILD`
      • 도킹 μ»¨ν…Œμ΄λ„ˆμ˜ μŠ€νƒ€μΌμ„ μžμ‹ 컨트둀(WS_CHILD)둜 μ„€μ •
      • μ»¨ν…Œμ΄λ„ˆκ°€ 독립적인 κ°œμ²΄κ°€ μ•„λ‹Œ, SAP GUI ν™”λ©΄ λ‚΄μ—μ„œ λ™μž‘ν•˜λ„λ‘ 지정
      • 이 μ½”λ“œκ°€ μ—†μœΌλ©΄, μ»¨ν…Œμ΄λ„ˆκ°€ μ œλŒ€λ‘œ 보이지 μ•Šμ„ 수 있음.
    2. ` REPID = SY-CPROG`, ` DYNNR = SY-DYNNR`
      • ` REPID = SY-CPROG`: ν˜„μž¬ ν”„λ‘œκ·Έλž¨μ„ μ»¨ν…Œμ΄λ„ˆμ˜ λΆ€λͺ¨λ‘œ μ„€μ •
      • ` DYNNR = SY-DYNNR`: ν˜„μž¬ Dynpro(ν™”λ©΄ 번호)λ₯Ό μ»¨ν…Œμ΄λ„ˆκ°€ 속할 ν™”λ©΄μœΌλ‘œ μ„€μ •
      • 이 μ½”λ“œκ°€ μ—†μœΌλ©΄, μ»¨ν…Œμ΄λ„ˆλ₯Ό μ–΄λŠ 화면에 λ°°μΉ˜ν• μ§€ μ‹œμŠ€ν…œμ΄ λͺ¨λ¦„ → 였λ₯˜ λ°œμƒ κ°€λŠ₯!
    3. ` SIDE = G_DOCKING_CONTAINER1->DOCK_AT_LEFT`
      • μ»¨ν…Œμ΄λ„ˆλ₯Ό ν™”λ©΄μ˜ μ™Όμͺ½μ— 도킹
      • κ°€λŠ₯ν•œ κ°’:
        • `DOCK_AT_LEFT `→ μ™Όμͺ½
        • `DOCK_AT_RIGHT` → 였λ₯Έμͺ½
        • `DOCK_AT_TOP `→ μœ„μͺ½
        • `DOCK_AT_BOTTOM `→ μ•„λž˜μͺ½
      • 이 μ½”λ“œκ°€ μ—†μœΌλ©΄, κΈ°λ³Έκ°’μœΌλ‘œ 섀정됨 → νŠΉμ • μœ„μΉ˜λ₯Ό μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μ»¨ν…Œμ΄λ„ˆκ°€ ν™”λ©΄μ—μ„œ μ•ˆ 보일 μˆ˜λ„ 있음.
    4. ` LIFETIME = CL_GUI_CONTROL=>LIFETIME_IMODE`
      • μ»¨ν…Œμ΄λ„ˆκ°€ SAP μ„Έμ…˜μ΄ μ’…λ£Œλ  λ•Œ μžλ™ μ‚­μ œλ˜λ„λ‘ μ„€μ •
      • `LIFETIME_IMODE` → μ„Έμ…˜μ΄ λλ‚˜λ©΄ μ»¨ν…Œμ΄λ„ˆλ„ μ‚­μ œλ¨
      • μ΄μ½”λ“œκ°€ μ—†μœΌλ©΄, SAP μ„Έμ…˜μ΄ μ’…λ£Œλœ 후에도 객체가 λ©”λͺ¨λ¦¬μ— λ‚¨μ•„μžˆμ„ κ°€λŠ₯성이 있음.
    5. `EXTENSION = 3000`
      • μ»¨ν…Œμ΄λ„ˆμ˜ 크기(κ°€λ‘œ λ„ˆλΉ„)λ₯Ό 3000 ν”½μ…€λ‘œ μ„€μ •
      • 값이 클수둝 μ»¨ν…Œμ΄λ„ˆμ˜ 크기가 컀짐.
      • μ΄μ½”λ“œκ°€ μ—†μœΌλ©΄,κΈ°λ³Έκ°’μœΌλ‘œ μž‘μ€ 크기둜 생성됨 → UIκ°€ μ œλŒ€λ‘œ 보이지 μ•Šμ„ μˆ˜λ„ 있음.

 

3. EXCEPTIONS 처리

EXCEPTIONS
  OTHERS = 1.

 

  • μ˜ˆμ™Έ(Exception)κ°€ λ°œμƒν•˜λ©΄ OTHERS = 1. → 무쑰건 1둜 μ„€μ •

 

 

 

 

728x90
λ°˜μ‘ν˜•