Subroutine์ด๋?
https://jay-din.tistory.com/95
[SAP ABAP] Subroutine ํ๋ผ๋ฏธํฐ(Call by Value, Call by Reference, Call by Value and Result)
ํ๋ผ๋ฏธํฐ(Parameter) ํ๋ผ๋ฏธํฐ(Parameter)๋ Subroutine์ ํธ์ถํ๋ ๊ตฌ๋ฌธ๊ณผ ํธ์ถ๋ฐ๋ ๊ตฌ๋ฌธ ์ฌ์ด์ ์ฃผ๊ณ ๋ฐ๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. Subroutine ๋ด์์ ํ๋ผ๋ฏธํฐ๋ DATA ๊ตฌ๋ฌธ์ผ๋ก ์ ์ํ๋ ์ผ๋ฐ์ ์ธ Local๋ณ์์ ๊ฐ
jay-din.tistory.com
Actual Parameter์ Formal Parameter ์์ฝ ์ ๋ฆฌ
Subroutine์์๋ Actual Parameter์ Formal Parameter๋ฅผ ํตํด ๊ฐ์ ์ ๋ฌํ์ฌ ํธ๋ค๋งํฉ๋๋ค.
Actual Parameter | PERFORM ๊ตฌ๋ฌธ์์ ํธ์ถํ ๋ ์ ๋ฌ๋๋ ๊ฐ |
Formal Parameter | FORM ๋ธ๋ก์์ ์ ์๋๋ ๋งค๊ฐ๋ณ์ |
Actual Parameter (์ค์ ๋งค๊ฐ๋ณ์)
- Actual Parameter๋ PERFORM ๊ตฌ๋ฌธ์์ ํธ์ถํ ๋ ์ ๋ฌ๋๋ ๊ฐ์ ๋๋ค. ์ด ๊ฐ๋ค์ ํธ์ถ๋ FORM ๋ธ๋ก์์ ์ฌ์ฉ๋ฉ๋๋ค.
- PERFORM ๊ตฌ๋ฌธ ๋ด์์ FORM์ ํธ์ถํ ๋, ์ค์ ๋งค๊ฐ๋ณ์์ ํด๋นํ๋ ๊ฐ์ ์ง์ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด
DATA: lv_num1 TYPE i VALUE 10,
lv_num2 TYPE i VALUE 20.
PERFORM calculate_sum USING lv_num1 lv_num2.
์ ์์ ์์ `lv_num1` ๊ณผ `lv_num2` ๋ ์ค์ ๋งค๊ฐ๋ณ์์ ๋๋ค.
์ด๋ค์ `calculate_sum` FORM์ ํธ์ถํ ๋ ์ ๋ฌ๋๋ ๊ฐ์ผ๋ก, ํ์ ๋งค๊ฐ๋ณ์์ธ num1๊ณผ num2์ ๋์๋ฉ๋๋ค.
Formal Parameter (ํ์ ๋งค๊ฐ๋ณ์)
- Formal Parameter๋ FORM ๋ธ๋ก์์ ์ ์๋ ๋งค๊ฐ๋ณ์์ ๋๋ค. ์ด๋ ํธ์ถํ ๊ณณ์์ ์ ๋ฌ๋๋ ๊ฐ์ ๋ฐ์๋ค์ด๋ ์ญํ ์ ํฉ๋๋ค.
- FORM ๋ธ๋ก ๋ด์์๋ง ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, PERFORM ๊ตฌ๋ฌธ์์ ํด๋น FORM ๋ธ๋ก์ ํธ์ถํ ๋ ํ์ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํฉ๋๋ค.
- ํ์ ๋งค๊ฐ๋ณ์๋ ํธ์ถ ์ ์ ๋ฌ๋๋ ์ค์ ๊ฐ์ ๋ํด ์ด๋ฆ๋ง ์ ์ํ๊ณ , ์ค์ ๊ฐ์ ํธ์ถ ์์ ๊ฒฐ์ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด
REPORT ZEXAMPLE.
FORM calculate_sum USING num1 TYPE i num2 TYPE i.
DATA result TYPE i.
result = num1 + num2.
WRITE: / 'Sum:', result.
ENDFORM.
์์ ์์ ์์ `num1`๊ณผ `num2`๋ ํ์ ๋งค๊ฐ๋ณ์์ ๋๋ค.
์ด๋ค์ `calculate_sum` FORM ๋ธ๋ก ๋ด์์ ์ฌ์ฉ๋๋ ๋งค๊ฐ๋ณ์๋ก ํธ์ถ ์ ์ ๋ฌ๋๋ ๊ฐ์ ๋ํ ์ด๋ฆ๋ง์ ์ ์ํฉ๋๋ค.
'๐งโ๐ผ SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SAP ABAP] TYPES ๋? BEGIN OF - END OF ๋? (0) | 2024.03.28 |
---|---|
[SAP ABAP] Function Module ๋ง๋๋ ๋ฒ (0) | 2024.03.28 |
[SAP ABAP] ์ธํฐ๋ ํ ์ด๋ธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB) ํ ์ด๋ธ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ (0) | 2024.03.21 |
[SAP ABAP] IF-ENDIF์ CASE-ENDCASE ์กฐ๊ฑด๋ถ ๋? (์ฐจ์ด์ , ์ฌ์ฉ๋ฒ) (0) | 2024.03.20 |
[SAP ABAP] CLEAR ๋? (0) | 2024.03.20 |