보통 프로그램에서 USING, CHANGING 을 많이 사용하는데요.
로직의 대충의 이해는 하는데 왜 사용하는지 어떻게 사용하는지는 잘 모르겠습니다.
직접 구현하고 싶은데 어떨때 쓰이는지 의미를 모르고 사용하는 방법을 모르니까
막막합니다.
PERFORM 에서 USING, CHANGING 사용하는 의미를 어떨때 쓰이는지 어떤 의미와
목적으로 효과적으로 사용하는지 구체적으로 알고싶습니다.
댓글 7
-
초보아밥퍼
2008.04.12 00:56
-
bd
2008.04.12 01:01
web in abap 님이 자세히 설명해 주셨네요.. 아직 배워야 할 것이 많지만..살짝 더 제 생각을 말씀드리면..
무엇인가 가공하는 형태가 아닐까 하는 생각이 드네요..
예를 들면 만수가 물건을 하나 사서 다른 사람을 빌려줬다고 했을때.
그 빌려준 물건을 다시 돌려 받았다 하면 당연 using 형태 다시 말해 그냥 쓰고 받은거죠..
하지만 그 물건을 빌려 주긴했지만 다시 만수 한테 돌아 오지 못한경우 ( ex: 너 가져브러~~ 하면서 줬을경 )
그럼 소유주가 다른 사람으로 바껴 버리겠죠.. (changing)
요약 하자면 만수 - > ???????? -> 만수 or 다른사람.
두둥 먼가 발생
위에 상황과 비슷한 process 가 발생할 경우가 생기겠죠 ^^
흐흐흐흐 .. 저 때문에 더 햇길리지 않았으면 좋겠네용 (__) 꾸벅~
-
초보아밥퍼
2008.04.12 01:05
더 헷갈려요~~~ >< 농담..
-
bd
2008.04.12 01:06
음...그르게요 다시보니 제가 봐도 헷갈리네요 @@ (소심, 소심 @@) -
SAP폐인
2008.04.12 01:20
정식교재에 call by result, call by reference, call by value and result 를 참조하시면 될듯합니다.
자세한건 저도 책을 봐야 ;;
-
비안개
2008.04.12 01:31
예를 들면 공통적인 자재명을 읽어오는 로직이거나 공통로직으로 사용할 때 PERFORM으로 선언을 해서
함수화를 시킨다고 봐야겠죠
안그러면 똑같은 로직인 경우는 한번만 선언하고 그것을 불러오는게 효율적이기 때문에 PERFORM문을 선언한다고 봅니다.[제 생각엔]
또한 USING, CHANGING의 쓰임새는
USING은 변수값을 가공하지 않고 받은 값 현대로 사용이 되고,
CHANGING은 그 변수값을 변경한다는 뜻으로 많이 사용이 됩니다.
무조건 쓰임새로 쓰인다고 할 수 없습니다. 예를 들면 USING 같은 경우는 구조로 선언되어있는 경우는..
USING과 CHANGING 용도로 같이 쓰는 경우가 있습니다.
어떤 경우냐면 USING으로 사용될 변수 값이 CHANGING 변수 값과 같은 구조인 경우는 USING으로 선언해서 사용되는 경우가
가끔 있습니다.
아래 처럼 선언을 한다면
PERFORM GET_XXX USING LA_XXX.
FORM GET_XXX USING LA_XXX STRUTURE SXXX.
몇개의 필드는 조건에서 사용되고
값을 읽어와 변경되는 필드는 CHANGING 해준다고 보면 됩니다.
ENDFORM.
위의 방식말고
PERFORM GET_XXX USING LA_XXX-FXXX1
LA_XXX-FXXX2
CHANGING LA_XXX-FXXX3
LA_XXX-FXXX4
LA_XXX-FXXX5.
FORM GET_XXX USING LA_XXX-FXXX1
LA_XXX-FXXX2
CHANGING LA_XXX-FXXX3
LA_XXX-FXXX4
LA_XXX-FXXX5.
이렇게 선언했을 경우는 눈에 쏘옥 들어오는 장점이 있지만..
일일이 개별로 선언을 해야하기 때문에 귀찮다면 위의 처럼 하는 분도 있어요..
사람마다 취향에 따라 선언하는 듯 싶습니다.
ENDFORM.
제가 아는 지식으론 이렇게 이해하고 있는데..
도움이 되었음 하네요
-
푸~
2008.04.13 19:51
good!!
Web In Abap 의 말이 맞는거 같애요. 간결성 및 공통건을 묶어놓은거? 아니면 INCLUDE처럼 여기저기서 호출 사용하게끔
하는 머 그런거... ^^
보통 USING은 광역변수가 아닐때 PERFORM 문을 타면 데이터를 가지고 못들어가요 못나와요.
그래서 USING 를써서도 사용하고
CHANGING 도 USING 하고 같은 원리지만 PERFOME 내부에서 값을 변경하여
다시 끌고 나올수 있다는거.. 머 그정도...