교재 222 페이지 (예제 : 5-3-1)
3라인에 변수 A3 선언하는 부분에서 D 타입을 F 타입으로 변경해서 컴파일 한 결과입니다.
==========================================================================================
DATA: A1 TYPE P DECIMALS 3 VALUE '1.1',
A2 TYPE C VALUE 'A',
* A3 TYPE D VALUE '3.3',
A3 TYPE F VALUE '3.3',
A4 TYPE SPFLI-CARRID.
PERFORM SUBR USING A1 A2 A3 A4.
WRITE:/ 'USING 구문 이용: ',A1,A2,A3,A4.
PERFORM SUBR CHANGING A1 A2 A3 A4.
WRITE:/ 'CHANGING 구문 이용: ',A1,A2,A3,A4.
PERFORM SUBR USING A1 A2 A3 CHANGING A4.
WRITE:/ 'USING 과 CHAINGING 구문 이용: ',A1,A2,A3,A4.
FORM SUBR USING
VALUE(F1) TYPE P
VALUE(F2) TYPE C
F3 LIKE A3
CHANGING VALUE(F4) TYPE SPFLI-CARRID.
F1 = 1.
F2 = 2.
F3 = 3.
F4 = 4.
ENDFORM.
============================================================================
컴파일 결과는
Statement is not accessible.
A USING reference parameter should not be used. Instead, define the
parameter as a USING-VALUE(...) or CHANGING parameter.
* e-abap님에 의해서 게시물 이동되었습니다 (2008-09-05 17:21)
질문을 정확히 파악하지 못해서 정확한 답변이 되지 않을수도 있습니다.
변수 타입을 변경하면, subroutine 에서도 타입을 변경해주어야 합니다.
다음 소스를 참고해보세요.
REPORT Z05_005 .
DATA: a1 TYPE p DECIMALS 3 VALUE '1.1',
a2 TYPE c VALUE 'A',
a3 type f VALUE '3.3',
a4 TYPE spfli-carrid.
PERFORM subr USING a1 a2 a3 a4.
WRITE : / 'USING 구문 이용 : ', a1, a2, a3, a4.
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
value(f2) TYPE c
f3 type f" LIKE a3
CHANGING
value(f4) TYPE spfli-carrid.
f1 = 1.
f2 = 2.
f3 = 3.
f4 = 4.
ENDFORM. "subr