다른 프로그램에도 있는 개념
Call by value
Call by Reference
그런던 ABAP에서 이를 보다 확장시킨 개념으로 사용하고 있습니다.
이 기본개념부터 차근차근 이해하고 있어야 내가 원하는 서브루틴을 만들고 남이만든것을 볼수 있습니다.
사견이 있어 객관적이지 못함점을 이해해 주시기 바랍니다.(죄송합니다. ㅠㅠ)
Sub-Routine 정리
용어설명 | |
Actual Parameter |
Main 프로그램 입장에서 ( 서브루티 호출시 나의 자원을 넘겨주니까/ 그건 현실적 매개변수이다) |
Formal Parameter |
Main 프로그램 입장에서 ( 서브루틴에 이미 선언 명시되어있어 그렇게 사용해야만 하는 매개변수이다) |
Input Parameter |
sub 프로그램 입장에서 ( Using명령에 의해 변경될필요가 없는 매개변수를 말한다.) |
Output Parameter |
sub 프로그램 입장에서 ( Changing명령에 의해 변경될필요가 있는 매개변수를 말한다.) |
그럼 이 용어를 이해 했으면 이런말을 할 수 있어야 한다. |
Parameter 구성방법 (Interface(전달방법)에 따른 구성) | |
Call by Value |
Actual, Formal Parameter가 각자 다른 변수영역을 사용한다. (명령어 Value에 주목하라) |
Call by Reference |
Actual Parameter의 메모리번지를 공유하여 같은곳을 바라본다. (생략시 Default로 사용됨) |
Call by Value and Result |
Actual, Formal Parameter가 각자 다른 변수영역을 사용한다 ( 서브루틴 정상종료후 Actual을 변경한다) |
FORM sub1 USING p1 TYPE c
|
Call by Reference ReadOnly( Actual의 메모리주소를 공유해서 사용한다 ) p의 decimal 은 actual에서 상속받는다 성공유무에 따라 호출자변경)
|
Parameter 구성방법 (매개변수의 유형에 따른 구성)/ 사용방법은 아래의 샘플코드를 참조하도록 한다 |
FORM sub1 |
SubRoutine Call(호출) 방법 | ||
Internal |
PERFORM sub1 TABLES itab[] CHANGING wa1 wa1 itab itab. PERFORM sub1 TABLES itab[] CHANGING wa1 wa1 itab itab ON COMMIT. |
같은프로그램에서 call할때 COMMIT를 만나 COMMIT되기전호출 |
External |
PERFORM sub1(pg1) TABLES itab[] CHANGING wa1 wa1 itab itab IF FOUND. |
다른프로그램에서 call할때. |
Dynamic |
Data:progname(8) TYPE c VALUE 'Z05_001',subrname(8) TYPE C. |
Runtime에 서브루틴을 바꾸어 call할때 |
List |
DO 3 TIMES. |
List를 이용한 Call 파라미터를 전달할 수 없다. |
Sample Code( 서브루틴에서/ 지정되지 않은 구조체와 itab을 <FS>를 통해 어떻게 가공하는지 보시기 바랍니다) |
DATA : a1_stru LIKE sflight, |
댓글 26
-
마징가쫄따구
2011.06.03 17:52
-
icarus
2011.06.03 19:58
우와~~정말 서브루틴에는 공유해 주신 이 자료만 보면 되겠습니다.
유용한 정보 감사합니다.
-
zeroT
2011.06.04 01:28
진짜 유용한 정보 감사합니다 .^^
-
dltkd8
2011.06.08 01:41
소중한 자료 감사합니다.
-
모노
2011.06.08 01:43
감사합니다.
-
고구마
2011.06.09 19:45
잘봤습니다. 정리 잘되어있네요. 감사합니다.
-
세미
2011.06.09 20:21
깜끔한 정리 감사합니다^^
-
애스트로맨틱
2011.07.01 19:50
서브루틴의 끝이네요.. 소중한 정보 감사드립니다.
-
abap77
2011.07.08 19:03
좋은 자료 감사합니다.
-
zambia21
2011.07.09 02:41
좋은 자료 감사합니다.
-
아바아아아
2011.07.09 21:23
감사합니다! 잘쓰겠습니다~!!
-
엠엠공유
2011.07.13 19:32
조은 자료 감사합니다.
-
whitent
2011.07.27 04:58
감사합니다
-
아바퍼의길
2011.08.10 18:52
정말 정리 잘하셨네요 ~ 멋지십니다 ㅋㅋ
-
SAP메뉴돌
2011.09.20 00:06
감사합니다.
-
남아밥
2011.09.29 01:11
감사합니다 잘보겠습니다 ~
-
혁민짱
2011.11.07 18:25
좋은 정보 감사해요
-
냐옹이당
2011.11.21 23:49
좋은 자료 감사합니다^^
-
디카초올~
2011.12.08 20:17
감사합니다.
-
토도리
2012.02.03 02:52
좋은 자료 감사합니다^^
-
병하
2012.04.03 19:23
좋은 자료 감사합니다~~^^^
-
27청춘
2013.01.09 17:14
좋은자료감사해용 ㅋ
-
이수현
2013.08.01 19:42
좋은 자료 감사합니다.
-
U&I
2013.10.14 23:58
좋은자료감사합니다.
-
규티
2014.01.16 20:11
감사합니다^^
-
Friya
2014.07.17 22:28
감사합니다
정리 최고로 잘 하신 듯..
좋은 자료 감사합니다. ^^