๊ด€๋ฆฌ ๋ฉ”๋‰ด

CS Student’s SAP&Tech Journey๐Ÿ’ซ

[SAP] ALV (5) ์‚ฌ์šฉ์ž ์ •์˜ ์ปฌ๋Ÿผ ๊ตฌ์„ฑ - Field Catalog ์„ค์ • ๋ฐ ์•„์ด์ฝ˜ ์ถœ๋ ฅํ•˜๊ธฐ ๋ณธ๋ฌธ

SAP/ALV

[SAP] ALV (5) ์‚ฌ์šฉ์ž ์ •์˜ ์ปฌ๋Ÿผ ๊ตฌ์„ฑ - Field Catalog ์„ค์ • ๋ฐ ์•„์ด์ฝ˜ ์ถœ๋ ฅํ•˜๊ธฐ

์ธํฌ๋งˆํ‹ฑ 2025. 3. 28. 15:43

SAP ALV๋ฅผ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ, ๋‹จ์ˆœํžˆ ๊ตฌ์กฐ์ฒด๋งŒ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” ์„ธ๋ถ€ ์ œ์–ด๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋งž์ถฐ ์ปฌ๋Ÿผ์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ์ปฌ๋Ÿผ์€ ์ˆจ๊ธฐ๊ณ  ์ƒˆ๋กœ์šด ์‹œ๊ฐ์  ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๊ฐ€ ๋ฐ”๋กœ Field Catalog์ž…๋‹ˆ๋‹ค. Field Catalog๋ฅผ ํ†ตํ•ด ๊ฐ ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ํƒ€์ž…, ํ‘œ์‹œ ์ˆœ์„œ, ์ถœ๋ ฅ ์—ฌ๋ถ€, ์ฐธ์กฐ ํ…Œ์ด๋ธ” ์ •๋ณด ๋“ฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด Field Catalog๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 


 


โœ… Field Catalog ์„ค์ • (์‚ฌ์šฉ์ž ์ •์˜ ์ปฌ๋Ÿผ)

Field Catalog๋Š” ALV ๊ฐ ํ•„๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋“ค์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ๋งˆ๋‹ค ์–ด๋–ค ํ˜•์‹, ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์–ด, ์‹ค๋ฌด์—์„œ๋Š” ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค.

ALV ํ•„๋“œ ๊ตฌ์„ฑ ๋ฐฉ์‹์€ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. I_STRUCTURE_NAME : ๊ตฌ์กฐ ์ด๋ฆ„๋งŒ ๋„˜๊ธฐ๋ฉด ์ž๋™์œผ๋กœ ํ•„๋“œ ๊ตฌ์„ฑ
2. I_STRUCTURE_NAME + IT_FIELDCATALOG : ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์— ์ผ๋ถ€ ํ•„๋“œ๋งŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ (๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋จ)
3. IT_FIELDCATALOG only : ์™„์ „ ์ปค์Šคํ…€ ํ˜•ํƒœ๋กœ ํ•„๋“œ ๊ตฌ์„ฑ

 

์‹ค์Šต์—์„œ๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐฉ์‹, ์ฆ‰ ๊ตฌ์กฐ ๊ธฐ๋ฐ˜ + Field Catalog ์ผ๋ถ€ ์ˆ˜์ • ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

โ–ถ TOP

DATA GT_FCAT TYPE lvc_t_fcat.
DATA GS_FCAT TYPE lvc_s_fcat.

Field Catalog ํƒ€์ž… ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

TYPES: BEGIN OF GTY_CONN,
  INCLUDE TYPE SDYN_CONN,
  LIGHT TYPE C LENGTH 1,
  LCOLOR TYPE C LENGTH 4,
  CARRNAME TYPE SCARR-CARRNAME, " ํ•ญ๊ณต์‚ฌ๋ช… "
  COUNTRYFR_T TYPE T005T-LANDX, " ์ถœ๋ฐœ ๊ตญ๊ฐ€ ํ…์ŠคํŠธ "
  COUNTRYTO_T TYPE T005T-LANDX, " ๋„์ฐฉ ๊ตญ๊ฐ€ ํ…์ŠคํŠธ "
  ICON_FTYPE TYPE ICON-ID " ์ „์„ธ๊ธฐ ์—ฌ๋ถ€ ์•„์ด์ฝ˜ "
END OF GTY_CONN.

DATA GT_CONN TYPE TABLE OF GTY_CONN.
DATA GS_CONN TYPE GTY_CONN.

์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

 

โ–ถ XXXXXO01(PBO) : Field Catalog ๊ตฌ์„ฑํ•˜๊ธฐ - ์ถœ๋ฐœ/๋„์ฐฉ ๊ตญ๊ฐ€ ํ…์ŠคํŠธ ์ถ”๊ฐ€

* ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ 2๊ฐœ ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ALV์—๊ฒŒ ์•Œ๋ ค์คŒ
* ์ •๋ณด: FIELDNAME, REF_TABLE, REF_FIELD
  CLEAR gs_fcat.
  gs_fcat-fieldname = 'COUNTRYFR_T'. "์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋œ ์ด๋ฆ„.
  gs_fcat-ref_table = 'T005T'.  "ํ…์ŠคํŠธ ํ…Œ์ด๋ธ”
  gs_fcat-ref_field = 'LANDX'.  "๊ตญ๊ฐ€ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ปฌ๋Ÿผ ์ด๋ฆ„
  gs_fcat-col_pos   = 5.        "4๋ฒˆ์งธ ์ปฌ๋Ÿผ ์œ„์น˜์— ์‚ฝ์ž…
  APPEND gs_fcat TO gt_fcat.

  CLEAR gs_fcat.
  gs_fcat-fieldname = 'COUNTRYTO_T'. "์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋œ ์ด๋ฆ„.
  gs_fcat-ref_table = 'T005T'.  "ํ…์ŠคํŠธ ํ…Œ์ด๋ธ”
  gs_fcat-ref_field = 'LANDX'.  "๊ตญ๊ฐ€ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ปฌ๋Ÿผ ์ด๋ฆ„
  gs_fcat-col_pos   = 9.        "8๋ฒˆ์งธ ์ปฌ๋Ÿผ ์œ„์น˜์— ์‚ฝ์ž…
  APPEND gs_fcat TO gt_fcat.

 

โ–ถ ์ถœ๋ฐœ/๋„์ฐฉ ๊ตญ๊ฐ€์— ๋Œ€ํ•œ ํ…์ŠคํŠธ ์ทจ๋“ํ•˜๊ธฐ

LOOP AT gt_conn INTO gs_conn.

    " ์ถœ๋ฐœ/๋„์ฐฉ ๊ตญ๊ฐ€์— ๋Œ€ํ•œ ํ…์ŠคํŠธ ์ทจ๋“ํ•˜๊ธฐ (ํ•จ์ˆ˜: DR_GET_COUNTRY_NAME)
    CALL FUNCTION 'DR_GET_COUNTRY_NAME'
      EXPORTING
        country = gs_conn-countryfr
*       LANGUAGE       = SY-LANGU
      IMPORTING
        name    = gs_conn-countryfr_t.
    CALL FUNCTION 'DR_GET_COUNTRY_NAME'
      EXPORTING
        country = gs_conn-countryto
*       LANGUAGE       = SY-LANGU
      IMPORTING
        name    = gs_conn-countryto_t.


    MODIFY gt_conn FROM gs_conn
     TRANSPORTING light lcolor countryfr_t countryto_t. " ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์—…๋ฐ์ดํŠธ ์žŠ์ง€ ๋ง๊ธฐ!
  
  ENDLOOP.

 

โ–ถ  SET_TABLE_FOR_FIRST_DISPLAY ์—ฐ๊ฒฐ

FORM display_alv .
  CALL METHOD go_alv->set_table_for_first_display
    EXPORTING
      i_structure_name = 'SDYN_CONN'
     is_variant       = GS_VARIANT
     i_save           = GV_SAVE
     is_layout        = GS_LAYOUT
     it_toolbar_excluding          = GT_EXCLUDED
    CHANGING
      it_outtab        = gt_conn
      it_fieldcatalog  = gt_fcat. "์ถ”๊ฐ€"

ENDFORM.

 

โ–ถ ํ•„๋“œ ์ด๋ฆ„ ์ ์šฉ๋œ ๊ฒƒ ํ™•์ธํ•˜๊ธฐ

 

 

โœ… ์ „์„ธ๊ธฐ ์•„์ด์ฝ˜์œผ๋กœ ๋Œ€์ฒด ์ถœ๋ ฅํ•˜๊ธฐ

 

โ–ถ TOP

TYPES: BEGIN OF GTY_CONN.
  INCLUDE TYPE SDYN_CONN.
  TYPES LIGHT TYPE C LENGTH 1.

  TYPES LCOLOR TYPE C LENGTH 4.

  TYPES: COUNTRYFR_T TYPE T005T-landx, 
  COUNTRYTO_T TYPE T005T-landx. 
  
  " ์ „์„ธ๊ธฐ ์ปฌ๋Ÿผ์„ ์•„์ด์ฝ˜์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ์ปฌ๋Ÿผ ์ถ”๊ฐ€ "
  TYPES ICON_FTYPE TYPE ICON-id.

TYPES: END OF GTY_CONN.

์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

 

โ–ถ XXXXXO01(PBO) : Field Catalog  ์•„์ด์ฝ˜ ๊ตฌ์„ฑํ•˜๊ธฐ

" ๊ธฐ์กด ์ „์„ธ๊ธฐ ์ปฌ๋Ÿผ ์ˆจ๊ธฐ๊ธฐ
  CLEAR gs_fcat.
  gs_fcat-fieldname = 'FLTYPE'. "์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋œ ์ด๋ฆ„.
  gs_fcat-no_out = 'X'.
  APPEND gs_fcat TO gt_fcat.

  " ์‹ ๊ทœ๋กœ ์ถ”๊ฐ€ํ•œ ์•„์ด์ฝ˜ ์ปฌ๋Ÿผ ์‚ฝ์ž…ํ•˜๊ธฐ 5๋ฒˆ์งธ ์œ„์น˜
  CLEAR gs_fcat.
  gs_fcat-fieldname = 'ICON_FTYPE'. "์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋œ ์ด๋ฆ„.
*  gs_fcat-no_out = 'X'.
  gs_fcat-col_pos = 5.
  gs_fcat-coltext = 'Charter'.
  APPEND gs_fcat TO gt_fcat.

 

โ–ถ  SET_TABLE_FOR_FIRST_DISPLAY ์—ฐ๊ฒฐ

" ์ „์„ธ๊ธฐ(Charter Flight)์ธ ๊ฒฝ์šฐ ๋…ธ๋ž€์ƒ‰์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ
    IF gs_conn-fltype = 'X'.
      gs_conn-lcolor = 'C300'.
      " ์•„์ด์ฝ˜ ์„ค์ •
      gs_conn-icon_ftype = icon_checked.
    ENDIF.
    
    MODIFY gt_conn FROM gs_conn
     TRANSPORTING light lcolor countryfr_t countryto_t icon_ftype.

 

โ–ถ ์•„์ด์ฝ˜ ๋ณ€๊ฒฝ ํ™•์ธ