๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง‘‍๐Ÿ’ผ SAP/ABAP

[SAP ABAP] Function Module ๋งŒ๋“œ๋Š” ๋ฒ•

by Jay Din 2024. 3. 28.
728x90
๋ฐ˜์‘ํ˜•

Function Module ์ด๋ž€?

Function Module์€ sap ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค.

Function Module ํŠน์ง•

  1. ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ: Function Module์€ ํ•œ ๋ฒˆ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„: Function Module์€ ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ ๋‹จ์œ„๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ํ˜ธ์ถœ๋˜์–ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  3. ์ธํ„ฐํŽ˜์ด์Šค: Function Module์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋  ๋•Œ ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜ ๊ฐ’์— ๋Œ€ํ•œ ๋ช…์„ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋…๋ฆฝ์ ์ธ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ: Function Module์€ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜ธ์ถœ๋œ ํŠธ๋žœ์žญ์…˜๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋ชจ๋“ˆ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Function Module ์‚ฌ์šฉ

  1. ์žฌ์‚ฌ์šฉ: ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ Function Module์„ ํ™œ์šฉํ•˜์—ฌ ์ค‘๋ณต์„ ํ”ผํ•˜๊ณ  ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ชจ๋“ˆ ๊ฐ„ ํ†ตํ•ฉ: ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ์„œ๋กœ ํ†ตํ•ฉ๋˜์–ด ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  3. ์™ธ๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค: Function Module์€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ํ†ตํ•ฉ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์‹œ์Šคํ…œ์—์„œ SAP ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ๋‚˜ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ: ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Function Group ์ด๋ž€?

Function Group์€ SAP ์‹œ์Šคํ…œ์—์„œ Function Module์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ด๋Š” Function Module์„ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ฌถ์–ด์„œ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜ ๋ชจ๋“ˆ์„ ํ•œ ๊ณณ์— ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Function Module ๋งŒ๋“œ๋Š” ๋ฒ•

se37 / Function Group ์ƒ์„ฑ

se37

 

Function Group๋ช…๊ณผ ์„ค๋ช… ์ž…๋ ฅ

 

๊ฐœ๋ฐœ ํด๋ผ์Šค ์ž…๋ ฅ. ํ…Œ์ŠคํŠธ๊ธฐ ๋•Œ๋ฌธ์— $TMP๋กœ ๋งŒ๋“ฌ

 

SE80 / ๊ฐœ๋ฐœํด๋ž˜์Šค: $TMP / Function ๊ทธ๋ฃน์— ๋ณด๋ฉด ๋ฐฉ๊ธˆ ๋งŒ๋“  ZTRAINING_0000 ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์„ฑํ•œ Function์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

se37 / Function Module ์ƒ์„ฑ. Function Module ๋ช… ์ž…๋ ฅ ํ›„ Create ํด๋ฆญ

 

Function Group (ZTRAINING_0000)๊ณผ Function์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. 

 

Import์—์„œ ์ž…๋ ฅ ๋ฐ›์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

Attributes - Function Module์˜ ์†์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์—๋Š” ์‹คํ–‰ ์‹œ ์ค‘๋‹จ, ๋™์  ๋ณ€๊ฒฝ ํ—ˆ์šฉ, ์‹œ์Šคํ…œ ๋˜๋Š” ์‚ฌ์šฉ์ž์— ์˜ํ•œ ๋ชจ๋“ˆ ์ž ๊ธˆ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
Import - Function Module์— ๋“ค์–ด์˜ค๋Š”(์ž…๋ ฅ๋˜๋Š”) ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
- Function Module ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ์™ธ๋ถ€์—์„œ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
Export - Function Module์—์„œ ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ „๋‹ฌ๋˜๋Š”(์ถœ๋ ฅ๋˜๋Š”) ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
- Function Module ๋‚ด์—์„œ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋‚˜ ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ ๋“ฑ์„ ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
Changing - ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ , ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ๋‹ค์‹œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
- Import์™€ Export์˜ ๊ฒฐํ•ฉ๋œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
Exceptions - Function Module์ด ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
- ์‹คํ–‰ ์ค‘์— ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ ์ ˆํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Function module์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฐ’์„ ์ถœ๋ ฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•ด์ค๋‹ˆ๋‹ค.

 

์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ๋กœ ๋‚˜๋ˆ„ ์—ฐ์‚ฐ ์ฝ”๋“œ๋ฅผ ์งœ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

0์œผ๋กœ๋Š” ๋‚˜๋ˆŒ ์ˆ˜๊ฐ€ ์—†์œผ๋‹ˆ, ๋งŒ์•ฝ I_NUM2๊ฐ€ 0์ด๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

 

์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜๊ณ  Active(Ctrl+F3)๋ฅผ ํ•˜๊ณ  ์‹คํ–‰(F8)์„ ๋ˆŒ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Import ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ์ž„์˜์˜ ์ˆซ์ž๋ฅผ ๋„ฃ๊ณ  ์‹คํ–‰(F8) ํ•˜๋ฉด Export ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ฒฐ๊ณผ๊ฐ€ ์ž˜ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ 0์œผ๋กœ ๋‚˜๋ˆŒ ๊ฒฝ์šฐ, ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

 

์ƒ์„ฑ๋œ Function Module์˜ Include์— ์‚ฌ์ง„๊ณผ ๊ฐ™์ด LZ+ํŒŒ์ผ๋ช…+TOP ๊ณผ LZ+ํŒŒ์ผ๋ช…+UXX ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

TOP์—์„œ๋Š” ๋กœ์ปฌ ํด๋ž˜์Šค ์ •์˜์™€, ๊ธ€๋กœ๋ฒŒ ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ ์„ ์–ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UXX๋Š” ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.(์ด์œ ๋Š” ๊นŒ๋จน์Œ ์•„๋Š” ๋ถ„ ๋Œ“๊ธ€ ๋ถ€ํƒ) 

 

ํ”„๋กœ๊ทธ๋žจ์—์„œ Function ๋ชจ๋“ˆ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Exporting์— ์ž…๋ ฅ๊ฐ’์„ ์ฃผ๊ณ , IMPORTING์— ์ถœ๋ ฅ๊ฐ’์„ ๋ฐ›์„ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

*&---------------------------------------------------------------------*
*& Report ZTEST04
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZTEST04.

DATA: num1    type i,
      num2    type i,
      result  type i.

num1 = 5.
num2 = 9.

CALL FUNCTION 'ZTEST04'
  EXPORTING
    i_num1 = num1
    i_num2 = num2
 IMPORTING
   I_RESULT       = result.

WRITE: result.

 

์‹คํ–‰๊ฒฐ๊ณผ๋Š” 5+9 = 14. ์ฆ‰, 14๋กœ ์ž˜ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•