ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๋๋ถ๋ถ Function ์ด๋ ๊ฒ์ด ์กด์ฌํ๋ฉฐ, ์์ฃผ ์ฌ์ฉ๋๋ ๋ก์ง์ ๋ชจ๋ํ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๊ณ ์๋ Fucntion์ด ABAP ์์๋ ์ด๋ค ๊ตฌ์กฐ๋ก ๋์ด ์๋์ง ์ด๋ฒ ํฌ์คํ ์์ ์์๋ณด๊ณ ์ ํ๋ค.
( ๊ธฐ๋ณธ์ ์ธ ํ์ ํ๋ผ๋ฏธํฐ ์ค๋ช ๋ฐ RFC(I/F), Update Module ๊ด๋ จ ๋ด์ฉ์ ์๋ตํ์๋ค. )
ABAP์์๋ ์์ค๋ฅผ ๋ชจ๋ํ ํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ค์ด ์กด์ฌํ๋ฉฐ, ๊ทธ ์ค ๋ง์ด ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ Function์ผ ๊ฒ์ด๋ค. ABAP์์ Function์ Function Module์ด๋ผ ํ๋ฉฐ, Function Group์ด๋ ์์ ํญ๋ชฉ์ ์ข ์๋์ด ์๋ค. ์ฆ, Function Group์ ๋จผ์ ์์ฑํ๊ณ ๊ทธ ํ์ ๋ ๋ฒจ์ Function Module์ ์์ฑํ ์ ์์ผ๋ฉฐ, ํ๋์ Function Group ์๋ ์ฌ๋ฌ ๊ฐ์ Function Module์ด ์กด์ฌ ํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค.
Function Group์์๋ Type-1 ํ๋ก๊ทธ๋จ๊ณผ ๋์ผํ๊ฒ ์ ์ญ๋ณ์, Subroutine, Screen, Text Symbol ๋ฑ์ ์์ฑ ๋ฐ ์ฌ์ฉ๊ฐ๋ฅ ํ๋ฉฐ, ์ด๋ ๊ฒ ์ ์ธ๋ ๊ฒ๋ค์ ๋์ผํ Function Group ๋ฐ์ ์กด์ฌํ๋ ๋ชจ๋ Function Module์์ ์ฌ์ฉ(ํธ์ถ)์ด ๊ฐ๋ฅํ๋ค.
์์ ์ฒ๋ผ Function Group( "YYFG_CM01" )์ ์์ฑํ๋ฉด ํ๋์ Main Program๊ณผ 2๊ฐ์ Include Program์ด ๊ธฐ๋ณธ์ผ๋ก ์์ฑ๋๋ค.
System-defined Include Program
"SAPL" + Function Group๋ช : Function Group Main Program ( FunctionPool )
"L" + Function Group๋ช + "TOP" : ๊ธ๋ก๋ฒ(์ ์ญ)์ผ๋ก ์ฌ์ฉํ ๋ณ์(Data Object)๋ฅผ ์ ์ธํ๋ Include Program
"L" + Function Group๋ช + "UXX" : Function Module ์์ฑ์ ์์ฑ๋๋ Include Program์ด ์ ์ธ๋๋ Include Program
๊ทธ ๋ฐ์ ํ๋จ์ ์ฃผ์๋์ด ์๋ Subprograms๊ณผ PBO/PAI Modules ๊ด๋ จ Include Program์ ์ ํ์ฌํญ์ด๋ฉฐ, ์ํฉ์ ๋ฐ๋ผ ์์ฑํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
User-defined Include Program
"L" + Function Group๋ช + "F" + Sequence 2์๋ฆฌ : Subroutine์ ์ ์ํ๋ Include Program
"L" + Function Group๋ช + "O" + Sequence 2์๋ฆฌ : PBO Module์ ์ ์ํ๋ Include Program
"L" + Function Group๋ช + "I" + Sequence 2์๋ฆฌ : PAI Module์ ์ ์ํ๋ Include Program
"L * TOP" Include Program์ ์ ์ธํ ์ ์ญ๋ณ์๋ Function Group์ ์กด์ฌํ๋ ๋ชจ๋ Function Module์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ๋ํ Default ๊ตฌ๋ฌธ์ธ "FUNCTION-POOL"์ Option ๊ฐ์ธ "MESSAGE-ID"๋ฅผ ์ฌ์ฉํ์ฌ Function Module์์ ์ฌ์ฉํ Message ID๋ Default๋ก ์ค์ ๊ฐ๋ฅํ๋ค.
์์ ๊ฐ์ด Function Module๋ ๊ฒฐ๊ตญ ํ๋์ Include Program์ด๋ฉฐ, "L" + Function Group๋ช + "U" + 2์๋ฆฌ Sequence ๋ฅผ ๊ฐ์ง ์ด๋ฆ์ผ๋ก ์๋ ์์ฑ๋๋ค. ( ์์ ์ ๊ฐ์ด ์์ฑ๋ ์์๋๋ก "U01", "U02"๋ก ์์ฑ๋จ ) ์ด๋ ๊ฒ ์์ฑ๋ Include Program์ "L * UXX" Include Program์ ์๋์ผ๋ก ์ ์ธ๋๋ฉฐ, ๊ทธ ์ ์ธ๋ ๊ตฌ๋ฌธ ๋ฐ์๋ ์ค์ ์์ฑ๋ Function Module๋ช ์ด ์ฃผ์์ผ๋ก ํ๊ธฐ๋๋ค. ํ๋ก๊ทธ๋จ ์๋จ์ ์ ํ์๋ ์ฃผ์์ฒ๋ผ ์ง์ ์์ ์ด ๋ถ๊ฐํ๋ฉฐ, Function Module ์์ฑ์๋ง๋ค ์๋์ผ๋ก Generate ๋๋ Include Program์ด๋ค.
์ด๋ ๋ฏ Function Module ํ๋๊ฐ ๋ ๋ฆฝ์ ์ธ ํ๋ก๊ทธ๋จ์ด ์๋๋ผ, Function Group์ ํ๋์ ์ปค๋ค๋ ํ๋ก๊ทธ๋จ ์์ ์ฌ๋ฌ Function Module (Include Program)๋ก ๋๋์ด์ ธ ์์์ ์ ์ ์๋ค.
์ด์ ๊ฐ์ Function Group๊ณผ Function Module ๊ตฌ์กฐ๋ก ์ธํด ์ค๋ฌด์์๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ์ฌํญ๋ค์ด ์ข ์ข ๋ฐ์ํ๋ ์ฃผ์ํ๋๋ก ํ์.
Case #1. Function Module Syntax ์ค๋ฅ
์ฃผ๋ก ABAP Dictionary Object (Table, Structure, Field..)๋ณ๊ฒฝ์ ๋ฐ์๋๋ ๋ฌธ์ ๋ก, ์๋ฅผ ๋ค์ด Table Field์ ๋ณ๊ฒฝ ๋๋ ์ญ์ ์, ๊ทธ ์ํฅ์ผ๋ก ํด๋น ํ๋๊ฐ ์ฌ์ฉ๋ ๊ธฐ์กด ์์ค์์ Syntax ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ด ๋ Syntax ์๋ฌ๊ฐ Function Module์์ ๋ฐ์ํ๋ค๋ฉด, ๊ฑฐ๊ธฐ์ ๋๋๋ ๊ฒ์ด ์๋๋ผ ๊ทธ Function Module์ด ์ํด ์๋ Function Group์ ์กด์ฌํ๋ ๋ชจ๋ Function Module์ ๋ํด์ ์๋ฌ๊ฐ ๋๊ฒ ๋๋ค. ์์ ๋งํ ๊ฒ๊ณผ ๊ฐ์ด Function Group์ด๋, ํ๋์ ํ๋ก๊ทธ๋จ ์์ Function Module( Include Program )๋ก ๋๋์ด์ ธ ์๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ Function Module์ ์๋ฌ๋ ๊ณง Function Group ์ ์๋ฌ์ด๊ธฐ๋ ํ๋ค. ๋ง์ฝ Interface ๊ด๋ จ Function Module์ ๋ชจ์๋ Function Group ์ด์๋ค๋ฉด ๊ทธ ์์ ๋ชจ๋ Interface๊ฐ ๋จนํต์ด ๋๋ ๋์ฐํ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค.
Case #2. ์ ์ญ๋ณ์ ์ด๊ธฐํ(Clear) ๋๋ฝ ์ค๋ฅ
๋์ผํ Function Group ๋ด์ Function Module๋ค์ด ๋์ผํ ์ ์ญ๋ณ์๋ฅผ ์ฌ์ฉํ์ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค. ๊ฐ์ Function Group์ Function Module "A" ์ "B" ๊ฐ ๋์ผํ ์ ์ญ๋ณ์ "G"๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด๋ณด์. ํ๋ก๊ทธ๋จ์์ Function "A"๋ฅผ ๋จผ์ ํธ์ถ ํ Function "B" ๋ฅผ ํธ์ถ ํ๋ค๋ฉด "B"์์๋ "A"์์ ์ฌ์ฉํ๋ ์ ์ญ๋ณ์ "G"์ ๋จ์์๋ ๊ฐ์ ๊ทธ๋๋ก "B"์์ ์ฌ์ฉํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ Function ์ด๋ฐ์ ์ ์ญ๋ณ์๋ฅผ ์ด๊ธฐํ ํ์ง ์์ผ๋ฉด ๊ธฐ์กด ์ฐ๋ ๊ธฐ ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉ๋์ด ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์๋ค. ๋ก์ง์ ์ผ๋ก Function Module ๋ผ๋ฆฌ ๊ฐ์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ฌ์ฉ๋๋ ์ ์ญ๋ณ์๋ผ๋ฉด ์ด๊ธฐํํ์ง ์๋ ๊ฒ์ด ๋ง๋ค.
'ABAP Concept (๐๊ฐ๋ ) > Advanced' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ABAP Initial Value ์ Null ์ ์ฐจ์ด (0) | 2025.04.07 |
---|---|
|ABAP ๊ฐ๋ ์ ๋ฆฌ| AT NEW, AT LAST, AT FIRST, AT END OF (0) | 2022.07.04 |
|ABAP ๊ฐ๋ ์ ๋ฆฌ| Table Work Area (0) | 2020.09.16 |
|ABAP ๊ฐ๋ ์ ๋ฆฌ| TYPE๊ณผ LIKE์ ์ฐจ์ด (2) | 2020.09.09 |
|ABAP ๊ฐ๋ ์ ๋ฆฌ| Data Type (0) | 2020.09.08 |