๐ SAP ABAP ๊ธฐ์ ์ ๋ฆฌ ๋
ธํธ (์ถ๊ฐ์์ )
SAP ABAP ๊ฐ๋ฐ ๊ณผ์ ๋ฐ ์๋น ๊ฐ๋ฐ์๋ค์ ์ํด, ABAP ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ, ์์คํ
์ค์น, UI5/Fiori, SAP BTP, RFC/BAPI/CDS ๊ธฐ์ ๊น์ง ํฌํจํ ์ค๋ฌด ๋๋น์ฉ ๊ธฐ์ ๋
ธํธ์
๋๋ค.
โ ๊ธฐ์ ์ง๋ฌธ ์์ฝ
- ๋๋ฉ์ธ: ํ์
, ๊ธธ์ด, ๊ฐ ๋ฒ์ ๋ฑ ๊ธฐ์ ์ ์์ฑ
- ๋ฐ์ดํฐ ์๋ฆฌ๋จผํธ: ์ค๋ช
, ๋ ์ด๋ธ ๋ฑ ์๋ฏธ์ ์์ฑ
๐ SAP ์ค์น ํ๊ฒฝ ๊ตฌ์ฑ
- Oracle VirtualBox: ๊ฐ์๋จธ์
- openSUSE: SAP ์๋ฒ ์ค์น์ฉ ๋ฆฌ๋
์ค ๋ฐฐํฌํ
- SAP Logon: SAP ์ ์์ฉ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ
- su / sudo: ๊ณ์ ์ ํ ๋ฐ root ๋ช
๋ น ์คํ
- npladm: SID๊ฐ NPL์ธ SAP ์์คํ
๊ด๋ฆฌ์ ๊ณ์
- chmod: ํ์ผ ๊ถํ ๋ณ๊ฒฝ ๋ช
๋ น์ด
- ํฌํธ ํฌ์๋ฉ: ํธ์คํธ ํฌํธ โ ๊ฒ์คํธ ํฌํธ ์ฐ๋ ๋ฐฉ์
๐ UI5, Fiori, Launchpad
- SAPUI5: SAP ์ ๊ณต ์น ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ ํ๋ ์์ํฌ
- Fiori: SAPUI5 ๊ธฐ๋ฐ ์น ์ฑ (๋ชจ๋ฐ์ผ ์นํ์ )
- Fiori Launchpad: Fiori ์ฑ์ ํตํฉ ์ ๊ณตํ๋ ๋์๋ณด๋
- STC01 (TCODE): SAP_GW_FIORI_ERP_ONE_CLNT_SETUP ์ํ โ ์ฌ๋ฌ ๊ถํยท์๋น์ค ์๋ ์ธํ
๐งพ ABAP ๋ฆฌํฌํธ์ ALV
- Report: ABAP์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํ๋ก๊ทธ๋จ ์ ํ (์กฐ๊ฑด์ ๋ฐ๋ผ ์กฐํ ๋ฐ ๊ฒฐ๊ณผ ์ถ๋ ฅ)
- ALV: ๋ฐ์ดํฐ๋ฅผ ํ ํํ๋ก ์ถ๋ ฅํ๋ ๋๊ตฌ (
REUSE_ALV_GRID_DISPLAY, CL_GUI_ALV_GRID ๋ฑ)
- Type Pool
SLIS: ALV์ฉ ํ์
/์์ ์ ์ ์งํฉ
TYPE-POOLS: SLIS.
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
fieldcatalog-fieldname = 'MANDT'.
fieldcatalog-seltext_m = 'Client'.
fieldcatalog-do_sum = 'X'.
ALV ๋ ์ด์์ ์์
DATA: gd_layout TYPE slis_layout_alv.
gd_layout-zebra = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-info_fieldname = 'LINE_COLOR'.
ALV ์ ๋ ฌ
DATA: gd_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
gd_sort-spos = 1.
gd_sort-fieldname = 'CARRID'.
gd_sort-up = 'X'.
gd_sort-subtot = 'X'.
๐งฎ ์ ํํ๋ฉด(Selection-Screen) ํ๋ฆ ์ ๋ฆฌ
**๐ก ์ ํํ๋ฉด ํ๋ฆ**
| ์์ | ์ด๋ฒคํธ ๊ตฌ๋ฌธ | ์ค๋ช
|
|---|
| โ | INITIALIZATION. | ํ๋ฉด ํ์ ์ 1ํ ์คํ |
| โก | AT SELECTION-SCREEN OUTPUT. | ์ ํํ๋ฉด ํ๋ ์ ์ด(์จ๊น/๋นํ์ฑ ๋ฑ) |
| โข | ์ ํํ๋ฉด ํ์ | ์ฌ์ฉ์ ์
๋ ฅ |
| โฃ | AT SELECTION-SCREEN ON VALUE-REQUEST | F4 ๋์๋ง ์คํ ์ |
| โค | AT SELECTION-SCREEN. | ์คํ๋ฒํผ ํด๋ฆญ ์ ์ ํจ์ฑ ๊ฒ์ฌ |
| โฅ | START-OF-SELECTION. | ๋ณธ ๋ก์ง ์ฒ๋ฆฌ ์์ |
| โฆ | END-OF-SELECTION. (์ ํ) | ๋ฐ์ดํฐ ์ถ๋ ฅ, ํ๋ฉด ์ด๋ |
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b1.
๐ ์ฃผ์ ๋ฌธ๋ฒ ์์ฝ
TYPE STANDARD TABLE OF: ํน์ ํ์
์ ๋ด๋ถ ํ
์ด๋ธ ์ ์ธ
WITH HEADER LINE: ํ
์ด๋ธ + ๋์ผ ๊ตฌ์กฐ์ ์ํฌ ์์ด๋ฆฌ์ด ์์ฑ
LIKE: ๊ธฐ์กด ์ค๋ธ์ ํธ์ ํ์
์ ๋ฐ๋ผ ์ ์ธ
๐ฆ ๋์๋ง (F4) ์ ๊ณต ์์
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_cname-low.
DATA: it_return_tab TYPE ddshretval OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CARRNAME'
dynprofield = 's_cname-low'
TABLES
value_tab = it_f4help3
return_tab = it_return_tab.
๐ฝ ์ฌ์ฉ์ ์ ์ ๋๋กญ๋ค์ด (LISTBOX)
TYPE-POOLS: vrm.
DATA: lt_droplist TYPE vrm_values.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_carrid.
SELECT carrid AS key, carrid && ' ' && carrname AS text
FROM scarr INTO TABLE @lt_droplist.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING id = 'p_carrid' values = lt_droplist.
๐ JOIN ์ข
๋ฅ
| ์ ํ | ์ค๋ช
|
|---|
| INNER JOIN | ์์ชฝ ํ
์ด๋ธ์ ๋ชจ๋ ์กด์ฌํ๋ ๊ฐ๋ง |
| LEFT OUTER JOIN | ์ผ์ชฝ + ์ผ์นํ๋ ์ค๋ฅธ์ชฝ ๊ฐ |
| RIGHT OUTER JOIN | ์ค๋ฅธ์ชฝ + ์ผ์นํ๋ ์ผ์ชฝ ๊ฐ |
| CROSS JOIN | ๋ชจ๋ ์กฐํฉ (๋ฐ์นด๋ฅดํธ ๊ณฑ) |
โ COLLECT ๋ฌธ
- ๋์ผ ํค ์กด์ฌ ์: ์ซ์ ํ๋ ํฉ์ฐ
- ํค ๋ฏธ์กด์ฌ ์: ์๋ก์ด ํ ์ถ๊ฐ
DATA: lt_itab TYPE TABLE OF ty_itab WITH HEADER LINE.
COLLECT lt_itab.
๐ ์์คํ
๋ณ์
| ๋ณ์ | ์ค๋ช
|
|---|
sy-repid | ํ์ฌ ํ๋ก๊ทธ๋จ ID |
sy-subrc | ๋ง์ง๋ง ๋ช
๋ น์ ์ฑ๊ณต ์ฌ๋ถ (0: ์ฑ๊ณต) |
sy-index | DO, WHILE ๋ฐ๋ณต ํ์ |
sy-tabix | LOOP, READ ์ํ ์ค ํ
์ด๋ธ ์ธ๋ฑ์ค |
๐ง BDC vs BAPI
| ํญ๋ชฉ | BDC | BAPI |
|---|
| ์ฒ๋ฆฌ ๋ฐฉ์ | ํธ๋์ญ์
ํ๋ฉด ๋ชจ๋ฐฉ (SHDB) | ๋น์ฆ๋์ค ๊ฐ์ฒด ์ง์ ํธ์ถ |
| ์๋ | ๋๋ฆผ | ๋น ๋ฆ |
| ์ค๋ฅ ์ฒ๋ฆฌ | SM35์์ ํ์ธ | RETURN ํ๋ผ๋ฏธํฐ ํ์ฉ |
| ์ ์ง๋ณด์ | ํ๋ฉด ๋ฐ๋๋ฉด ์์ ํ์ | ์์ ์ ์ธํฐํ์ด์ค ์ ๊ณต |
| ์ค์๊ฐ์ฑ | ๊ฐ๋ฅ (CALL TRANSACTION) | ์ฐ์ (RFC ์ฐ๋ ํฌํจ) |
๐ ๊ด๋ จ ๊ฐ๋
- SAP์ ํด๋ผ์ฐ๋ PaaS
- ํตํฉ, ๋ฐ์ดํฐ, ์ฑ, AI ๊ธฐ๋ฅ ํฌํจ
๐ RAP (RESTful ABAP Programming)
- S/4HANA ๊ธฐ๋ฐ ABAP ๊ฐ๋ฐ ๋ชจ๋ธ
- CDS + Behavior + ์๋น์ค๋ก ๊ตฌ์ฑ
๐ CDS (Core Data Services)
- SQL ๊ธฐ๋ฐ View
- JOIN, ์ง๊ณ, UI annotation ๊ฐ๋ฅ
- ๊ณ ์ฑ๋ฅ + Fiori ์ฐ๊ณ ์ฉ์ด
๐ RFC (Remote Function Call)
- ์์คํ
๊ฐ ํจ์ ํธ์ถ ํ์ค ๋ฐฉ์
CALL FUNCTION IN DESTINATION ํํ๋ก ์ฌ์ฉ