๐ง๐ผ SAP/ABAP
[SAP ABAP] REUSE_ALV_FIELDCATALOG_MERGE ํจ์๋?
Jay Din
2025. 2. 28. 20:35
728x90
๋ฐ์ํ
1๏ธโฃ REUSE_ALV_FIELDCATALOG_MERGE ๋?
- ALV Grid์์ ์ฌ์ฉํ ํ๋ ๋ชฉ๋ก์ ์๋ ์์ฑํ๋ ํจ์
- ์ธํฐ๋ ํ ์ด๋ธ์ ํ๋ ์ ๋ณด(์ด๋ฆ, ๊ธธ์ด, ํ์ )๋ฅผ ์๋์ผ๋ก ALV์ ๋ง๊ฒ ๊ตฌ์ฑ
- SAP ํ์ค ALV ํจ์ (`REUSE_ALV_GRID_DISPLAY`)์ ํจ๊ผ ์ฌ์ฉ๋จ
๐กํ๋ ์นดํ๋ก๊ทธ(Field Catalog)๋?
ALV์์ ์ด๋ค ์ปฌ๋ผ์ ํ์ํ ์ง, ์ด๋ค ์์ฑ์ ๊ฐ์ง์ง(๊ธธ์ด, ์ ๋ ฌ, ์์, ํธ์ง ๊ฐ๋ฅ ์ฌ๋ถ ๋ฑ)๋ฅผ ์ ์ํ๋ ์ ๋ณด
2๏ธโฃ ์ฝ๋ ๋ถ์
CLEAR : G_FIELDCAT_H[], G_FIELDCAT_H.
- `G_FIRELDCAT_H` : ALV ํ๋์นดํ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๊ธ๋ก๋ฒ ์ธํฐ๋ ํ ์ด๋ธ.
- `CLEAR G_FIELDCAT_H[]` : ๊ธฐ์กด ํ๋์นดํ๋ก๊ทธ๋ฅผ ๋น์์ฃผ๋ ์ด๊ธฐํ ์์ .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = P_TABLE
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = G_FIELDCAT_H[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2.
1) ์ฃผ์ ํ๋ผ๋ฏธํฐ
ํ๋ผ๋ฏธํฐ | ์ค๋ช |
`I_PROGRAM_NAME` | ํ์ฌ ํ๋ก๊ทธ๋จ ์ด๋ฆ (SY-REPID). ๊ธฐ๋ณธ๊ฐ. |
`I_INTERNAL_TABNAME` | ALV๋ก ์ถ๋ ฅํ ์ธํฐ๋ ํ ์ด๋ธ์ ์ด๋ฆ(๊ตฌ์กฐ) |
`I_INCLNAME` | ํ๋ ๊ตฌ์กฐ๊ฐ ์ ์ธ๋ Include ์ด๋ฆ. ๋ณดํต SY-REPID์ ๊ฐ๊ฒ ์ค์ . |
`CT_FIELDCAT` | ํ๋์นดํ๋ก๊ทธ๊ฐ ์ ์ฅ๋ ํ ์ด๋ธ. ALV ํ๋ ์ ์๋ค์ด ๋ด๊น. |
` INCONSISTENT_INTERFACE` | ์ธํฐ๋ ํ ์ด๋ธ ๊ตฌ์กฐ์ ์ค์ ์ ์ธ์ด ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ. |
` PROGRAM_ERROR` | ํ๋ก๊ทธ๋จ ๋ด๋ถ ๋ฌธ์ . |
2) ์๋ ์๋ฆฌ
- `REUSE_ALV_FIELDCATALOG_MERGE` ๋ฅผ ํธ์ถํ๋ฉด
- SAP `P_TABLE` ์ด๋ฆ์ ์ธํฐ๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์กฐํํด์
- ํ ์ด๋ธ์ ํ๋๋ช , ๋ฐ์ดํฐ ํ์ , ๊ธธ์ด ๋ฑ์ ์ฝ๊ณ
- ALV์์ ์ฌ์ฉํ ์ ์๋ ํ๋์นดํ๋ก๊ทธ๋ฅผ `G_FIELDCAT_H[]`์ ์๋ ์์ฑํด์ค.
โ ์ฆ, ์ด ํจ์๋ ์ธํฐ๋ ํ ์ด๋ธ์ ๋ณด๊ณ ์๋์ผ๋ก ALV์ ํ์ํ ์ปฌ๋ผ์ ๊ตฌ์ฑํด ์ฃผ๋ ์ญํ
3๏ธโฃ ์ธ์ ์ฐ๋๊ฐ?
- ๊ธฐ๋ณธ ALV ํ์ค ํ๋ฉด์ ๋นจ๋ฆฌ ๋์์ผ ํ ๋.
- ํ๋์นดํ๋ก๊ทธ๋ฅผ ์ผ์ผ์ด ์์ฑํ๊ธฐ ๊ท์ฐฎ์ ๋.
- ์ธํฐ๋ ํ ์ด๋ธ์ด ์ ์ ์๋์ด ์๊ณ , ํ๋๋ช -๋๋ฉ์ธ-๋ฐ์ดํฐ์์๊ฐ SAP ํ์ค๋๋ก ์ ์ฐ๋๋์ด ์์ ๋.
4๏ธโฃ ํ๋ ์นดํ๋ก๊ทธ ์์ด ์คํํ๋ฉด?
๋ง์ฝ `REUSE_ALV_FIELDCATALOG_MERGE`๋ฅผ ์ฌ์ฉํ์ง ์๊ณ `REUSE_ALV_GRID_DISPLAY`๋ฅผ ์คํํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
ALV๋ ํ๋ ๋ชฉ๋ก์ ๋ชฐ๋ผ์ ์ด๋ค ์ปฌ๋ผ์ ์ถ๋ ฅํ ์ง ๊ฒฐ์ ํ์ง ๋ชปํฉ๋๋ค.
โ ์ฆ, ์ด ํจ์๋ ํ๋ ์นดํ๋ก๊ทธ๋ฅผ ์๋์ผ๋ก ์ค์ ํ์ฌ ALV๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์คํ๋๋๋ก ๋๋ ์ญํ ์ ํฉ๋๋ค.
728x90
๋ฐ์ํ