보통
tables : mara.
paramaters : a for mara-mntr.
저는 대충 for을 위해서 사용하는데 tables : mara의 의미가
mara의 이름으로 인터널 테이블을 만들어 mara의 내용을 통으로 가져온다는것 아닌가요?
책에는 오브젝트가 생긴다고 해서 정확한 의미를 모르겠는데
mara의 내용을 다 가져와서 인터널 테이블을 만드는건가요?
그리고 왜? for을 사용할때는 tables로 명시를 해두어야하는거죠?
댓글 11
-
andy
2009.04.24 19:22
-
SD2
2009.04.24 20:59
tables 왠만하면 자제해서 쓰세요~
프로세스 용량을 많이 잡아 먹는다구 하네요~
쓰지도 않는 필드까지 통채로 선언하니..
-
쭈니
2009.04.24 21:29
아하.. 그런점이 있었군요...
첨에 tables는 정의만 해놓고..
data : ~~ 이렇게 해서 wa를 사용하기에..
tables에 있는걸 모두 사용하겠지만,
이렇게 하면 tables를 정의 한다고 해도 상관은 없지 않을까요??
data : 정의 할때 bkpf에서 필요한 필드만 정의를 해놓고 사용한다면
tables에서 bkpf를 정의 한다고 해도
괜찮을듯 한데??
제가 이해하고 있는 부분이 아니라면 자제를 해야 겠지요?
그냥 저만의 생각이었습니다.
보통은 wa를 생성한다는게
tables : bkpf.
data : begin of zbkpf.
structure ~~~ bkpf.
data; end of zbkpf.
이렇게 할경우 tables에 정의되어있는 모든 필드를 다 사용하고 있는걸로 알고있으니,
이렇게 하면 되지 않을까 싶은데..
제 생각이 아니라면, 답변 달아주시면 저도 도움이 될듯합니다.
tables : bkpf.
data : begin of zbkpf occurs
bukrs like bkpf-bukrs,
belnr like bkpf-belnr,
data : end of zbkpf.
이렇게 하는건 괜찮지 않을까 합니다..
-
BeCool~*
2009.04.25 00:02
tables 를 선언해야 되는 3가지 경우가 있죠~~
select single *
from <dbtab>
where....
이렇게 sql 에서 into 절 없이 테이블의 내용을 바로 받을때가 그중 한 가지구요..
쭈니님..인터널테이블만들때 include structure 나 필드첨부해서 생성하는 경우 전부
tables 선언안해주셔도되는데요~~
프로그램하나생성해서 tables 빼고 해보세요~~
-
쭈니
2009.04.25 00:48
쿨님 감사합니다~~
그렇게 해도 상관이 없었네요...
항상 그렇게 프로그램을 코딩을 해놔서...
하나 배우고 갑니다~
-
쭌수야~!
2009.04.25 01:49
크게 고민하실 필요 없습니다.
단순하게 ABAP Dictionary 의 table 과 동일한 이름, 구조를 가지는 structure( or work area) 를 생성하신다고 보시면 됩니다.
이렇게 만들어진 structure(WA) 를 사용하기 나름이겠지요...
위에 Becool 님 말씀처럼 select single 에서 데이터를 닮는 WA 역할로도 쓸수 있고,,,
selection-options 에서 해당 파라메터의 length, type 등의 정보를 제공하는 역할로도 쓸수 있는 것입니다.
-
쭌수야~!
2009.04.25 01:52
tables : sflight.
sflight-carrid = 'AAA'.
insert sflight.
--------------
tables : sflight.
sflight-carrid = 'AAA'.
delete sflight.
이런식으로도 사용하실 수 있구요...
음... 암튼... 일반적인 structure 의 사용법 이외에 약간의 + 알파 가 있다고 보시면 될듯합니다.
-
보나
2009.04.25 02:28
tables 로 선언된 ABAP DIC 은 structure (work area) 형태로 사용이 가능합니다.
프로그램 구현시 자주 사용되는 경우는 윗분들이 말씀해 주신 경우와 같습니다.
Tables: scarr.
1. select-option 사용시 ABAP dic. 참고
2. select 구문 사용시 into 절 없이 받을 때
ex) select single *
from scarr
where carrid in s_carrid
3. 스크린 등의 필드값에서 직접적으로 ABAP Dic. 을 참고할 경우
(쭌수야~! 님의 예처럼도 가능하겠죠 ^^)
등으로 다양하게 사용이 가능합니다.
-
아밥돌이
2009.04.27 06:10
캄사 합니다. 여러분의 열혈 답변에 감동 감동 받고 잇어요
-
보나
2009.04.28 18:07
-
Will
2009.06.23 20:55
좋은 정보 감사합니다 ^^
FOR랑 tables 랑은 전혀 상관 없구요. ^^
tables는 해당 테이블 이름과 구조가 같은 WA를 생성해 주는 keyword 입니다.
책에서 말한 오브젝트가 WA 오브젝트 입니다. ^^
그리고 paramaters 구문에서 for 가 아니라 like 를 써야 할거 같은데요.. ㅎ ( type or like )