๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กSAP/ABAP ๋ฌธ๋ฒ• | Open SQL (8)

CS Student’s SAP&Tech Journey๐Ÿ’ซ

[SAP] OPEN SQL ๋ฐ์ดํ„ฐ ์‚ฝ์ž… / ์ˆ˜์ • / ์‚ญ์ œ / ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ

SAP ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„  OPEN SQL ๋ฌธ๋ฒ•์„ ๋ฐ˜๋“œ์‹œ ์ตํ˜€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ABAP์—์„œ ์‚ฌ์šฉํ•˜๋Š” OPEN SQL์€ SAP ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋งž๊ฒŒ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ์ž๋Š” ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ DB ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์‚ฝ์ž…(INSERT), ์ˆ˜์ •(UPDATE), ์‚ญ์ œ(DELETE) ๊ทธ๋ฆฌ๊ณ  ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ(COMMIT / ROLLBACK) ๋ฐฉ์‹๊นŒ์ง€ ์‹ค์Šต ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. โœ… OPEN SQL ๊ตฌ์กฐ์™€ ๊ฐœ๋…ABAP์—์„œ ์‚ฌ์šฉํ•˜๋Š” SQL = OPEN SQL๋‚ด๋ถ€์ ์œผ๋กœ๋Š” DB ์ธํ„ฐํŽ˜์ด์Šค → Native SQL๋กœ ์ž๋™ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.์˜ˆ: SELECT * FROM SCARR → MSSQL, HANA DB ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹ค..

[SAP] ์ง‘๊ณ„ ํ•จ์ˆ˜(Aggregate Function) - MIN, MAX, SUM, COUNT, GROUP BY, HAVING

SAP ABAP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์กฐํšŒํ•˜๊ณ  ๋ถ„์„ํ•˜๋ ค๋ฉด ์ง‘๊ณ„ ํ•จ์ˆ˜(Aggregate Function)๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ํ–‰(Row)์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ๊ฐ’์œผ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜๋กœ, SQL๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ABAP์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜์˜ ์ข…๋ฅ˜์™€ ํ™œ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ 1. ์ง‘๊ณ„ ํ•จ์ˆ˜(Aggregate Function)๋ž€?์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ํ…Œ์ด๋ธ”์˜ ์—ฌ๋Ÿฌ ํ–‰(Row) ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ์ตœ๋Œ€ ๋‚˜์ด, ์ตœ์†Œ ๋‚˜์ด, ์ „์ฒด ํ•™์ƒ ์ˆ˜, ํ‰๊ท  ์—ฐ๋ด‰ ๋“ฑ์„ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โœ… ABAP์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง‘๊ณ„ ํ•จ์ˆ˜โญ ๊ด„ํ˜ธ์•ˆ์— ๋„์–ด์“ฐ๊ธฐ ๊ผญ ์ฃผ์˜ํ•  ๊ฒƒ!์ง‘๊ณ„ ํ•จ์ˆ˜์„ค๋ช…MI..

[SAP] SELECT * / SELECT SINGLE ํ•„๋“œ / SELECT SINGLE * ์ด์ •๋ฆฌ

SAP ABAP์—์„œ๋Š” Open SQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํ–‰ ์กฐํšŒ(SELECT SINGLE)๋ถ€ํ„ฐ ๋‹ค์ค‘ ํ–‰ ์กฐํšŒ(SELECT LOOP, ARRAY FETCH)๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Open SQL์„ ํ™œ์šฉํ•œ DB ์กฐํšŒ ๋ฐฉ์‹๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ƒ์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.   ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ์ฝ๋Š” ๋ฐฉ๋ฒ•์— ๊ด€๋ จ๋œ ํฌ์ŠคํŒ… ๋ณด๋Ÿฌ๊ฐ€๊ธฐ โฌ‡๏ธ [ABAP] ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”(Internal Table) (3) ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐSAP ABAP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”(Internal Table, IT)์€ ํ•„์ˆ˜์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ์ž„์‹œ ๋ฐ์ด..

[SAP] SELECT SINGLE๊ณผ SELECT์˜ ์ฐจ์ด / ๋ณ€์ˆ˜ ์ ‘๋‘์‚ฌ ์ •์˜ํ•˜๊ธฐ

ABAP์—์„œ๋Š” SELECT๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์—์„œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” SE11/SE16์„ ํ™œ์šฉํ•œ ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰,  SELECT SINGLE๊ณผ SELECT์˜ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ  SCARR ํ…Œ์ด๋ธ”์„ ํ™œ์šฉํ•œ ํ•ญ๊ณต์‚ฌ ์ฝ”๋“œ ์กฐํšŒ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.  ๐ŸŸฉ SE11/SE16์„ ํ™œ์šฉํ•œ ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰ ๐Ÿš€ SAP์—์„œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ, SE11๊ณผ SE16 ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.1. SE11 (ABAP Dictionary)SE11์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ, ํ•„๋“œ, ๋„๋ฉ”์ธ, ๋ฐ์ดํ„ฐ ์š”์†Œ ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํŠธ๋žœ์žญ์…˜ ์ฝ”๋“œ SE11 ์‹คํ–‰ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์ž…๋ ฅ (์˜ˆ: SCARR)"Display" ๋ฒ„ํŠผ ํด๋ฆญํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๋ฐ ํ•„๋“œ ํ™•์ธ2. SE16 (Dat..

[SAP] ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ SY-XXXX ํ•œ๋ˆˆ์— ์ •๋ฆฌํ•˜๊ธฐ

SAP ์‹œ์Šคํ…œ ๋ณ€์ˆ˜(SY-XXXX)๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ์‹œ์Šคํ…œ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด๋“ค์„ ์ €์žฅํ•˜๋Š” ๋‚ด์žฅ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฃผ์š” ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์™€ ๊ทธ ํ™œ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.   ๐Ÿ“Œ  ์ฃผ์š” SAP ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ ๋ฐ ํ™œ์šฉ๋ฒ•1. SY-MANDT (ํด๋ผ์ด์–ธํŠธ ๋ฒˆํ˜ธ)ํด๋ผ์ด์–ธํŠธ(client) ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ฉ€ํ‹ฐ ํด๋ผ์ด์–ธํŠธ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.2. SY-UNAME (ํ˜„์žฌ ์‚ฌ์šฉ์ž ID)ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž ID๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.3. SY-LANGU (์‚ฌ์šฉ์ž ์–ธ์–ด ์ฝ”๋“œ)๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด ์„ค์ •์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.4. SY-DATUM (ํ˜„์žฌ ๋‚ ์งœ)ํ˜„์žฌ SAP ์‹œ์Šคํ…œ์˜ ๋‚ ์งœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.5. SY-UZEIT (ํ˜„์žฌ ์‹œ๊ฐ„)ํ˜„์žฌ ์‹œ๊ฐ„์„ ์‹œ:๋ถ„:์ดˆ ํ˜•์‹์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค...

[SAP] ์กฐ๊ฑด๋ฌธ IF, ELSE / ์กฐ๊ฑด ์—ฐ์‚ฐ์ž IS INITIAL, BETWEEN, CA

ABAP์—์„œ ์กฐ๊ฑด๋ฌธ๊ณผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” IF, ELSEIF, ELSE์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๊ณผ IS NOT INITIAL๊ณผ ์˜ ์ฐจ์ด, BETWEEN, CA ๋“ฑ์˜ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž ํ™œ์šฉ๋ฒ•์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.  ๐Ÿ“Œ IF, ELSEIF, ELSE ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ABAP์˜ ์กฐ๊ฑด๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.IF ์กฐ๊ฑด. " ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œELSEIF ๋‹ค๋ฅธ_์กฐ๊ฑด. " ์ฒซ ๋ฒˆ์งธ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๊ณ , ๋‘ ๋ฒˆ์งธ ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œELSE. " ์œ„์˜ ๋ชจ๋“  ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œENDIF.์˜ˆ์ œ) ์ˆซ์ž์˜ ์Œ์ˆ˜, ์–‘์ˆ˜, 0 ํŒ๋‹จํ•˜๊ธฐDATA lv_number TYPE i VALUE 10.IF lv_number > 0. WRITE..

[SAP] ์ฝ”๋“œ ์ €์žฅ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ / WRITE ์™€ PARAMETERS

๐Ÿ”ท ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ ๋ฐ ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ:ํˆด๋ฐ”์˜ Check ๋ฒ„ํŠผ: ์ฝ”๋“œ์— ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ.๋ณ€๊ฒฝ ๋ชจ๋“œ ํ™•์ธ:Display ↔ Change ๋ชจ๋“œ๋ฅผ ํ™•์ธํ•˜์—ฌ, ํ˜„์žฌ ์ฝ”๋“œ๊ฐ€ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ธ์ง€ ํ™•์ธ.์ฝ”๋“œ ํฌ๋งคํŒ…:Utilities → Settings → Pretty Printer๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ฝ”๋“œ ์ž๋™ ์ •๋ ฌ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”. ๐Ÿ”ท ์ฝ”๋“œ ์ €์žฅ ๋ฐ ์‹คํ–‰์ €์žฅ:SAVE ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋ฉด inactive ์ƒํƒœ๋กœ ์ „ํ™˜.Active ์ƒํƒœ:ํˆด๋ฐ”์˜ Active ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์„ฑํ™”(inactive ์ƒํƒœ๋ฅผ active๋กœ ๋ณ€๊ฒฝ).Active ๋ฒ„ํŠผ์€ ์ €์žฅ + ๋ฌธ๋ฒ• ์ฒดํฌ ๊ธฐ๋Šฅ์„ ํฌํ•จ.์‹คํ–‰:Active ์ƒํƒœ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰.  ๐Ÿ”ทABAP ์ฝ”๋“œ ์ž‘์„ฑ ๊ทœ์น™๋ฌธ์žฅ์˜ ๋: ํ•ญ์ƒ.(์ )์œผ๋กœ ๋๋‚ธ๋‹ค.๋ช…๋ น์–ด๋Š” ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ..