쌓고 쌓다
[ABAP] Subroutine에서 USING VALUE와 USING 차이 본문
서브루틴 구문에 대해서 다음과 같이 배웠었는데..
위와 같이 USING으로 값을 넘겨주고, CHANGING 부분에서 변경될 값을 명시하는 방식으로 호출한다.
PERFORM으로 넘겨진 Actual Parameter가
USING VALUE(A) 구문으로 값의 변경이 일어나지 않게 받고
CHANGING으로 값의 변경이 이뤄질 수 있게 받는다.
라고 배웠다..
그런데
강사님께서 시험 해설 코드를 작성해주시는데
서브루틴 선언의 USING 부분에
왜
USING VALUE(PV_COUNTRY) TYPE LAND가 아닌
USING PV_COUNTRY TYPE LAND 형태인 것인가...?
USING만 사용하면 CHANGING과 동일한 효과를 본다.
사실 USING에 VALUE를 명시해줘야지 Call by Value가 동작하는것이였다.
쉽게 정리하면
USING VALUE(X)로 명시해야지 Call By Value로 변수의 값만 복사해서 전달하고
USING X로 작성하면 Call By Reference로 동작하여 서브루틴 내에서 값이 변경되면
서브루틴을 호출한 곳에서도 값이 변경된다.
'SAP > ABAP' 카테고리의 다른 글
[ABAP] SELECT-OPTIONS LOW 또는 HIGH만 설정하는 법 (0) | 2025.02.24 |
---|---|
[ABAP] FOR ALL ENTRIES (0) | 2025.02.23 |
[ABAP] 필드 값에 따라 라디오 버튼 표시하기 (0) | 2025.02.20 |
[ABAP] Function Module 생성 및 호출, Function Group (1) | 2025.02.15 |
[ABAP] Fixed Value 생성 및 값 가져오기 (0) | 2025.02.15 |
Comments