DATA: a1 TYPE p DECIMALS 3 VALUE '1.1',
a2 TYPE c VALUE 'A',
a3 TYPE d VALUE '3.3',
a4 TYPE spfli-carrid.
PERFORM subr USING a1 a2 a3 a4.
WRITE : / 'USING 구문 이용 : ', a1, a2, a3, a4.
*호출하는 구문에서 USING과 CHANING은 아무런 기능적이 차이가 없다.
PERFORM subr CHANGING a1 a2 a3 a4.
WRITE : / 'CHANGING 구문이용 : ', a1, a2, a3, a4.
PERFORM subr USING a1 a2 a3 CHANGING a4.
WRITE : / 'USING 과 CHANGING : ', a1, a2, a3, a4.
FORM subr USING
value(f1) TYPE p " Using value() 구문을 사용한 파라미터는 call by value
value(f2) TYPE c " Using value() 구문을 사용한 파라미터는 call by value
f3 LIKE a3 " call by reference
CHANGING value(f4) TYPE spfli-carrid. " subroutine이 성공적으로 종료했을 때 call by reference
f1 = 1.
f2 = 2.
f3 = 3.
f4 = 4.
ENDFORM.
결과 화면 : PERFORM문의 모두 같은 결과를 반환 한다. Call by Refernce 일 때만 값이 변경
출처 : EASY ABAP 책