๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ABAP Concept (๐Ÿ“๊ฐœ๋…)/Advanced

SAP LUW ( Logical Unit of Work ) ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ

ABAP ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ณ  ์–ด๋А ์ •๋„ ์ต์ˆ™ํ•ด์งˆ ์ฆˆ์Œ, ํ•œ ๋ฒˆ์ฏค ์Šค์ณ๊ฐ€๋Š” ๊ฐœ๋… ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ LUW(Logical Unit of Work)์ด๋‹ค.

์ฒ˜์Œ ์ด ์šฉ์–ด๋ฅผ ์ ‘ํ•˜๋ฉด, ๋งˆ์น˜ ์–ด๋–ค ํŠน์ˆ˜ํ•œ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹, ํ˜น์€ ์‹ฌํ™”๋œ DB ๊ฐœ๋…์ฒ˜๋Ÿผ ๋А๊ปด์ง€๊ธฐ ์‰ฝ๋‹ค. ๊ตฌ๊ธ€์—์„œ ๊ฒ€์ƒ‰ํ•ด๋ด๋„ ์„ค๋ช…์ด ๋ณต์žกํ•˜๊ฒŒ ๋‚˜์™€์„œ ํ•œ๋ˆˆ์— ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๋Š”...
LUW ๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ์‹ค๋ฌด์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๋‚˜ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ฒŒ ๋œ๋‹ค๋Š” ๋ฐ ์žˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ๋ฌธ์€ ์ €์žฅ๋๋Š”๋ฐ ํšŒ๊ณ„ ์ „ํ‘œ๋Š” ์•ˆ ๋งŒ๋“ค์–ด์กŒ๊ฑฐ๋‚˜, ํ™”๋ฉด์—์„  ์ €์žฅ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€๊ฐ€ ๋–ด์ง€๋งŒ ์‹ค์ œ๋กœ DB์—” ๋ฐ˜์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ์€ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๊ฐœ๋…์ด ๋ฐ”๋กœ SAP LUW ์ด๋‹ค.


1. 3์ž ์œ„ํƒ ๋ฐฐ์†ก์œผ๋กœ  SAP LUW ์ดํ•ดํ•ด๋ณด๊ธฐ

SAP LUW(Logical Unit of Work)๋Š” ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋˜, ๋ชจ๋‘ ์„ฑ๊ณตํ•ด์•ผ๋งŒ ์ตœ์ข…์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

์ด ๊ฐœ๋…์„ 3์ž ์œ„ํƒ ๋ฐฐ์†ก(Third-party logistics) ๊ตฌ์กฐ๋กœ ํ•œ๋ฒˆ ์ƒ๊ฐํ•ด๋ณด์ž.

 ํ•œ ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์—์„œ ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์ด ์‡ผํ•‘๋ชฐ์€ ์ž์ฒด ๋ฌผ๋ฅ˜์ฐฝ๊ณ ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ณ , ์•„๋ž˜์ฒ˜๋Ÿผ 3์ž ๊ฑฐ๋ž˜ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

1๏ธโƒฃ๊ณ ๊ฐ( Customer ): ์‡ผํ•‘๋ชฐ์—์„œ ์ƒํ’ˆ ์ฃผ๋ฌธ

2๏ธโƒฃํŒ๋งค์ž( Seller ): ์žฌ๊ณ  ๋ณด์œ , ์†ก์žฅ ๋ฐœํ–‰

3๏ธโƒฃ๋ฌผ๋ฅ˜์—…์ฒด( Logistics provider ): ์ƒํ’ˆ์„ ํ”ฝ์—…ํ•ด์„œ ๊ณ ๊ฐ์—๊ฒŒ ๋ฐฐ์†ก

 

์ด ๊ตฌ์กฐ์—์„œ ํ•˜๋‚˜์˜ ์ฃผ๋ฌธ์ด ์™„๋ฃŒ๋˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ˆ์ฐจ๊ฐ€ ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์ง„ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

  • โœ… ํŒ๋งค์ž๊ฐ€ ์ฃผ๋ฌธ์„ ์Šน์ธํ•˜๊ณ ,
  • โœ… ๋ฌผ๋ฅ˜์—…์ฒด๊ฐ€ ํŒ๋งค์ž๋กœ๋ถ€ํ„ฐ ์ƒํ’ˆ์„ ์ˆ˜๋ นํ•˜๊ณ ,
  • โœ… ๊ณ ๊ฐ์—๊ฒŒ ๋ฐฐ์†ก์ด ์™„๋ฃŒ๋˜๊ณ ,
  • โœ… ์†ก์žฅ ์ฒ˜๋ฆฌ ๋ฐ ์ •์‚ฐ๊นŒ์ง€ ๋งˆ๋ฌด๋ฆฌ

๊ทธ๋Ÿฐ๋ฐ ์ค‘๊ฐ„์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์ด ์ƒ๊ธฐ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

  • โ—๋ฌผ๋ฅ˜์—…์ฒด๊ฐ€ ์ƒํ’ˆ์„ ๋ชป ์ฐพ์Œ → โŒ๋ฐฐ์†ก ์‹คํŒจ
  • โ—ํŒ๋งค์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ์ž˜๋ชป๋œ ์ƒํ’ˆ์„ ํฌ์žฅ  → โŒ๋ฐ˜ํ’ˆ
  • โ—์†ก์žฅ ๋ฒˆํ˜ธ ๋ˆ„๋ฝ → โŒ์ถ”์  ๋ถˆ๊ฐ€

์ด๋Ÿด ๊ฒฝ์šฐ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ์žฌ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์–ด๋А ํ•œ ๋‹จ๊ณ„๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ์ „์ฒด ๊ฑฐ๋ž˜๊ฐ€ ์˜๋ฏธ ์—†์–ด์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค.

๐Ÿ’กLUW๋Š” ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ "์ „๋ถ€ ์„ฑ๊ณตํ•˜๋ฉด ์‹คํ–‰, ํ•˜๋‚˜๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ์ „๋ถ€ ์ทจ์†Œ"ํ•˜๋Š” ๋ณดํ˜ธ๋ง‰์ด๋‹ค.

2. SAP ์—์„œ์˜ LUW๋Š” ์™œ ํ•„์š”ํ•œ๊ฐ€? 

SAP ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ Work Process( ์ž‘์—… ํ”„๋กœ์„ธ์Šค )๋ฅผ ๊ฑฐ์ณ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ์ปค๋ฐ‹์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์—, DB์˜ ์ผ๊ด€์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด SAP๋Š” SAP LUW ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ Work Process๋ฅผ ๊ฑฐ์น˜๋”๋ผ๋„ ๋ณ€๊ฒฝ ์ž‘์—…์„ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ ๋‹จ์œ„๋กœ ๋ฌถ๊ณ , ํ•œ ๋ฒˆ์˜ DB LUW๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ. ์ฆ‰, ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์— COMMIT ํ•˜๊ฑฐ๋‚˜ ROLLBACK ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐœ๋…์ด๋‹ค.

๐Ÿ’กLUW๋Š” SAP์˜ ๋ณต์žกํ•œ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์—์„œ๋„ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€์ผœ์ฃผ๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฒ•์ด๋‹ค.

3. SAP LUW๋ฅผ ์ œ์–ดํ•˜๋Š” ์ฃผ์š” ABAP ๋ฌธ์žฅ

โœ… COMMIT WORK

  • ๋ชจ๋“  ๋“ฑ๋ก๋œ ๋ณ€๊ฒฝ ์ž‘์—…์„ ์‹คํ–‰. ์ด ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์‹ค์ œ DB ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

โœ… ROLLBACK WORK

  • ๋“ฑ๋ก๋œ ์ž‘์—…์„ ๋ชจ๋‘ ์ทจ์†Œ. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋“ฑ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

โœ… SET UPDATE TASK LOCAL

  • CALL FUNCTION ... IN UPDATE TASK ์„ ํ˜„์žฌ ์ž‘์—… ํ”„๋กœ์„ธ์Šค์—์„œ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ.  (๐Ÿ’กCALL FUNCTION ... IN UPDATE TASK๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Update Work Process์—์„œ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ )
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „์— ๋ฏธ๋ฆฌ ์„ ์–ธ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ํ…Œ์ŠคํŠธ ์‹œ ์‚ฌ์šฉ( ๋””๋ฒ„๊น… ์œ ์šฉ ).

4. SAP LUW ๋‹ค์–‘ํ•œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

๐Ÿ“ŒUpdate Function Module ์‚ฌ์šฉ (CALL FUNCTION ... IN UPDATE TASK)

  • IN UPDATE TASK๋กœ ํ˜ธ์ถœ๋œ Function Module์€ ์ง€๊ธˆ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ , ๋‚˜์ค‘์— ์‹คํ–‰๋˜๋„๋ก ๋‚ด๋ถ€์ ์œผ๋กœ ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”(VBHDR, VBDATA, VBMOD)์— ๋“ฑ๋ก ํ›„ COMMIT WORK ๊ตฌ๋ฌธ์ด ์‹คํ–‰๋  ๋•Œ ๋“ฑ๋ก๋œ ํ•จ์ˆ˜๋“ค์ด ํ•œ๊บผ๋ฒˆ์— ์‹คํ–‰

๐Ÿ“ŒSubroutine ๋“ฑ๋ก (PERFORM ... ON COMMIT)

  • ์„œ๋ธŒ๋ฃจํ‹ด์„ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ปค๋ฐ‹ ์‹œ์ ์— ์‹คํ–‰ํ•˜๋„๋ก ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•

๐Ÿšซ ๊ณตํ†ต ์ œ์•ฝ์‚ฌํ•ญ

  • COMMIT WORK ์‚ฌ์šฉ ๊ธˆ์ง€โŒ : ์ด๋ฏธ ์ปค๋ฐ‹ ๋˜๋Š” ๋กค๋ฐฑ ์ค‘์ธ ์‹œ์ ์ด๋ฏ€๋กœ ํŠธ๋žœ์žญ์…˜ ์ถฉ๋Œ ๊ฐ€๋Šฅ
  • ROLLBACK WORK ์‚ฌ์šฉ ๊ธˆ์ง€โŒ : ํŠธ๋žœ์žญ์…˜ ์ข…๋ฃŒ ์ค‘์— ๋‹ค์‹œ ๋กค๋ฐฑ์€ ๋ถˆ๊ฐ€ → ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • MESSAGE TYPE 'A' (์ค‘๋‹จ ๋ฉ”์‹œ์ง€) ๊ธˆ์ง€โŒ : ๋‚ด๋ถ€์ ์œผ๋กœ ROLLBACK WORK ์‹คํ–‰๋จ → ์•”๋ฌต์  ์˜ค๋ฅ˜ ์œ ๋ฐœ
โ—ํŠนํžˆ MESSAGE ... TYPE 'A'๋ฅผ error_message ์˜ˆ์™ธ๋กœ ๋ฐ›์•„๋„, MESSAGE TYPE 'A' ํŠน์„ฑ์ƒ ๋‚ด๋ถ€์ ์œผ๋กœ ROLLBACK WORK๊ฐ€ ์‹คํ–‰๋˜๋ฏ€๋กœ ์‚ฌ์šฉ ๊ธˆ์ง€

 

โœ๏ธ ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์‹ค๋ฌด์—์„œ SAP LUW ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ์ž‘์—… ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ์—ฎ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๊ธฐํšŒ๋Š” ์‚ฌ์‹ค ๋งŽ๋‹ค. ๋Œ€๋ถ€๋ถ„์€ ์ด๋ฏธ ์ •ํ•ด์ง„ ๊ตฌ์กฐ ์•ˆ์—์„œ COMMIT๋งŒ ์ ์ ˆํžˆ ํ˜ธ์ถœํ•˜๋ฉด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋‹ค. ํ•˜์ง€๋งŒ ์‹ค๋ฌด์—์„œ ‘ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š”’ ๋ฐ ๊ผญ ํ•„์š”ํ•œ ๊ฐœ๋…์ด๋‹ˆ ์•Œ์•„๋‘๋„๋ก ํ•˜์ž. 

 

 

 


โ„น๏ธ ๊ฐ™์ด ์ฝ์œผ๋ฉด ์ข‹์€ ํฌ์ŠคํŒ…

๐Ÿ”—[ABAP Concept (๐Ÿ“๊ฐœ๋…)/Advanced] - ABAP ์—์„œ AUTO COMMIT์€ ๋Œ€์ฒด ์–ธ์ œ ์‹คํ–‰๋˜๋Š” ๊ฑธ๊นŒ?

 

ABAP ์—์„œ AUTO COMMIT์€ ๋Œ€์ฒด ์–ธ์ œ ์‹คํ–‰๋˜๋Š” ๊ฑธ๊นŒ?

ABAP ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ด๋Ÿฐ ์ƒ๊ฐ์„ ํ•œ๋ฒˆ์ฏค ํ•ด๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. COMMIT WORK ๋ฌธ์žฅ์„ ๋„ฃ์ง€ ์•Š์•˜๋Š”๋ฐ, ์™œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ(commit)์ด ๋˜์ง€? ์ฒ˜์Œ์—๋Š” ๋ฒ„๊ทธ์ธ๊ฐ€ ์‹ถ์–ด ์˜์‹ฌ๋„ ํ•ด๋ณด๊ณ , ํŠธ๋žœ์žญ์…˜์ด ๊ผฌ์ธ ๊ฑธ

twossun.tistory.com