ABAP 0721

CinnamonTree·2022년 7월 21일
0

ABAP

목록 보기
4/6
  • WRITE 내부에
    - (숫자) [출력대상] : 출력대상이 차지할 크기
    - '텍스트'(숫자) : 텍스트 심볼
    - text-숫자 : 텍스트 심볼
    WRITE: /(15) text-002, (35) sy-datum,
          /(15) 'Manager'(001), (35) sy-uname.
  • Move a TO b. : b에 a내용 복사
  • IF gv_s IS NOT INITIAL. 현재 이니셜 value인지 아닌지 '', 0, 0000...
  • abs( x ):절댓값 함수
  • strlen( x ) : 문자열 길이

Form

  • Form [form문 명] Using [내부 파라미터 명] Changing [내부 파라미터 명]

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 [form문 명] Using [넘길 변수들] Changing [결과 넣을 변수들]
PERFORM CALC_PERCENTAGE(zbc400_cl2_09_compute)
      USING pa_int1 pa_int2
      CHANGING gv_result.

CALL BY VALUE / CALL BY REFERENCE

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. 
  • cv_result는 form문이 끝나고 나야 업데이트 됨.
  • VALUE()를 안붙이면 USING이든 CHANGING이든 CALL BY REF임.
  • 오류: USING reference parameter should not be used. Instead define the parameter as a USING-VALUE(...) or CHANGING parameter.
    => USING을 사용하지만 파라미터 값을 바꿔서 warning이 뜬다. FORM내에서 값을 변경하거나 할때는 USING VALUE()구문이나 CHANGING으로 파라미터를 전달하라는 뜻이다.

Function

호출법

  • pattern 버튼 - call function
  • (se80) 왼쪽 repository browser에서 function group에서 모듈 끌어다 놓기

주의사항

export / import 변수간의 타입이 같아야 함.

함수 호출 뒤 sy-subrc

0 성공
4 실패. 조건에 일치햐는 데이터를 찾을 수 없음
8 실패. 조건이 적합하지 않음. The search key was not fully qualified.

RFC: remote function call

다른 어플리케이션 서버 / sap가 아닌 다른 시스템에서도 호출할 수 있는 function module

  • function module설정 창의 processing type을 rfc로 설정.

BAPI : RFC의 일부

  • tcode: bapi
  • function module과 사용법은 같다.

0개의 댓글