perform bapi_noref_map_to_internal tables dates
dlv_items
serial_numbers
return
using date_usage
changing ls_dates
lt_items_in
lt_sernr
lf_rc.
using 은 파라메터 값을 가져오는거고 changin 은 값을 가져온값을 받는거라고 알고있는데요 ..
저기서 어떻게 using 과 changing 사이에 값은 뭔가여~~??
댓글 4
-
activeman
2008.07.16 05:06
-
지의
2008.07.16 17:04
perform 에서 using 의 의미는 form 안의 상수 입니다.
물론 값은 변경이 가능하고 form 에서 나왔을 때 변경된 값을 사용하는 것이 가능은 하지만
일단은 SAP 에서 using 의 의미를 상수로 두고 있습니다.
간단한 테스트로 form 안에서 using 으로 선언된 변수의 값을 변경하는 로직을 넣고
점검 버튼을 눌르면 해당 필드에 대해서 노란불이 발생하는 것을 볼 수 있습니다.
changing 은 그 반대라고 생각하면 됩니다.
값이 얼마든지 바뀔수 있는 변수라고 생각하시면 됩니다.
그냥 개념상의 문제이겠지만 의외로 잘 알아두셔야 하는 부분 이기도 합니다.
SAP 에서는 그런 부분의 개념이 많기 때문이죠.
수고하세요.
-
activeman
2008.07.16 17:45
perform문의 USING 과 CHANGING에서 중요한 개념은 pass by value, pass by reference의 개념인듯 합니다.
아래내용은 help에 나오는 내용 입니다.
These additions define formal parameters parameters. Formal parameters can be used in the subroutine as data objects at all operand positions that match their typing and their changeability defined by USING or CHANGING.
When you define the formal parameters parameter, you have the option of defining either pass by reference or pass by value. The effect of this definition for formal parameters defined with USING and CHANGING is as follows:
- Pass by reference for USING parameters
For the formal parameters p1 p2 ..., no local data object is created in the subroutine. Instead, when it is called, a reference is passed to the specified actual parameter. A change to the formal parameter in the subroutine also changes the value of the actual parameter.
- Pass by reference for CHANGING parameters
The formal parameters p1 p2 ... are handled exactly like those parameters defined for pass by reference using USING.
- Pass by value for USING parameters
For each formal parameter p1 p2 ..., a local object with the same data type as the corresponding actual parameter is created in the subroutine and filled with its values. A change to the formal parameter in the subroutine does not change the value of the actual parameter. The actual parameter also retains its original value even after the subroutine has ended.
- Pass by value for CHANGING parameters
For each formal parameter p1 p2 ..., a local data object with the same data type as the corresponding actual parameter is created in the subroutine and filled with its values. A change to the formal parameter in the subroutine does not directly change the value of the actual parameter. If the subroutine is ended using ENDFORM, RETURN, CHECK or EXIT however, the content of the formal parameter is assigned to the actual parameter. If the subroutine is ended by a message or an exception, the actual parameter remains unchanged. - 즐밥하세요.
- Pass by reference for USING parameters
-
금은돌
2008.07.17 19:21
ㅜ_ㅜ영어네..
using 과 changing 사이에 어느 값을 말씀하시는지요..질문을 이해하기 힘듭니다..
다시한번 말씀해 주세요..
즐밥하세요..