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

[SAP ABAP] ์„œ๋ธŒ๋ฃจํ‹ด(Subroutine)์˜ Actual Parameter์™€ Formal Parameter ๋ž€?

by Jay Din 2024. 3. 21.
728x90
๋ฐ˜์‘ํ˜•

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 ๋ธ”๋ก์—์„œ ์ •์˜๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜

https://www.google.com/url?sa=i&url=http%3A%2F%2Fsapnetweaver7.blogspot.com%2F2011%2F01%2Fsubroutines.html&psig=AOvVaw0h-sC-XJngVh0u1zl0n8zI&ust=1711095513098000&source=images&cd=vfe&opi=89978449&ved=0CBIQjRxqFwoTCNi_ztP1hIUDFQAAAAAdAAAAABAE

 

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 ๋ธ”๋ก ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์— ๋Œ€ํ•œ ์ด๋ฆ„๋งŒ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•