SAP ์์คํ ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ๋ณํํ์ฌ ํ ์ด๋ธ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ง์ด๊ทธ๋ ์ด์ , ๋๋ ๋ฐ์ดํฐ ์ ๋ ฅ, ์ธํฐํ์ด์ค ์ฐ๋ ์ ํ์์ ์ธ ๊ธฐ์ ์ ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ABAP์ ํ์ฉํ์ฌ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฅผ SAP ํ ์ด๋ธ์ ์ ๋ก๋ํ๋ ๊ณผ์ ์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
1. ์์ ๋ฐ์ดํฐ โ SAP์์คํ

SAP์์๋ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์์์ ์ผ๋ก ์ ๋ ฅํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ตฌ๋งค ์ค๋, ์ถ๊ณ ๋ฐ์ดํฐ, ๊ณ ๊ฐ ์ ๋ณด ๋ฑ์ ์์ ์์ ๊ด๋ฆฌํ๋ค๊ฐ SAP๋ก ์ผ๊ด ์ ๋ก๋ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋, ABAP์ ํ์ฉํ์ฌ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ์ธํฐ๋ ํ ์ด๋ธ๋ก ๋ณํํ์ฌ ๋ณด๋ค ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
2. ์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์ ๋ก๋ ์ด์
- ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ์๋ฐฑ~์์ฒ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ ๋ก๋ํ ์ ์์
- ์ ๋ฌด ํจ์จ์ฑ ํฅ์: ์์์ ์ ๋ ฅ์ ์ค์ฌ ์๊ฐ๊ณผ ๋น์ฉ ์ ๊ฐ
- ๋ฐ์ดํฐ ์ ํ์ฑ ์ฆ๊ฐ: ์ฌ๋์ด ์ง์ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ๋ณด๋ค ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์
- ์๋ํ ๊ฐ๋ฅ: ๋ฐฐ์น ํ๋ก๊ทธ๋จ์ผ๋ก ์ค์ผ์ค๋งํ์ฌ ์ ๊ธฐ์ ์ธ ๋ฐ์ดํฐ ์ ๋ก๋ ๊ฐ๋ฅ
3. ์ฝ๋ ์ค๋ช
1) ํ์ผ ์ ํ ํ์ ์ด๊ธฐ
์ฌ์ฉ์๊ฐ ์ ๋ก๋ํ ์์ ํ์ผ์ ์ ํํ ์ ์๋ก ํ์ ์ ์คํํฉ๋๋ค.

CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_file.
2) ์์ ๋ฐ์ดํฐ๋ฅผ ์ธํฐ๋ ํ ์ด๋ธ๋ก ๋ณํ
์๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์
๋ฐ์ดํฐ๋ฅผ lt_excel_raw
์ธํฐ๋ ํ
์ด๋ธ๋ก ์ ์ฅํฉ๋๋ค.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
3) ๋ฐ์ดํฐ ๋ณํ
๊ฐ ์ปฌ๋ผ์ SAP ํ
์ด๋ธ ํ๋์ ๋งคํํ์ฌ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ lt_excel
ํ
์ด๋ธ์ ์ ์ฅํฉ๋๋ค.

LOOP AT lt_excel_raw INTO ls_raw.
CASE ls_raw-col.
WHEN 1. ls_excel-mandt = ls_raw-value.
WHEN 2. ls_excel-userid = ls_raw-value.
WHEN 3.
ls_excel-passwd = ls_raw-value.
APPEND ls_excel TO lt_excel.
CLEAR: ls_excel.
ENDCASE.
ENDLOOP.
4. ์์ ์ ๋ก๋ ๋ฐ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ABAP ์ ์ฒด ์ฝ๋
์์
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด SAP์์๋ ALSM_EXCEL_TO_INTERNAL_TABLE
ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ํจ์๋ ์์
ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ INTERNAL TABLE
๋ก ๋ณํํด์ค๋๋ค.
TABLES: alsmex_tabline, ztable. " ์์
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ธํฐ๋ ํ
์ด๋ธ ๋ฐ CBOํ
์ด๋ธ ์ ์ธ
DATA: lt_excel_raw TYPE TABLE OF alsmex_tabline, " ์์
์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ธํฐ๋ํ
์ด๋ธ
ls_raw TYPE alsmex_tabline, " ์์
์๋ณธ ๋ฐ์ดํฐ์ ๊ฐ๋ณ ํ์ ์ ์ฅํ๋ ๊ตฌ์กฐ
lt_excel TYPE TABLE OF ztable, " ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ธํฐ๋ํ
์ด๋ธ
ls_excel TYPE ztable, " ๊ฐ๋ณ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ตฌ์กฐ
lv_file TYPE rlgrap-filename, " ์
๋ก๋ํ ์์
ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ์ฅํ ๋ณ์
lv_value TYPE string. " ๊ฐ๋ณ ์
๊ฐ์ ์ ์ฅํ ๋ณ์
" ์ฌ์ฉ์๊ฐ ํ์ผ์ ์ ํํ๋๋ก ํ๋ ๋งค๊ฐ๋ณ์ ์ ์ธ
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY.
" ํ์ผ ์ ํ ํ์
(์๋ ํ์ผ ํ์๊ธฐ ์คํ)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_file. " ํ์ผ ์ ํ ํ ๊ฒฝ๋ก๋ฅผ p_file ๋ณ์์ ์ ์ฅ
START-OF-SELECTION.
" ์ ํํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ํ๋ฉด์ ์ถ๋ ฅ
WRITE: / '์ ํํ ํ์ผ ๊ฒฝ๋ก:', p_file.
" Step 1: ์์
๋ฐ์ดํฐ๋ฅผ ์ธํฐ๋ํ
์ด๋ธ๋ก ๋ณํํ์ฌ ์ฝ๊ธฐ
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file " ์ฌ์ฉ์๊ฐ ์ ํํ ํ์ผ ๊ฒฝ๋ก
i_begin_col = 1 " ์์ ์ปฌ๋ผ (์ฒซ ๋ฒ์งธ ์ปฌ๋ผ)
i_begin_row = 2 " ๋ฐ์ดํฐ๊ฐ ์์ํ๋ ํ (๋ ๋ฒ์งธ ํ๋ถํฐ ๋ฐ์ดํฐ ์์)
i_end_col = 16 " ์ปฌ๋ผ ๊ฐ์ (ํ์์ ๋ฐ๋ผ ์กฐ์ ๊ฐ๋ฅ)
i_end_row = 1000 " ์ต๋ 1000๊ฐ ํ ์ฝ๊ธฐ (ํ์์ ๋ฐ๋ผ ์กฐ์ ๊ฐ๋ฅ)
TABLES
intern = lt_excel_raw " ์์
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ธํฐ๋ํ
์ด๋ธ
EXCEPTIONS
OTHERS = 1. " ์ค๋ฅ ๋ฐ์ ์ ์์ธ ์ฒ๋ฆฌ
IF sy-subrc <> 0.
WRITE: '์์
ํ์ผ ์
๋ก๋ ์คํจ!'.
EXIT.
ENDIF.
" Step 2: ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ
์ด๋ธ(ztable) ๊ตฌ์กฐ๋ก ๋งคํ
CLEAR: lt_excel.
LOOP AT lt_excel_raw INTO ls_raw.
" ์์
๋ฐ์ดํฐ์ ์ปฌ๋ผ ๋ฒํธ์ ๋ฐ๋ผ ZTABLE์ ํ๋์ ๋งคํ
CASE ls_raw-col.
WHEN 1. ls_excel-mandt = ls_raw-value. " ์ฒซ ๋ฒ์งธ ์ปฌ๋ผ โ ํด๋ผ์ด์ธํธ ์ ๋ณด
WHEN 2. ls_excel-userid = ls_raw-value. " ๋ ๋ฒ์งธ ์ปฌ๋ผ โ ์ฌ์ฉ์ ID
WHEN 3.
ls_excel-passwd = ls_raw-value. " ์ธ ๋ฒ์งธ ์ปฌ๋ผ โ ํจ์ค์๋
" ํ ํ์ ๋ฐ์ดํฐ ์
๋ ฅ์ด ์๋ฃ๋์์ผ๋ฏ๋ก ์ธํฐ๋ ํ
์ด๋ธ์ ์ถ๊ฐ
APPEND ls_excel TO lt_excel.
CLEAR: ls_excel. " ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ํด ๊ตฌ์กฐ ์ด๊ธฐํ
ENDCASE.
ENDLOOP.
" Step 3: ๋ณํ๋ ๋ฐ์ดํฐ ์ถ๋ ฅ (ํ
์คํธ์ฉ, ์ค์ ํ๋ก๊ทธ๋จ์์๋ ํ์ ์ ์ฃผ์ ์ฒ๋ฆฌ)
LOOP AT lt_excel INTO ls_excel.
WRITE: / ls_excel.
ENDLOOP.
'๐งโ๐ผ SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SAP ABAP] CBO ํ ์ด๋ธ์ .INCLUDE ๋? (0) | 2025.03.24 |
---|---|
[SAP ABAP] ์์ ํ์ผ ์ ํ ๋ฐ ๊ฒฝ๋ก ๊ฐ์ ธ์ค๊ธฐ (0) | 2025.03.21 |
[SAP ABAP] Function Module RFC(Remote Function Call) ํธ์ถ ์ค๋ฅ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2025.03.12 |
[SAP ABAP] ALV์์ ํด์๋๋ณ ์๋ ์กฐ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2025.03.11 |
[SAP ABAP] REUSE_ALV_FIELDCATALOG_MERGE ํจ์๋? (0) | 2025.02.28 |