Jin's Library

USING / CHANGING 본문

SAP/ABAP

USING / CHANGING

Linkin 2023. 11. 3. 01:00

FORM 문에서 전부 파라미터 개념으로 쉽게 사용하면 되지만
USING, CHANGING 은 내부에서 파라미터값이 변할 시 외부에도 즉시 적용
USING VALUE 는 FORM 문 내부에서만 동작하고 실제 값에는 영향을 끼치지 않음
CHANGING VALUE 는 FORM 문이 종료되고 나서 변경된 값이 반영 (즉시 반영 X)

Changing     : Call By Reference
Using           : Call By Reference
Using Value : Call By Value

 

아래는 FORM 문으로 파라미터 사용시 gv_value 가 내부에서 동작하는 값과 FORM 문 종료 후 값을 표기 

DATA: gv_value1 type I VALUE 10,
      gv_value2 type I VALUE 20.

PERFORM test_using USING gv_value1
                         gv_value2.
PERFORM external. ULINE.
PERFORM init_value.

PERFORM test_changing USING gv_value1
                            gv_value2.
PERFORM external. ULINE.
PERFORM init_value.

PERFORM test_using_value using  gv_value1
                                gv_value2.
PERFORM external. ULINE.
PERFORM init_value.

PERFORM test_changing_value USING gv_value1
                                  gv_value2.
PERFORM external.

***************************** FORM *****************************
FORM external.
  WRITE:/,/'[External]',
      /'gv_value1: ', gv_value1,
      /'gv_value2: ', gv_value2.
ENDFORM. 

FORM init_value.
  gv_value1 = 10. 
  gv_value2 = 20.
ENDFORM.

FORM test_using USING p_using1 TYPE I
                      p_using2 TYPE I.
  p_using1 += 1.
  p_using2 -= 1.

WRITE: 'TEST_USING',/,
      /'[Internal]',
      /'gv_value1: ', gv_value1,
      /'gv_value2: ', gv_value2.

ENDFORM.
FORM test_using_value USING VALUE(p_using_value1) TYPE I
                            VALUE(p_using_value2) TYPE I.
  p_using_value1 += 1.
  p_using_value2 -= 1.

WRITE: 'TEST_USING_VALUE',/,
      /'[Internal]',
      /'gv_value1: ', gv_value1,
      /'gv_value2: ', gv_value2.

ENDFORM.


FORM test_changing CHANGING p_changing1 TYPE I
                            p_changing2 TYPE I.
  p_changing1 += 1.
  p_changing2 -= 1.

WRITE: 'TEST_CHANGING',/,
      /'[Internal]',
      /'gv_value1: ', gv_value1,
      /'gv_value2: ', gv_value2.

ENDFORM.

FORM test_changing_value CHANGING VALUE(p_changing_value1) TYPE I
                                  VALUE(p_changing_value2) TYPE I.
  p_changing_value1 += 1.
  p_changing_value2 -= 1.

WRITE: 'TEST_CHANGING_VALUE',/,
      /'[Internal]',
      /'gv_value1: ', gv_value1,
      /'gv_value2: ', gv_value2.

ENDFORM.

 

 

 

 

 

'SAP > ABAP' 카테고리의 다른 글

CLEAR, REFRESH, FREE  (0) 2023.11.03
SELECT CASE  (0) 2023.11.03
ALV 측정 단위, 통화에 대해 필드 카탈로그 적용하기  (0) 2023.11.03
ABAP 관계연산자  (0) 2023.11.03
팝업화면 디버깅  (0) 2023.10.11