ํจ์(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