์ธํฐ๋ ํ ์ด๋ธ(Internal Table)
์ธํฐ๋ ํ ์ด๋ธ(Internal Table)์ ํ๋ก๊ทธ๋จ ๋ด์์ ์ ์ํ์ฌ ์ฌ์ฉํ ์ ์๋ Local Table์ ๋๋ค.
ABAP ํ๋ก๊ทธ๋จ์์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๊ณผ ํธ์์ฑ์ ์ ๊ณตํ๋ ๊ฒ ๋ ๊ฐ์ง๋ฅผ ๋ฝ์ผ๋ผ๋ฉด ์ธํฐ๋ ํ ์ด๋ธ๊ณผ ๋๋ฒ๊น ์ด๋ผ๊ณ ์ฃผ์ ํ์ง ์๊ณ ๋๋ตํ ์ ์์ต๋๋ค.
ํนํ ์ธํฐ๋ ํ ์ด๋ธ์ ๊ธฐ๋ฅ๊ณผ ์ญํ ์ ABAP ํ๋ก๊ทธ๋๋ฐ์ ๊ฝ์ด๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋๋๋ค.
์ด ๋ ๊ฐ์ง ๊ธฐ๋ฅ๋ง ์๊ณ ์์ด๋, Copy & Paste๋ก ABAP ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ๋ผ ์ ์์ต๋๋ค(๋ค๋ฅธ ์ธ์ด๋ก ํ๋ก๊ทธ๋๋ฐ์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด).
C์ ABAP ์ฐจ์ด์
๋จผ์ , ABAP ํ๋ก๊ทธ๋จ๊ณผ C์ธ์ด์ ๊ตฌ์กฐ์ฒด ๊ฐ๋ ๋ถํฐ ์ดํดํด์ผ ํฉ๋๋ค.
์ธ์ฌ ์ ๋ณด๋ ์ฌ์ ๋ฒํธ, ์ด๋ฆ, ์์ ๋ฑ์ด ์์ ๊ฒ์ ๋๋ค.
์๋์ C์ธ์ด์ ABAP ์ธ์ด์์ ์ฌ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ ๊ตฌ์กฐ๋ฅผ ์ ์ธํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
C์ธ์ด์์๋ STRUCT ๊ตฌ๋ฌธ์ ์ด์ฉํ์ฌ ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ๋ค๋ ์ ์ด์ธ์๋ ABAP ์ธ์ด์ ํฐ ์ฐจ์ด๊ฐ ์๊ณ ์ฌ์ฉ๋ฒ๋ ์ ์ฌํฉ๋๋ค.
Structure(๊ตฌ์กฐ์ฒด) ๋น๊ต
// C ์ธ์ด์์์ ๊ตฌ์กฐ์ฒด ์ ์ธ
STRUCT s_type
{
CHAR no[6];
CHAR name[10];
CHAR part[16];
};
STRUCT s_type sawon;
// ABAP์์์ ๊ตฌ์กฐ์ฒด ์ ์ธ
DATA: BEGIN OF s_type,
NO(6) TYPE C,
NAME(10) TYPE C,
PART(16) TYPE C,
END OF s_type.
C ์ธ์ด | ABAP ์ธ์ด | |
์ ์ธ | STRUCT ๊ตฌ์กฐ์ฒด { }; | DATA ๊ตฌ์กฐ์ฒด TYPE ๊ตฌ์กฐ์ฒด ํ์
DATA ๊ตฌ์กฐ์ฒด LIKE OBJ. DATA BEGIN OF ๊ตฌ์กฐ์ฒด ~ END OF. |
๊ฐ ํ ๋น | sawon.name = 'Kim' | sawon-name = 'Kim' |
๊ฐ ์ฌ์ฉ | PRINTF('%s', sawon.name) | WRITE sawon-name. |
์ ๊ตฌ์กฐ์ฒด ์ ์ธ๊ณผ ํ์์ ์ ์ ์๋ฏ์ด ๋ชจ๋ ์ธ์ด์ ๊ตฌ์กฐ์ฒด ์ ์ธ๋ฒ์ ์ ์ฌํฉ๋๋ค.
์ฐ์ ๊ตฌ์กฐ์ฒด ํ์ ์ ์ ์ธํ๊ณ ๋์ ๊ตฌ์กฐ์ฒด ๋ณ์๋ฅผ ์ ์ธํ๊ฒ ๋ฉ๋๋ค.
๋จ์ง, ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฝ๊ฒ ์์๋ณผ ์ ์๋๋ก ๋ฒ์ญํ๋ ๊ณผ์ ์์ ์ธ์ด๋ง๋ค ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ์ฐจ์ด๋ง ์์ต๋๋ค.
๊ตฌ์กฐ์ฒด๋ ์ฌ์ 1๋ช ์ ๊ฐ๋ง ํ ๋นํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ 1๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง ํ์ฌ๊ฐ ์กด์ฌํ์ง ์๋ฏ์ด ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ช ์ ์ฌ์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ฌ๋ฌ ๋ช ์ ์ฌ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ABAP์ ์ธํฐ๋ ํ ์ด๋ธ(C ์ธ์ด์์์ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด) ๊ตฌ์กฐ๋ ์ด๋ ํ์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Structure(๊ตฌ์กฐ์ฒด) ๋ฐฐ์ด๊ณผ Internal Table
// C ์ธ์ด์์์ ๊ตฌ์กฐ์ฒด ์ ์ธ
STRUCT s_type
{
CHAR no[6];
CHAR name[10];
CHAR part[16];
};
STRUCT s_type sawon[100];
// ABAP์์์ ๊ตฌ์กฐ์ฒด ์ ์ธ
TYPE: BEGIN OF s_type,
NO(6) TYPE C,
NAME(10) TYPE C,
PART(16) TYPE C,
END OF s_type.
DATA sawon TYPE STANDARD
TABLE OF s_type INITIAL SIZE 100.
DATA sawon TYPE t_type.
C ์ธ์ด | ABAP ์ธ์ด | |
์ ์ธ | STRUCT ๊ตฌ์กฐ์ฒด[๊ฑด์] { }; | DATA ํ
์ด๋ธ๋ช
TYPE ํ
์ด๋ธ ํ์
INITIAL SIZE ๊ฑด์. |
๊ฐ ํ ๋น | sawon[1].name = 'Kim'; sawon[2].name = 'Lee' |
sawon-name = 'Kim'. APPEND sawon. sawon-name = 'Lee'. APPEND sawon. |
๊ฐ ์ฌ์ฉ | PRINTF('%s', sawon[1].name) PRINTF('%s', sawon[2].name) |
LOOP AT sawon. WRITE sawon-name. ENDLOOP. |
๊ตฌ์กฐ์ฒด ์ ์ธ๊ณผ ์ ์ฌํ๊ฒ ์ธํฐ๋ ํ ์ด๋ธ(๊ตฌ์กฐ์ฒด ๋ฐฐ์ด)๋ ๋ ์ธ์ด ์ฌ์ด์ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๋ค๋ง, ๊ฐ์ ํ ๋นํ๊ณ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ ์ฐจ์ด๊ฐ ์์ ๋ฟ์ ๋๋ค.
C์ธ์ด์ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ๋ฐฐ์ด ์๋ฒ์ ์ง์ ํ์ฌ ๊ฐ์ ํ ๋นํ์ฌ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ฉด ABAP ์ธ์ด์ ์ธํฐ๋ ํ ์ด๋ธ์ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด(ARRAY)์ ๊ฐ๋ ์ ๋ชจ๋ ์ง์ํ๋ฉฐ ์ถ๊ฐ๋ก ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๋ชจ์ต๊ณผ ์ ์ฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌํ๋์์ต๋๋ค.
C ์ธ์ด์์ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด Array ๊ตฌ์กฐ๊ฐ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ Load๋์ด 100๊ฑด์ ์ฌ์ ์ ๋ณด ๋ฐฉ์ด ์์ฑ๋ฉ๋๋ค.
sawon-name[1]๋ฒ ๋ฐฉ, [2]๋ฒ ๋ฐฉ, [3]๋ฒ ๋ฐฉ๊ณผ ๊ฐ์ด ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์น์ ๊ฐ๋ง ํ ๋นํ๋ฉด ๋๋ ๊ฒ์ ๋๋ค.
ABAP ํ๋ก๊ทธ๋จ์์๋ C์ธ์ด์ ์ ์ฌํ๊ฒ ๋ฐฐ์ด ์๋ฒ์ ์ง์ ํ์ฌ ๊ฐ์ ๋๋ฒ๊น ๋ชจ๋์์ ํธ์ถํ ์ ์์ต๋๋ค.
C์ธ์ด๊ฐ ๋ฐฐ์ด์ ์ ์ธํ ๋ ๋ฏธ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ๋ฐ๋ฉด, ์ธํฐ๋ ํ ์ด๋ธ์ INITIAL SIZE๊ตฌ๋ฌธ์ผ๋ก ํ ์ด๋ธ ํฌ๊ธฐ๋ง ์ ์ธํ ๋ฟ ๋ฏธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ Loadํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ INSERT ๋๋ APPEND ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ Line์ด ์ถ๊ฐ๋ ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์ Loadํฉ๋๋ค. ์ด๋ฌํ ์ธก๋ฉด์์ ์ธํฐ๋ ํ ์ด๋ธ์ ๋์ ์ธ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด(Dynamic Data Object)์ด๋ผ๊ณ ๋ ์ ์ํฉ๋๋ค.
- Internal Table์ ๋์ ์ธ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด(Dynamic Data Object)์ด๋ค.
- INITIAL SIZE ๊ตฌ๋ฌธ์ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ ๊ฒ์ด ์๋๋ผ ์์ฝ(RESERVE)์ ํ๋ค.
์ฒ์ ABAP์ ์ ํ๊ฒ ๋๋ฉด sawon-name = 'kim'. ๋ง ์ ์ธํ๊ณ ์ธํฐ๋ ํ ์ด๋ธ์ ๊ฐ์ด ์๋ค๊ณ ๋ถํ์ ํธ์ด๋๋ ๊ฒฝํ์ ํ ๋ฒ์ฏค ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
ABAP ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ธํฐ๋ ํ ์ด๋ธ์ ํญ์ ํ ๋น๊ณผ ์ถ๊ฐ(APPEND) ๊ตฌ๋ฌธ์ด ์์ผ๋ก ์์ง์ฌ์ผ ํจ์ ๋ช ์ฌํด์ผ ํฉ๋๋ค.
์ธํฐ๋ ํ ์ด๋ธ์ด ํฌํจํ ์ ์๋ ๋ฐ์ดํฐ ๊ฑด์๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ก ํ์ ๋์ด ์์ผ๋ฉฐ, SAP ์ค์น ์ ์ธํฐ๋ ํ ์ด๋ธ์ด ์ฐจ์งํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ธฐ๋ณธ 2 Gigabyte๋ก ์ค์ ํฉ๋๋ค.
Local Table Type์ ์ด์ฉํ ์ธํฐ๋ ํ ์ด๋ธ ์์ฑ
๊ฐ๋ณ ABAP ํ๋ก๊ทธ๋จ์๋ง ์ฌ์ฉ๋๋ ์ธํฐ๋ ํ ์ด๋ธ์ ์์ฑํ๋ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ฒซ ๋ฒ์งธ ๊ตฌ์กฐ์ฒด ํ์ ์ ์ ์ธํ๊ณ , ๋ ๋ฒ์งธ ๊ตฌ์กฐ์ฒด ํ์ ์ ์ฐธ๊ณ ํ๋ ์ธํฐ๋ ํ ์ด๋ธ ํ์ ์ ์ ์ธํ๊ณ , ์ธ ๋ฒ์งธ ์ด ํ์ ์ ์ฐธ๊ณ ํ์ฌ ์ธํฐ๋ ํ ์ด๋ธ์ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
1. ๊ตฌ์กฐ์ฒด ํ์ ์ ์ ์ธ
TYPES: BEGIN OF t_str,
~~~
END OF t_str
2. ๊ตฌ์กฐ์ฒด ํ์ ์ ์ฐธ๊ณ ํ๋ ์ธํฐ๋ ํ ์ด๋ธ ํ์ ์ ์ธ
TYPES t_itab TYPE STANDARD TABLE OF t_str
WITH {UNIQUE|NON-UNIQUE} KEY <keys>
INITIAL SIZE 100.
3. ํ์ ์ฐธ๊ณ ํ์ฌ ์ธํฐ๋ ํ ์ด๋ธ ์์ฑ
DATA: gt_itab TYPE t_itab [WITH HEADER LINE].
์์
์ค๋ฌด์์๋ ๊ตฌ์กฐ์ฒด ํ์ ์ ์ ์ธํ๊ณ , ์ด ๊ตฌ์กฐ์ฒด ํ์ ์ ์ฐธ๊ณ ํ๋ ์ธํฐ๋ ํ ์ด๋ธ์ ์ ์ธํ๋ 2๋จ๊ณ ๋ฐฉ๋ฒ์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
์ฆ, 3๋จ๊ณ๋ฅผ ํตํด ์ธํฐ๋ ํ ์ด๋ธ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์์ ์ธํฐ๋ ํ ์ด๋ธ ํ์ ์ ์ ์ธํ๋ ๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ์๋ตํ๊ณ , ๊ตฌ์กฐ์ฒด ํ์ ์ ์ฐธ๊ณ ํ์ฌ ๋ฐ๋ก ์ธํฐ๋ ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
TYPES: BEGIN OF S_TYPE,
NO(6) TYPE C,
NAME(4) TYPE C,
PART(16) TYPE C,
END OF S_TYPE.
DATA GT_ITAB TYPE STANDARD TABLE OF S_TYPE WITH NON-UNIQUE KEY NO WITH HEADER LINE.
GT_ITAB-NO = '0001'.
GT_ITAB-NAME = 'Lee'.
GT_ITAB-PART = 'SAP Team'.
APPEND GT_ITAB.
LOOP AT GT_ITAB.
WRITE : GT_ITAB-NO, GT_ITAB-NAME, GT_ITAB-PART.
ENDLOOP.
์๋์ ๊ฐ์ด ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ ๋ค์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ธํฐ๋ ํ ์ด๋ธ์ ์ ์ธํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ์๋ TYPE ๋์ ์ LIKE๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
DATA GT_ITAB LIKE STANDARD TABLE OF S_TYPE WITH NON-UNIQUE KEY NO WITH HEADER LINE.
Global ABAP Dictionary Type์ ์ด์ฉํ ์ธํฐ๋ ํ ์ด๋ธ ์์ฑ
ABAP Dictionary ํ ์ด๋ธ์ด๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ธํฐ๋ ํ ์ด๋ธ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
DATA: itab TYPE <t_itab> WITH {UNIQUE|NON-UNIQUE} KEY <keys> [INITIAL SIZE <n>] [WITH HEADER LINE].
์์
REPORT ZABAP001 .
DATA GT_ITAB TYPE SORTED TABLE OF SCARR WITH UNIQUE KEY CARRID.
DATA GS_STR LIKE LINE OF GT_ITAB.
SELECT * INTO TABLE GT_ITAB
FROM SCARR.
LOOP AT GT_ITAB INTO GS_STR.
WRITE: / GS_STR-CARRID, GS_STR-CARRNAME.
ENDLOOP.
'๐งโ๐ผ SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SAP ABAP] TYPE๊ณผ LIKE ์ฐจ์ด (0) | 2023.10.04 |
---|---|
[SAP ABAP] ABAP Dictionary๋? (Database Table) (0) | 2023.08.29 |
[SAP ABAP] ํจ์(Function)์ด๋? (0) | 2023.08.24 |
[SAP ABAP] LOOP ~ ENDLOOP / DO ~ ENDDO / WHILE ~ ENDWHILE ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ๋ฒ (List ํ์ฉ) (0) | 2023.08.22 |
[SAP ABAP] CONCATENATE ๋? (ํน์ง ๋ฐ ์์ ) (0) | 2023.08.21 |