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

[SAP ABAP] ํ•จ์ˆ˜(Function)์ด๋ž€?

by Jay Din 2023. 8. 24.
728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

ํ•จ์ˆ˜(Function)์ด๋ž€?

Function์€ Subroutine๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Subroutine์ด Local Modularization์ด๋ผ ํ•˜๋ฉด, Function Module์€ Global Modularization์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์„œ๋ธŒ๋ฃจํ‹ด(Subroutine)๊ณผ ํ•จ์ˆ˜(Function)์˜ ์ฐจ์ด

  ์„œ๋ธŒ๋ฃจํ‹ด(Subroutine) ํ•จ์ˆ˜(Function)
์ •์˜ ์œ„์น˜ ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€ ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ๋กœ ์ •์˜
ํ˜ธ์ถœ ๋ฐฉ๋ฒ• ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ˜ธ์ถœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ํ•จ์ˆ˜์—์„œ ํ˜ธ์ถœ
์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
๋ฐ˜ํ™˜ ๊ฐ’ ์—†์Œ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•จ
์ œ์–ด ๋ฐ˜ํ™˜ ํ˜ธ์ถœ ํ›„์— ํ˜ธ์ถœ ์ง€์ ์œผ๋กœ ๋ฐ˜ํ™˜ ํ˜ธ์ถœ ํ›„์— ๋ฐ˜ํ™˜ ๊ฐ’ ์ „๋‹ฌ ํ›„ ์ฒ˜๋ฆฌ
  • Function Module์€ Function Group์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” POOL์— ์†Œ์†๋˜์–ด์•ผ ํ•œ๋‹ค.
  • Function Module์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ ์‚ฌํ•ญ์„ ํ˜ธ์ถœํ•œ ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Function Module์€ ํ˜ธ์ถœ ํ”„๋กœ๊ทธ๋žจ์— ์ƒ๊ด€์—†์ด Stand-alone ๋ชจ๋“œ์—์„œ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

Function์„ ํ˜ธ์ถœํ•  ๋•Œ Input ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ , Function ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ Output ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Function์€ Function Group(TYPE F ํ”„๋กœ๊ทธ๋žจ)์— ์†Œ์†๋˜์–ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Function Group์€ ๊ฐœ๋ฐœ ํŒจํ‚ค์ง€์ฒ˜๋Ÿผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์˜ Function ๋“ฑ์„ ๋ชจ์•„ ๋†“์€ Container๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ํ•จ์ˆ˜ ๋ชจ๋“ˆ(Function Module)

Function Module์€ ์ค‘์•™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(R/3 Repository)์— ์ €์žฅ๋˜๋Š” ํŠน๋ณ„ํ•œ Global ์„œ๋ธŒ๋ฃจํ‹ด์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜๋ฏธ์—์„œ Function Module์„ Global Modularization์ด๋ผ ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ™์€ ๊ธฐ๋Šฅ์˜ ๊ตฌ๋ฌธ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ธธ์–ด์ง€๊ณ , ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๊ตฌ๋ฌธ๋งˆ๋‹ค ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋น„ํšจ์œจ์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ Function์„ ์ด์šฉํ•œ ๋ชจ๋“ˆํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์žฌ์‚ฌ์šฉ์„ ์ œ๊ณตํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

R/3 System์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ABAP ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฏธ ์ˆ˜๋งŽ์€ Function Module์ด ๋งŒ๋“ค์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์—ฐํžˆ ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์€ Function Module์„ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Function Module์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” Import Parameters, Export Parameters, Changing Parameters, Exceptions ๋“ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Import Parameters Function Module์— ์ „๋‹ฌํ•˜๋Š” ๊ฐ’์ด๋ฉฐ ์„ ํƒ ์‚ฌํ•ญ์ด๋‹ค.
Export Parameters Function Module๋กœ๋ถ€ํ„ฐ ABAP ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌ๋ฐ›๋Š” ๊ฐ’์ด๋ฉฐ ์„ ํƒ ์‚ฌํ•ญ์ด๋‹ค.
Changing Parameters Function Module์— ๊ฐ’์„ ๋„˜๊ธฐ๊ณ , ๊ทธ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
Tables ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์„ Function Module์— ์ „๋‹ฌํ•˜๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
Exceptions ์—๋Ÿฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

ํ•จ์ˆ˜ ๊ทธ๋ฃน(Function Group)

Function Group์€ ์—ฌ๋Ÿฌ Function Module์„ ๋ชจ์•„ ๋†“์€ Container์ž…๋‹ˆ๋‹ค.

Function Group์€ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Function์„ ํ˜ธ์ถœํ•˜์˜€์„ ๋•Œ, ์‹œ์Šคํ…œ์€ ํ˜ธ์ถœํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ Internal ์„ธ์…˜ ์•ˆ์œผ๋กœ Function Group ์ „์ฒด๋ฅผ Loadํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Function Group ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ณ , ์Šคํฌ๋ฆฐ์„ ์ƒ์„ฑํ•ด์„œ ํ˜ธ์ถœํ•˜๊ณ , PERFORM Subroutine ๋“ฑ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

์ฃผ์˜ํ•  ์ 

์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ Function์ด ์‹คํ–‰๋  ๋•Œ ์ด Function์ด ์†Œ์†๋œ Group ๋‚ด์˜ ๋ชจ๋“  Function์ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Function ํ•˜๋‚˜์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๋™์ผ Group ๋‚ด์˜ ๋ชจ๋“  Function์ด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Function Group ๋‚ด์— ์ค‘์š”ํ•œ Function์„ ๋งŽ์ด ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ธํ„ฐํŽ˜์ด์Šค์— ์‚ฌ์šฉ๋˜๋Š” RFC์ธ ๊ฒฝ์šฐ๋Š” ๋”์šฑ ์‹ ์ค‘์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 

Function Group์˜ ์ด๋ฆ„์€ 26์ž๊นŒ์ง€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Function Builder๋ฅผ ํ†ตํ•ด Function๊ณผ Group์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์‹œ์Šคํ…œ์€ ์ž๋™์œผ๋กœ Main Program๊ณผ Include Program์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ Main Program์˜ ์ด๋ฆ„์€ 'SAPL'์ด Function Group ์•ž์— ๋ถ™์–ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, fgrp๋ผ๋Š” Function Group์˜ Main Program ์ด๋ฆ„์€ 'SAPLFGRP'๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Program SAPL<fgrp>๋Š” ๋‹ค์Œ์˜ INCLUDE ํ”„๋กœ๊ทธ๋žจ์„ ํฌํ•จํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

L<fgrp>TOP. FUNCTION-POOL ๊ตฌ๋ฌธ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.
FUNCTION GROUP ์ „์ฒด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.
L<fgrp>UXX. Include ํ”„๋กœ๊ทธ๋žจ L<frgrp>U01, L<frgrp>U02์™€ ๊ฐ™์ด ๊ธฐ์ˆ ํ•œ๋‹ค.
์ด๊ฒƒ์€ ์‹ค์ œ Function Module์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

๋ฐ˜์‘ํ˜•

 

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

https://jay-din.tistory.com/242 

 

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

Function Module ์ด๋ž€? Function Module์€ sap ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค. Function Module ํŠน์ง• ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ: Function Module์€ ํ•œ ๋ฒˆ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์žฌ์‚ฌ

jay-din.tistory.com

 

728x90
๋ฐ˜์‘ํ˜•