WRITE: /(15) text-002, (35) sy-datum,
/(15) 'Manager'(001), (35) sy-uname.
FORM==SUBROUTINE
FORM 파라미터 변수 이름들은 FORM 문에서 지어주는 것.
FORM CALC_PERCENTAGE
USING PV_ACT TYPE I "CALL BY VAL"
PV_MAX TYPE I
CHANGING CV_RESULT TYPE TV_RESULT. "CALL BY REF"
" 기타 로직 ==========="
IF PV_MAX = 0.
cv_result = 0.
write: / '0 안돼'.
ELSE.
cv_result = pv_act / pv_max * 100.
ENDIF.
" ===================="
ENDFORM.
PERFORM CALC_PERCENTAGE(zbc400_cl2_09_compute)
USING pa_int1 pa_int2
CHANGING gv_result.
FORM calc_plus
USING value(pv_one) TYPE i
pv_two TYPE i
CHANGING value(cv_result) TYPE tv_result.
write: / 'form after'.
write: / '(USING VALUE)파라미터로 넘겨준것 1, form내부에서 받는 변수 1', pa_int1, pv_one.
write: / '(USING) 파라미터로 넘겨준것 2, form내부에서 받는 변수 2', pa_int2, pv_two.
write: / 'form 내부에서 내부 변수 value change'.
pv_one = 5.
pv_two = 5.
write: / '(USING VALUE)파라미터로 넘겨준것 1, form내부에서 받는 변수 1', pa_int1, pv_one.
write: / '(USING) 파라미터로 넘겨준것 2, form내부에서 받는 변수 2', pa_int2, pv_two.
write: / gv_result, cv_result.
cv_result = pv_one + pv_two.
write: / gv_result, cv_result.
ENDFORM.
- 오류: USING reference parameter should not be used. Instead define the parameter as a USING-VALUE(...) or CHANGING parameter.
=> USING을 사용하지만 파라미터 값을 바꿔서 warning이 뜬다. FORM내에서 값을 변경하거나 할때는 USING VALUE()구문이나 CHANGING으로 파라미터를 전달하라는 뜻이다.
export / import 변수간의 타입이 같아야 함.
0 성공
4 실패. 조건에 일치햐는 데이터를 찾을 수 없음
8 실패. 조건이 적합하지 않음. The search key was not fully qualified.
다른 어플리케이션 서버 / sap가 아닌 다른 시스템에서도 호출할 수 있는 function module