๐Ÿ“˜ SAP ABAP ๊ธฐ์ˆ  ์ •๋ฆฌ ๋…ธํŠธ (์ถ”๊ฐ€์˜ˆ์ •)

j_wisdom_hยท2025๋…„ 6์›” 18์ผ
0

SAP

๋ชฉ๋ก ๋ณด๊ธฐ
19/19

๐Ÿ“˜ 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-REQUESTF4 ๋„์›€๋ง ์‹คํ–‰ ์‹œ
โ‘ค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-indexDO, WHILE ๋ฐ˜๋ณต ํšŸ์ˆ˜
sy-tabixLOOP, READ ์ˆ˜ํ–‰ ์ค‘ ํ…Œ์ด๋ธ” ์ธ๋ฑ์Šค

๐Ÿง  BDC vs BAPI

ํ•ญ๋ชฉBDCBAPI
์ฒ˜๋ฆฌ ๋ฐฉ์‹ํŠธ๋žœ์žญ์…˜ ํ™”๋ฉด ๋ชจ๋ฐฉ (SHDB)๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ์ฒด ์ง์ ‘ ํ˜ธ์ถœ
์†๋„๋А๋ฆผ๋น ๋ฆ„
์˜ค๋ฅ˜ ์ฒ˜๋ฆฌSM35์—์„œ ํ™•์ธRETURN ํŒŒ๋ผ๋ฏธํ„ฐ ํ™œ์šฉ
์œ ์ง€๋ณด์ˆ˜ํ™”๋ฉด ๋ฐ”๋€Œ๋ฉด ์ˆ˜์ • ํ•„์š”์•ˆ์ •์  ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
์‹ค์‹œ๊ฐ„์„ฑ๊ฐ€๋Šฅ (CALL TRANSACTION)์šฐ์ˆ˜ (RFC ์—ฐ๋™ ํฌํ•จ)

๐Ÿ”— ๊ด€๋ จ ๊ฐœ๋…

๐Ÿ“Œ BTP (SAP Business Technology Platform)

  • 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 ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ

profile
๋šœ์ž‡๋šœ์ž‡

0๊ฐœ์˜ ๋Œ“๊ธ€