1. Function Group์ด๋ ๋ฌด์์ธ๊ฐ?
SAP ABAP ๊ฐ๋ฐํ๋ค ๋ณด๋ฉด Function Module(FM)์ ์์ฃผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. FM์ ์ธ๋ถ์์ ํธ์ถํ ์ ์๋ ๋ ๋ฆฝ์ ์ธ ํจ์์ธ๋ฐ, ์ด FM๋ค์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌถ์ด์ ๊ด๋ฆฌํ๋ ์ปจํ ์ด๋๊ฐ ๋ฐ๋ก Function Group(ํจ์ ๊ทธ๋ฃน)์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์์ฐ๊ด๋ฆฌ(PP)๊ด๋ จ FM๋ค์ ํ๋์ Function Group `ZPP`์ ๋ชจ์๋๊ณ , ์์ (SD)๊ด๋ จ FM๋ค์ `ZSD`์ ๋ฐ๋ก ๋ชจ์๋๋ ์์ ๋๋ค.
๐ก Function Group์ ๋ฉ์ธ ํ๋ก๊ทธ๋จ ์ด๋ฆ ๊ท์น
Function Group ์ด๋ฆ์ด `ZPP`์ด๋ฉด, SAP๊ฐ ์๋ ์์ฑํ๋ ๋ฉ์ธ ํ๋ก๊ทธ๋จ ์ด๋ฆ์ `SAPLZPP`์ ๋๋ค. (SAPL+ํจ์๊ทธ๋ฃน๋ช )
2. ๊ตฌ์กฐ์ ๋ํ ํต์ฌ ๋น์ ใ ก ์ฑ ์ฅ, ์ฑ ์ ๋ชฉ, ๋ณธ๋ฌธ ํ์ผ
Function Group๊ณผ Include ๊ตฌ์กฐ๊ฐ ์ฒ์์๋ ํท๊ฐ๋ฆด ์ ์์ด์ ์ฑ ์ฅ์ ๋น์ ํ๋ฉด ์ฝ๊ฒ ์ดํด๋ฉ๋๋ค.
์ฑ ์ ๋ชฉ๋ง ๋ด์๋ ๋ด์ฉ์ด ์ด๋ ์๋์ง ๋ชจ๋ฅด๊ณ , ๋ณธ๋ฌธ ํ์ผ์ ์ด์ด์ผ ๋น๋ก์ ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก Function Module ์ด๋ฆ์ ํธ์ถ์ ์ํ ์ธํฐํ์ด์ค์ผ ๋ฟ์ด๊ณ , ์ค์ ABAP์ฝ๋๋ UXX Includeํ์ผ ์์ ๋ค์ด ์์ต๋๋ค.
3. ํ์ผ ๊ตฌ์กฐ ์์
Function Group `ZPP`๋ฅผ ์์๋ก ๋ค์ด, SAP๊ฐ ์ค์ ๋ก ์ด๋ค ํ์ผ๋ค์ ๋ง๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
SAPLZPP ← ๋ฉ์ธ ํ๋ก๊ทธ๋จ (SAP ์๋ ์์ฑ, ์ง์ ์์ โ)
โ
โโโ LZPPTOP ← TOP Include : ์ ์ญ ๋ณ์·ํ
์ด๋ธ ์ ์ธ
โ (๊ฐ์ FG์ ๋ชจ๋ FM์ด ๊ณต์ )
โ
โโโ LZPPUXX ← ๋ง์คํฐ UXX Include : FM ํ์ผ ๋ชฉ๋ก(์ธ๋ฑ์ค)
โ (์ค์ ์ฝ๋ ์์, SAP๊ฐ ์๋ ๊ด๋ฆฌ)
โ
โโโ LZPPU01 ← FM ์์ค : Z_PP_BDC_CO10H
โโโ LZPPU02 ← FM ์์ค : Z_PP_XXX_002
โโโ LZPPU03 ← FM ์์ค : Z_PP_XXX_003
โโโ ... ← U04 ~ U99๊น์ง FM ์ถ๊ฐ ์ ์๋ ์์ฑ
ํ์ผ ์ด๋ฆ ๊ท์น๋ ํจํด์ด ์์ต๋๋ค. ๋ชจ๋ Include ์ด๋ฆ์ L + ํจ์๊ทธ๋ฃน๋ช ์ผ๋ก ์์ํฉ๋๋ค.
๊ทธ ๋ค์ `TOP, `UXX`, `U01` ๊ณผ ๊ฐ์ ์ ๋ฏธ์ฌ๊ฐ ๋ถใน์ด ์ญํ ์ ๊ตฌํฉ๋๋ค.
4. UXX Include์ ๋ ๊ฐ์ง ์ญํ
์ฒ์ ๊ณต๋ถํ ๋ ๊ฐ์ฅ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ด ๋ฐ๋ก "UXX๊ฐ ํ๋์ผ, ์ฌ๋ฌ ๊ฐ์ผ?"์ ๋๋ค. ๋ต์ ๋ ๋ค์ ๋๋ค. ์ญํ ์ด ๋ค๋ฅธ ๋ ์ข ๋ฅ๊ฐ ์์ต๋๋ค.
4-1) ๋ง์คํฐ UXX ใ ก ์ธ๋ฑ์ค ์ญํ
`LZPPUXX`๋ ์ค์ ์ฝ๋๊ฐ ์๊ณ , ๊ฐ๋ณ FM Include ํ์ผ๋ค์ ๋ชฉ๋ก๋ง ๋ด๊ณ ์๋ ์ธ๋ฑ์ค์ ๋๋ค. FM์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋๋ง๋ค SAP๊ฐ ์๋์ผ๋ก ์ด ๋ชฉ๋ก์ ๊ฐฑ์ ํฉ๋๋ค.
* Include LZPPUXX — FM Include ์ธ๋ฑ์ค (SAP ์๋ ๊ด๋ฆฌ)
INCLUDE LZPPU01. " Z_PP_BDC_CO10H
INCLUDE LZPPU02. " Z_PP_XXX_002
INCLUDE LZPPU03. " Z_PP_XXX_003
4-2) ๊ฐ๋ณ UXX (U01, U02, ---) ใ ก ์ค์ ์์ค ์ ์ฅ์
`LZPPU01`, `LZPPU02`… ์ฒ๋ผ ๋ฒํธ๊ฐ ๋ถ์ ํ์ผ๋ค์ด ๊ฐ FM์ ์ค์ ABAP ์์ค์ฝ๋๋ฅผ ๋ณด๊ดํฉ๋๋ค. `FUNCTION ... ENDFUNCTION.` ๋ธ๋ก์ด ๋ฐ๋ก ์ฌ๊ธฐ์ ์ ์ฅ๋ฉ๋๋ค. FM์ ์๋ก ์์ฑํ๋ฉด SAP๊ฐ ์๋์ผ๋ก ๋ค์ ๋ฒํธ์ ํ์ผ์ ๋ง๋ค์ด์ค๋๋ค.
* Include LZPPU01
FUNCTION Z_PP_BDC_CO10H.
*"-----------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_ORDER_NO) TYPE AUFNR
*" EXPORTING
*" VALUE(EV_RESULT) TYPE CHAR1
*" EXCEPTIONS
*" NOT_FOUND = 1
*"-----------------------------------------------------------
" ์์ฐ์ค๋ BDC ์ฒ๋ฆฌ ๋ก์ง
DATA: lv_subrc TYPE sy-subrc.
" ... ์ค์ ์
๋ฌด ๋ก์ง ...
EV_RESULT = 'S'.
ENDFUNCTION.
๐ ๋ฒํธ ์๋ ๋ถ์ฌ ๊ท์น
FM์ SE37์์ ์ฒ์ ๋ง๋ค๋ฉด → `U01`, ๋ ๋ฒ์งธ FM → `U02`, … ์ต๋ `U99`๊น์ง ์๋์ผ๋ก ๋ฒํธ๊ฐ ๋ถ์ฌ๋ฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ง์ ๋ฒํธ๋ฅผ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค.
5. ์ฃผ์ํ ์
1. UXX๋ SAP๊ฐ ์๋ ๊ด๋ฆฌ ใ ก ์ง์ ํธ์งํ์ง ๋ง ๊ฒ
- `LZPPUXX`๋ฅผ SE38์์ ์ง์ ์ด์ด ์์ ํ๋ฉด FM์ธ์ ๋ถ๊ฐ, ํ์ฑํ ์ค๋ฅ ๋ฑ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๊น๋๋ค. FM์ ์์ฑ, ์ญ์ ๋ ๋ฐ๋์ SE37 ๋๋ SE80์์ Function Module ๋จ์๋ก ์์ ํ์ธ์. ๊ทธ๋ฌ๋ฉด SAP๊ฐ UXX ๋ชฉ๋ก์ ์๋์ผ๋ก ๊ฐฑ์ ํด์ค๋๋ค.
2. ๊ฐ์ FG ๋ด FM๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ญ ๋ณ์๋ฅผ ๊ณต์
- `LZPPTOP`์ ์ ์ธ๋ ๋ณ์์ ํ ์ด๋ธ์ ๊ฐ์ Function Group ์์ ๋ชจ๋ FM์ด ๊ณต์ ํฉ๋๋ค. ์ฆ `Z_PP_FM_A`์์ `gv_plant`์ ๊ฐ์ ๋ฃ์ผ๋ฉด, ๊ฐ์ FG์์ `Z_PP_FM_B`์์๋ ๊ทธ ๊ฐ์ด ๊ทธ๋๋ก ๋ณด์ ๋๋ค. ์ด ํน์ฑ์ ์๋์ ์ผ๋ก ํ์ฉํ์ฌ FM ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ฑฐ๋, ๋ฐ๋๋ก ์๋์น ์์ ๊ณต์ ๋ก ๋ฒ๊ทธ๊ฐ ์๊ธฐ์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
3. FM ์ด๋ฆ ≠ Include ํ์ผ ์ด๋ฆ
-
`Z_PP_BDC_CO10H`๋ผ๋ FM๊ณผ `LZ_PPU51`์ด๋ผ๋ Include ํ์ผ์ ์์ ํ ๋ค๋ฅธ ์ด๋ฆ์ ๋๋ค. FM ์ด๋ฆ์ผ๋ก Include ํ์ผ์ ์ฐพ์ผ๋ ค ํ๋ฉด ์ฐพ์ ์ ์์ต๋๋ค. Include ํ์ผ์ L + ํจ์๊ทธ๋ฃน๋ช + U + ๋ฒํธ ํจํด์ผ๋ก ์์ฑ๋๋ฏ๋ก, SE80์์ Function Group์ Includes ํญ๋ชฉ์ ํผ์ณ์ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ํ์คํฉ๋๋ค.